Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 02.08.2012, 22:14  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

rexdn, Проект выложите целиком . Не видно как ваши тикеры определены в программе и в окне переменных.
В примере Ticker 32 битная , а Proteus некорректно отображает их.
Реклама:
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 02.08.2012 в 22:17.
dosikus вне форума  
Непрочитано 02.08.2012, 22:21  
rexdn
Прописка
 
Регистрация: 20.10.2008
Сообщений: 103
Сказал спасибо: 95
Сказали Спасибо 25 раз(а) в 18 сообщении(ях)
rexdn на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Собственно код
В принципе файлы проэкта не особо нужны, но выложил тоже.
Код:
// Some small optimizations by C.Kielstra. 
/////////////////////////////////////////////////////////// 
#include ‹18F458.h› 
#use delay(clock=20000000) 
#fuses HS,NOWDT,NOLVP 

//RTC variables 
#define XTAL_FREQUENCY  20000000 
#define TIMER1_FREQUENCY (XTAL_FREQUENCY / 4)      // 1 clock tick = 1 instr. cycle = crystal frequency / 4

int32 Ticker, Ticker_1, Ticker_2, Ticker_3; 
int8 Seconds=0; 

#define IS_LEAP(year) (year%4 == 0) 

//////////////////////////////////////////////////////////////////////////////// 
//    Initialize RTC 
//////////////////////////////////////////////////////////////////////////////// 
void Initialize_RTC(void) 
{   
  Ticker_1 = XTAL_FREQUENCY;
  Ticker_2 = XTAL_FREQUENCY / 4;
  Ticker_3 = TIMER1_FREQUENCY;  
  
  Ticker = TIMER1_FREQUENCY; // initialize clock counter to number of clocks per second
  
 
  setup_timer_1( T1_INTERNAL | T1_DIV_BY_1 ); // initialize 16-bit Timer1 to interrupt 
                                              // exactly every 65536 clock cycles 
                                              // (about 76 times per second) 
  enable_interrupts( INT_TIMER1 );            // Start RTC 
} 

//////////////////////////////////////////////////////////////////////////////// 
//  -=Process Zero Drift Real Time Clock Information=- 
// 
// Most algorithms configure the timer to generate an interrupt every 100ms, and 
// then count the number of interrupts. The problem in that approach is that most 
// clock frequencies can't be divided by 256 and you don't get an exact 100ms. 
// The small errors will add up to an error of several seconds a day. 
// 
// The algorithm presented here is exact in the long run because it doesn't 
// count the number of interrupts but counts the number of clock cycles. 
//////////////////////////////////////////////////////////////////////////////// 
#int_TIMER1                                
void TIMER1_isr()                          
{ 
  Ticker -= 65536;                        // Decrement ticker by clocks per interrupt 
  if ( Ticker ‹ 65536 )                   // If second has expired 
  {  Ticker += TIMER1_FREQUENCY;          //   Increment ticker by clocks per second 
     seconds++;                           //   Increment number of seconds 
  } 

  /* --- Optional part start --- 
  if (Seconds == 60) {Minutes++; Seconds=0; 
    if (Minutes == 60) {Hours++; Minutes=0; 
      if (Hours == 24) {Days++; Hours=0; 
        if (  (Days == 29 && Month==2 && !IS_LEAP(Year))                        // February in leap year 
           || (Days == 30 && Month==2)                                          // February in normal years 
           || (Days == 31 && (Month==4 || Month==6 || Month==9 || Month==11 ))  // All months with 30 days 
           || (Days == 32)                                                      // All months with 31 days 
           ) {Month++; Days=1;} 
        if (Month == 13) {Year++; Month=1;} 
  }}} 
   --- Optional part end ---  */ 
} 

//////////////////////////////////////////////////////////////////////////////// 
// Example program for using the RTC 
//////////////////////////////////////////////////////////////////////////////// 
void main() 
{
  int8 prev_second;

  Initialize_RTC(); 
  enable_interrupts( GLOBAL ); 

  // loop forever 
  while(1) 
  { 
    // Toggle output every second  
    if (seconds != prev_second) 
    { 
      prev_second = seconds; 
      output_toggle(PIN_A1); 
    }  
  } 
}
Миниатюры:
Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 66
Размер:	79.5 Кб
ID:	37419  
Вложения:
Тип файла: rar TMR1.rar (42.7 Кб, 82 просмотров)
rexdn вне форума  
Непрочитано 02.08.2012, 22:39  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от dosikus Посмотреть сообщение
В примере Ticker 32 битная , а Proteus некорректно отображает их.
Это понятно ?
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 02.08.2012, 22:44  
Rex72
Прохожий
 
Регистрация: 11.09.2010
Сообщений: 2
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Rex72 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

теперь да
Rex72 вне форума  
Непрочитано 02.08.2012, 22:48  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от Rex72 Посмотреть сообщение
теперь да
Добавьте эти переменные в окно Watch по адресам - тип double word .
Адреса берите в окне переменных , они правильные.
Миниатюры:
Нажмите на изображение для увеличения
Название: int32.png
Просмотров: 116
Размер:	86.2 Кб
ID:	37421  
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 03.08.2012, 02:42  
rexdn
Прописка
 
Регистрация: 20.10.2008
Сообщений: 103
Сказал спасибо: 95
Сказали Спасибо 25 раз(а) в 18 сообщении(ях)
rexdn на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Прога по ссылке - просто супер.
Проста как веник и достаточно точна.
Спасибо за ссылочку.

Незнаю, офтоп это наверно, но не удержался.
rexdn вне форума  
Непрочитано 03.08.2012, 09:16  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

rexdn, Там официальный форум поддержки CCS .
Много чего есть интересного в плане кода . Особенно что все библиотеки открыты и понятны . Главное суть понять ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 05.08.2012, 21:40  
vlad_ru
Вид на жительство
 
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
vlad_ru на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Как одновременно вывести значения с двух АЦП ( с разных входов) Проект прикладываю.
Понимаю , что поблема в строках

adc_value1 = read_adc();
adc_value2 = read_adc();
Выводится только последнее значение (В проекте одна из этих строк ///)
(Я не программист не пинайте сильно)
Вложения:
Тип файла: rar My_test.rar (61.1 Кб, 39 просмотров)
vlad_ru вне форума  
Непрочитано 05.08.2012, 23:09  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

set_adc_channel(0);
adc_value1 = read_adc();
set_adc_channel(1);
adc_value2 = read_adc();
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
vlad_ru (05.08.2012)
Непрочитано 05.08.2012, 23:41  
vlad_ru
Вид на жительство
 
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
vlad_ru на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Работает как надо
vlad_ru вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c+ccs pic Gladkih Микроконтроллеры, АЦП, память и т.д 9 18.04.2016 22:17
PIC BASIC PRO Compiler 2.47 dosikus Proteus, KiCAD и другие ECAD 27 05.12.2009 05:48
изучение IAR AVR C compiler granel Микроконтроллеры, АЦП, память и т.д 0 10.10.2008 20:45
PIC C Compiler PCWH458 sergxxx Микроконтроллеры, АЦП, память и т.д 9 23.09.2008 18:25
Не включается дебаггер в CCS C Compiler BigMazzi Микроконтроллеры, АЦП, память и т.д 4 19.09.2008 13:34


Часовой пояс GMT +4, время: 04:25.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot