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

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

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

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

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

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


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

В CCS в самой IDE собирать модульный проект - геморрой еще тот.
Используйте Mplab.
Директивами #include присоединяются только хэдеры модулей.
Сами модули включаются в компиляцию в браузере проекта.
Реклама:
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 13.12.2012, 16:01  
welcome61
Почётный гражданин KAZUS.RU
 
Аватар для welcome61
 
Регистрация: 11.06.2006
Адрес: 51° 46′ 0″ N, 55° 6′ 0″ E
Сообщений: 1,975
Сказал спасибо: 370
Сказали Спасибо 1,725 раз(а) в 706 сообщении(ях)
welcome61 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от dosikus Посмотреть сообщение
В CCS в самой IDE собирать модульный проект - геморрой еще тот.
........................
Сообщение от dosikus Посмотреть сообщение
Знакомые сказки...
А на поверку всегда выходит, что руки увы кривые...

Последний раз редактировалось welcome61; 13.12.2012 в 16:29.
welcome61 вне форума  
Непрочитано 15.12.2012, 19:52  
Old_Monster
Прописка
 
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
Old_Monster на пути к лучшему
Восклицание Три поросенка: sleep, wake-up и interrupt

наткнулся на странное поведение pic12f1822 при выходе из sleep по внешнему прерыванию.
Код:
#FUSES NOWDT                 	//No Watch Dog Timer
#FUSES INTRC_IO              	//Internal RC Osc, no CLKOUT
#FUSES NOBROWNOUT          //No brownout reset
#FUSES NOIESO                	//Internal External Switch Over mode disabled
#FUSES NOFCMEN               	//Fail-safe clock monitor disabled
#FUSES NOSTVREN              	//Stack full/underflow will not cause reset
#FUSES NODEBUG                 //Debug mode for use with ICD
#FUSES NOLVP                 	//No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#int_RA
void  RA_isr(void) 
{
	if(input(PIN_A5)==0){intra5=1;}
	clear_interrupt(INT_RA5);
}
void main()
{
[скипнуто]
clear_interrupt(INT_RA5);
clear_interrupt(INT_TIMER0);  //судя по отладке - его юзает встроенный delay_ms();
enable_interrupts(INT_RA5_H2L);
enable_interrupts(GLOBAL);

sleep();
#asm //после выхода из сна ВСЕГДА сначала выполняется 
NOP  //следующая инструкция, поскольку она уже в кэше 
#endasm
delay_ms(500);
}

выход из сна по нажатию RA5, НО! Если не очищать флаг прерывания в самом обработчике прерывания - уходит в медитацию. При этом продолжает реагировать на нажатие кнопки - проверял дерганьем ноги.

отладка показала, что зацикливается на самом обработчике - не происходит очистка флага прерывания. Т.е. после RETFIE опять влетает в обработчик.
Такой вот трабл. В даташите и еррате этот феномен не описан.

Если это фича - имейте в виду, если МОЯ бага - кто может прокомментировать?

Последний раз редактировалось Old_Monster; 15.12.2012 в 19:56.
Old_Monster вне форума  
Непрочитано 15.12.2012, 20:15  
xDriver
Частый гость
 
Аватар для xDriver
 
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
xDriver на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Что то, где то я вспоминаю.... порт надо прочесть, чтоб флаг снять

Код:
#INT_RA 

void isr_ra(void) { 

   int8 changes;

   changes=input_change_a();

   if (bit_test(changes,5)) { 
      if (input(PIN_A5)==0) { ......
на форуме CCS тоже было, тынц

Последний раз редактировалось xDriver; 15.12.2012 в 20:27.
xDriver вне форума  
Непрочитано 15.12.2012, 22:03  
Eddy71
Почётный гражданин KAZUS.RU
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,125 раз(а) в 5,642 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Да это и в даташитах от Майкрочипа написано
Eddy71 вне форума  
Непрочитано 15.12.2012, 22:18  
Old_Monster
Прописка
 
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
Old_Monster на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от Eddy71 Посмотреть сообщение
Да это и в даташитах от Майкрочипа написано
ссылку, страницу плиз. Я не видел.

2xDriver
добавил в обработчик
value = input_a();
заремил очистку флага - результат всё тот же.

UPD:
балин! без слипа тот же эффект. Eddy71, ткните плиз, где это описано?

Последний раз редактировалось Old_Monster; 15.12.2012 в 22:26. Причина: upd
Old_Monster вне форума  
Непрочитано 15.12.2012, 22:51  
xDriver
Частый гость
 
Аватар для xDriver
 
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
xDriver на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

может тут
Цитата:
13.3 Interrupt Flags
13.4 Clearing Interrupt Flags
EXAMPLE 13-1:
13.5 Operation in Sleep
xDriver вне форума  
Непрочитано 15.12.2012, 23:39  
Old_Monster
Прописка
 
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
Old_Monster на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от xDriver Посмотреть сообщение
может тут
13.3 повествует, что же происходит с флагами при возникновении прерывания.
13.4 рассказывает КАК правильно сбрасывать флаги прерываний
13.5 объясняет что прерывания IOC выводят из слипа и что регистр IOCAF при этом обновляется ДО ТОГО как будет выполнена любая инструкция.

т.е. всё не о том.
Что-то мне подумалось - а не при чём тут даташиты. Это таки обязанность компилятора - добавлять или не_добавлять команды сброса флага в обработку прерывания. И тогда - хз. Походу - возьму за привычку добавлять всегда
Но как-то это ВНЕЗАПНО.
Old_Monster вне форума  
Непрочитано 15.12.2012, 23:49  
Old_Monster
Прописка
 
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
Old_Monster на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от xDriver Посмотреть сообщение
Что то, где то я вспоминаю.... порт надо прочесть, чтоб флаг снять
насколько я понял, прочитав тему по приведенной вами ссылке - как раз наоборот. У парня проблема разделить котлеты и мухи: H-to-L и L-to-H.
Во втором посте Майк говорит что прерывание возникнет после чтения. Правда, мой английский слаб. Но тут как-будто по другому не интерпретируется.
Old_Monster вне форума  
Непрочитано 15.12.2012, 23:51  
xDriver
Частый гость
 
Аватар для xDriver
 
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
xDriver на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

нет это не дело !
давайте разберемся до конца, привожу РАБОЧИЙ свой обработчик:
Код:
#INT_RA 

void isr_ra(void) { 
   int8 changes;
   changes=input_change_a();
   if (bit_test(changes,3)) { 
      if (input(INPUT)) {
			output_low(OUT_A);		
			i=ZADERG;while(i) i--;
			output_high(OUT_A);		
			i=ZADERG;while(i) i--;
			output_low(OUT_A);		
      } else { 
			output_low(OUT_B);		
			i=ZADERG;while(i) i--;
			output_high(OUT_B);		
			i=ZADERG;while(i) i--;
			output_low(OUT_B);
      }; 
   };
}
не важно что он делает, но проблем нет
правда я использую
Код:
#USE fast_io(A)
asm код можно глянуть на обработчик ?
xDriver вне форума  
 

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

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

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, время: 08:17.


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