| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем с прекъсване от PortB 16f1938 http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=13362 |
Страница 1 от 1 |
| Автор: | Worvax [ Сря Ное 19, 2014 11:39 pm ] | |||||||||
| Заглавие: | Проблем с прекъсване от PortB 16f1938 | |||||||||
Здравейте, Опитвам се да направя нещо, което да реагира при промяна на portB. Независимо от пина който ползвам, когато вляза в програмата за обслужване при прекъсване няма излизане от там - цикли само вътре и не се връща в main. Опитах всички възможни примери, които намерих в интернет и резултата е еднакъв. Някой борил ли се е с това?
резултата е active int = 0 и след като подам ниско ниво на някой пин от PortB се започва "portBint = 1" до безкрай. |
||||||||||
| Автор: | Cino [ Чет Ное 20, 2014 1:03 am ] |
| Заглавие: | Re: Проблем с прекъсване от PortB 16f1938 |
ако това ти е прекъсването detect_rb_change() по-добре махни последните 3 реда и сложи едно изчистване на IOCBFx, по-голям шанс има да тръгне |
|
| Автор: | amdatlon [ Чет Ное 20, 2014 1:16 am ] | |||||||||
| Заглавие: | Re: Проблем с прекъсване от PortB 16f1938 | |||||||||
|
||||||||||
| Автор: | Stoimen [ Чет Ное 20, 2014 1:22 am ] |
| Заглавие: | Re: Проблем с прекъсване от PortB 16f1938 |
Мисля, че както е упоменал cino, трябва да се чисти и IOCBFx. CCS автоматично генерира код за изчистване на IOCIE флага преди да се излезе от int. както и забранява глобално прекъсванията когато "влезе" в такова. |
|
| Автор: | Worvax [ Чет Ное 20, 2014 1:53 am ] |
| Заглавие: | Re: Проблем с прекъсване от PortB 16f1938 |
Стана!! Горе в дефинициите добавих "#byte IOCBF = 0x396", а на излизане от "detect_rb_change()", последният ред е IOCBF = 0;. Незнам дали това е правилният начин, но поне сеега работи както трябва! Благодаря, че ме насочихте! |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|