17.12.2012, 16:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,125 раз(а) в 5,642 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Программеры везде одинаковые: как прогу писать, так и за уши не оттянешь, а как хэлп ваять - так времени нет
|
|
|
|
17.12.2012, 20:12
|
|
Прописка
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
да не особенно help.
В приведенном отрывке речь идет (насколько я понял) о аппаратной особенности.
Я же вижу проблему в компиляторе.
вот инструкция, выполняющаяся в конце обработчика:
BCF 0xb, 0
Я правильно понимаю, что она должна сбросить бит 0 в регистре по адресу 0xb ???
Там расположен INTCON. Беда только в том, что бит 0 у него ридонли.
Цитата:
|
The IOCIF Flag bit is read-only and cleared when all the Interrupt-on-Change flags in the IOCAF register
have been cleared by software.
|
т.е. сбрасывать нужно соответствующий бит/биты в IOCAF. А их не сбрасывает ни чтение бита, ни чтение порта, ни сама процедура обработки прерывания.
Онли ручками.
ИМХО - очевидный косяк CCS.
|
|
|
|
17.12.2012, 21:09
|
|
Частый гость
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Вы правы, тоже капанул даташиты и скомпилил два листинга
итак листинг 12F675
Код:
|
.................... #include ‹12F675.h›
.................... //////// Standard Header file for the PIC12F675 device ////////////////
.................... #device PIC12F675
.................... #list
....................
.................... #case
.................... #device adc=8
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES HS //High speed Osc (› 4mhz for PCM/PCH) (›10mhz for PCD)
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NOMCLR //Master Clear pin not enabled
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES NOBROWNOUT //No brownout reset
....................
.................... #FUSES INTRC_IO
.................... #USE delay(internal=4M)
.................... #USE fast_io(A)
.................... #INT_RA
.................... void isr_ra(void) {
....................
.................... }
....................
.................... //************************************************** ************************************************** *******************
003C: BCF 0B.0
003D: BCF 0A.3
003E: GOTO 023
.................... void main()
.................... { |
как видим в конце ребята клерят бит GPIF ( у 1822 это IOCIF ) и зачем то пытаются очистить 3 бит регистра PCLATH
дальше листинг 12F1822:
Код:
|
.................... #include ‹12LF1822.h›
.................... //////// Standard Header file for the PIC12LF1822 device ////////////////
.................... #device PIC12LF1822
.................... #list
....................
.................... #case
.................... #device adc=8
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES HS //High speed Osc (› 4mhz for PCM/PCH) (›10mhz for PCD)
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NOMCLR //Master Clear pin not enabled
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES NOBROWNOUT //No brownout reset
....................
.................... #FUSES INTRC_IO
.................... #USE delay(internal=4M)
.................... #USE fast_io(A)
.................... #INT_RA
.................... void isr_ra(void) {
....................
.................... }
....................
.................... //************************************************** ************************************************** *******************
001C: BCF 0B.0
001D: MOVLP 00
001E: GOTO 013
.................... void main()
.................... { |
как видим в конце дейстрвительно попытка очистки Read-Only бита IOCIF вместо очистки соотв. бита в IOCAF
не читают даташитов мля !
Последний раз редактировалось xDriver; 17.12.2012 в 21:14.
|
|
|
|
17.12.2012, 21:19
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Old_Monster
|
Онли ручками.
ИМХО - очевидный косяк CCS.
|
Очевидный повод прекратить юзать встроенные функции ...
__________________
Осторожно , злой кот
|
|
|
|
17.12.2012, 21:37
|
|
Частый гость
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от dosikus
|
Очевидный повод прекратить юзать встроенные функции ...
|
ага и "С" тоже и Windows и компьютеры как класс
на счетах, все на счетах
|
|
|
|
17.12.2012, 21:39
|
|
Прописка
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
xDriver, подумалось вот: а какой версией компилятора вы свой "полностью рабочий обработчик" компилируете? Или он не под 1822 рабочий?
Прикол, кста: от версии к версии меняются фьюзы BOR
:
4,130 - //////// Fuses: NOSTVREN,STVREN,BORV27,BORV24,DEBUG,NODEBUG,NOLVP,LVP
4,138 - //////// Fuses: NOSTVREN,STVREN,BORV25,BORV19,DEBUG,NODEBUG,NOLVP,LVP
в более ранних, насколько припоминаю, тоже было 25 и 19
программеры CCS никак не определятся - что им больше нравится...
Последний раз редактировалось Old_Monster; 17.12.2012 в 21:49.
|
|
|
Сказали "Спасибо" Old_Monster
|
|
|
17.12.2012, 21:42
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от xDriver
|
ага и "С" тоже и Windows и компьютеры как класс
|
Ну уж крайностей не надо. Забудьте о встроенных функциях и станете ближе к стандарту.
__________________
Осторожно , злой кот
|
|
|
|
17.12.2012, 21:48
|
|
Частый гость
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Old_Monster
|
xDriver, подумалось вот: а какой версией компилятора вы свой "полностью рабочий обработчик" компилируете? Или он не под 1822 рабочий?
|
Версия 4.138, да мой "полностью рабочий обработчик" был под 12Ф675,
на вашем пике не работает, я же выше все изложил.
|
|
|
|
17.12.2012, 21:53
|
|
Прописка
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
dosikus, Вы правы. По крайней мере - применительно к псевдоразным обработчикам прерываний у CCS.
Сообщение от xDriver
|
Версия 4.138, да мой "полностью рабочий обработчик" был под 12Ф675,
на вашем пике не работает, я же выше все изложил.
|
Это я с спросонья писал - с предыдущей страницы. Не успел прочесть Ваш пост.
|
|
|
|
17.12.2012, 21:57
|
|
Частый гость
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Old_Monster
|
xDriver,
Прикол, кста: от версии к версии меняются фьюзы BOR
:
4,130 - //////// Fuses: NOSTVREN,STVREN,BORV27,BORV24,DEBUG,NODEBUG,NOLVP,LVP
4,138 - //////// Fuses: NOSTVREN,STVREN,BORV25,BORV19,DEBUG,NODEBUG,NOLVP,LVP
в более ранних, насколько припоминаю, тоже было 25 и 19
программеры CCS никак не определятся - что им больше нравится...
|
Это меня вообще убивает ![Бьюсь об стену](images/smilies/icon_obstenu.gif) , мало того что назвали их на своем тарабарском, так еще от пика к пику и от версии к версии меняют как хотят !
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:16.
|
|