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

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

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

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

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

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


 
Опции темы
Непрочитано 16.12.2012, 02:00  
Old_Monster
Прописка
 
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
Old_Monster на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Код:
1:                 #include ‹V.AA.3.0.h›
   000    0000     NOP
   001    3180     MOVLP 0
   002    2886     GOTO 0x86
   004    0183     CLRF 0x3
   005    018A     CLRF 0xa
   006    0020     MOVLB 0
   007    0820     MOVF 0x20, W
   008    00A4     MOVWF 0x24
   009    0821     MOVF 0x21, W
   00A    00A5     MOVWF 0x25
   00B    0822     MOVF 0x22, W
   00C    00A6     MOVWF 0x26
   00D    0823     MOVF 0x23, W
   00E    00A7     MOVWF 0x27
   00F    1D8B     BTFSS 0xb, 0x3
   010    2813     GOTO 0x13
   011    180B     BTFSC 0xb, 0
   012    281C     GOTO 0x1c
   013    0824     MOVF 0x24, W
   014    00A0     MOVWF 0x20
   015    0825     MOVF 0x25, W
   016    00A1     MOVWF 0x21
   017    0826     MOVF 0x26, W
   018    00A2     MOVWF 0x22
   019    0827     MOVF 0x27, W
   01A    00A3     MOVWF 0x23
   01B    0009     RETFIE
2:                 
3:                 unsigned int intra5=0;
4:                 
5:                 #int_RA
6:                 void  RA_isr(void) 
7:                 {
8:                 	if(input(PIN_A5)==0)
   01C    0021     MOVLB 0x1
   01D    168C     BSF 0xc, 0x5
   01E    0020     MOVLB 0
   01F    1A8C     BTFSC 0xc, 0x5
   020    2823     GOTO 0x23
9:                 	{
10:                		intra5=1;
   021    3001     MOVLW 0x1
   022    00A8     MOVWF 0x28
11:                	}
12:                //	clear_interrupt(INT_RA5);
13:                }
14:                
15:                
   023    100B     BCF 0xb, 0  /////ЭТО НЕ ОЧИСТКА ФЛАГА IOCIF, НЕ? НЕ ФИГА НЕ РАБОТАЕТ.
   024    3180     MOVLP 0
   025    2813     GOTO 0x13
16:                void main()
17:                {
   086    0185     CLRF 0x5
   087    0184     CLRF 0x4
   088    301F     MOVLW 0x1f
............................
Реклама:

Последний раз редактировалось Old_Monster; 16.12.2012 в 06:38.
Old_Monster вне форума  
Непрочитано 16.12.2012, 10:41  
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)

Давно использую правило для себя при работе с прерываниями:
перед разрешением конкретного прерывания обязательно обнулить флаг этого прерывания и в обработчике его также сбросить.

[HTML]20: if(input(PIN_A5)==0){intra5=1;}
01C 0021 MOVLB 0x1
01D 168C BSF 0xc, 0x5
01E 0020 MOVLB 0
01F 1A8C BTFSC 0xc, 0x5
020 2823 GOTO 0x23
021 3001 MOVLW 0x1
022 00A8 MOVWF 0x28
21: clear_interrupt(INT_RA5);
023 0027 MOVLB 0x7
024 1293 BCF 0x13, 0x5
22: }
23:
025 100B BCF 0xb, 0
026 3180 MOVLP 0
027 0020 MOVLB 0
028 2813 GOTO 0x13
24: void main()[/HTML]

В Вашем случае это много ресурсов не займет, а надежность 100%.

Вот посмотритеhttp://www.ccsinfo.com/forum/viewtopic.php?t=45944 обсуждалось.
welcome61 вне форума  
Непрочитано 16.12.2012, 11:06  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

welcome61, В отличии от вас , я мануал на CCS читаю .
Почитайте на досуге - как происходит сборка модульного проекта в CCS , это лучше чем бездумно приводить чужие цитаты ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 16.12.2012, 13:44  
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 Посмотреть сообщение
welcome61, В отличии от вас , я мануал на CCS читаю .
Похвально!

КОНСТИТУЦИЯ ФОРУМА "Kazus.ru", а именно гл. III. ПРАВИЛА ПОВЕДЕНИЯ НА ФОРУМЕ не позволяет мне в подобном тоне отвечать dosikus.
welcome61 вне форума  
Непрочитано 16.12.2012, 14:58  
Eddy71
Почётный гражданин KAZUS.RU
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,125 раз(а) в 5,642 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Вот кусок из даташита.
Цитата:
This interrupt can wake the device from Sleep. The
user, in the Interrupt Service Routine, can clear the
interrupt in the following manner:
a) Any read or write of GPIO. This will end the
mismatch condition.
b) Clear the flag bit GPIF.
A mismatch condition will continue to set flag bit GPIF.
Reading GPIO will end the mismatch condition and
allow flag bit GPIF to be cleared.
Eddy71 вне форума  
Непрочитано 16.12.2012, 15:41  
Old_Monster
Прописка
 
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
Old_Monster на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

welcome61, в приведенном мной листинге по адресу 0x23 команда очистки флага IOCIF в INTCON
. Только при её выполнении флаг не очищается. Я в недоумении. BCF 0xb, 0 - сброс бита 0 в INTCON. Но после выполнения в бите также остается единица...

А команда принудительной очистки RA5 пишет в IOCAF.
Что-то мне кажется, надо забыть псевдо-разные векторы прерывания CCS и пользоваться #INT_GLOBAL


Сообщение от Eddy71 Посмотреть сообщение
Вот кусок из даташита.
Это точно даташит на PIC16F1822 ?
Не нашел там этого места.
И, кроме того, без выхода из сна флаг тоже не очищается.

Не, int-on-change однозначно ручками надо сбрасывать.

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

Нет, это шит на 12ф675. Но функция прерывания кочует копипастом с одного камня на другой и со времен 16ф84 не менялась. Везде одинаково работает.
Eddy71 вне форума  
Непрочитано 16.12.2012, 20:21  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от welcome61 Посмотреть сообщение
КОНСТИТУЦИЯ ФОРУМА "Kazus.ru", а именно гл. III. ПРАВИЛА ПОВЕДЕНИЯ НА ФОРУМЕ не позволяет мне в подобном тоне отвечать dosikus.
Ну так приведите свои доказательства по поводу Proteus.
Пока все "глюки" оборачивались кривизной конечностей.
Опровергните так же мои слова относительно сборки в CCS...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 17.12.2012, 03:11  
Old_Monster
Прописка
 
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
Old_Monster на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от Eddy71 Посмотреть сообщение
Нет, это шит на 12ф675. Но функция прерывания кочует копипастом с одного камня на другой и со времен 16ф84 не менялась. Везде одинаково работает.
Позволю себе усомниться. Семейство другое. В даташите ИМЕННО НА 12F1822 такого нет.
Или Вам о том поведали знакомые индусы из microchip?
Old_Monster вне форума  
Непрочитано 17.12.2012, 10:32  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Цитата:
The IOC is also a bit tougher to use, even beyond that. It is imperative to read the port soon before enabling the interrupt, and even more important to READ THE PORT inside the ISR! If you have a slow-changing signal, and think you can set a flag inside the ISR and do your read later, outside the ISR, think again! The read of the port (or any bit on the port, if I recall correctly), resets the latch on the comparator that triggers the interrupt. If you don't clear it inside the ISR, it will immediately retrigger when you exit the ISR. If you remember to do this, it's all good, but if you forget and think you can read the port when you get around to it, you'll get a bit frustrated until you remember to do the read in the ISR.
May be help for you...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
 

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

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

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