| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблеми с прекъсване от таймер 0 на 18f4550 http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=3690 |
Страница 1 от 2 |
| Автор: | bborisov [ Вто Фев 06, 2007 11:58 pm ] |
| Заглавие: | Проблеми с прекъсване от таймер 0 на 18f4550 |
Здравейте! Имам следния проблем. Разрешил съм прекъсванията от таймер 0, разрешил съм и глобалните прекъсвания, но все едно не се обслужва това прекъсване. В подрограмата дето обслужва прекъсването съм му дал да сленя нивото на един пин, дето има закачен диод, за да мога да го следя, но нищо не става. А като го гледам с MPLAB SIM всичко си е наред - изпълнява се функцията за прекъсването, смемят си се нивата. Някой има ли идея какво може да става? |
|
| Автор: | Syrius-B [ Сря Фев 07, 2007 12:01 am ] |
| Заглавие: | |
Ами остава пина, дето ти е диода да е нещо крив, или криво вързан. Казал ли си му, че е изход? |
|
| Автор: | bborisov [ Сря Фев 07, 2007 12:29 am ] |
| Заглавие: | |
да, конфигуриран е като изход |
|
| Автор: | Dimitar [ Сря Фев 07, 2007 12:49 am ] |
| Заглавие: | |
Без да постнеш програмата тук, няма кой да ти помогне така с гадаене |
|
| Автор: | bborisov [ Сря Фев 07, 2007 9:40 am ] | ||
| Заглавие: | |||
Ето и част от сорса.
|
|||
| Автор: | bkulev [ Сря Фев 07, 2007 3:51 pm ] |
| Заглавие: | |
Не съм ти гледал кода подробно, обаче освен това, което пишеш че си направил, трябва още да трябва да сетнеш коректно INTCON2. TMR0IP и в зависимост от това INTCON.GIEH или GIEL и много важно - не забравяй в прекъсването да нулираш флага. |
|
| Автор: | bborisov [ Сря Фев 07, 2007 4:04 pm ] |
| Заглавие: | |
на мен IPEN ми е 0 и нямам приоритети, не бил и трябвало TMR0IP и битовете в INTCON2 да не влияят? А флага си го нулирам в подпрограмата, дето обслужва прекъсването. |
|
| Автор: | Gogo [ Сря Фев 07, 2007 4:24 pm ] |
| Заглавие: | |
Не съм се задълбочавал в сорса, но на пръв поглед виждам това: В прекъсването само сетваш пиновете със светодиодите по един и същи начин всеки път - никакво изменение няма да видиш. Ползваш RA1 и RA2 - провери си как си сетнал аналоговите компаратори! |
|
| Автор: | bborisov [ Сря Фев 07, 2007 4:36 pm ] |
| Заглавие: | |
Да сетвам ги по един и същи начин, но първоначално е сетнат само единияи би трябвало ако се обслужи прекъсването тои да се загаси и да се сетне другия, но това не става. А относно порт а TRISA=0 |
|
| Автор: | evc [ Сря Фев 07, 2007 4:49 pm ] |
| Заглавие: | |
По-добре използвай функцията mLED_1_Toggle(). Защото може за части от секундата след захранване на схемата да ти сменя състоянието, но понеже е само веднъж ти да не го виждаш. Щом ти върви в МПЛАБ(прекъсването от ТМР0), не е грешна конфигурацията на таймера. Огледай добре ресета. И въобще хардуера, защото щом единия свети, а другия - не и изходите са ти конфигурирани правилно. |
|
| Автор: | bborisov [ Сря Фев 07, 2007 5:14 pm ] |
| Заглавие: | |
Аз нарочно не ползвам Toggle, за да може ако поне веднъж се изпълни функцията, обработваща прекъсването, диодът, който свети да загасни, а дръгият да светне. Това няма как да не го видя. При следващо прекъсване би трябвало пак да останат в токова състояние. Проблемът е, че като ресетна процесора си свети само първия диод постоянно, което ме навежда на мисълта, че функцията за прекъсвнето не се изпълняма нито веднъж. |
|
| Автор: | Predator_MF [ Сря Фев 07, 2007 6:56 pm ] |
| Заглавие: | |
При такт 48MHz (12MIPS) с коефициент на делене 1:1 на Timer0 как точно ще видиш "мигане" ?! |
|
| Автор: | bborisov [ Сря Фев 07, 2007 7:06 pm ] |
| Заглавие: | |
Погледни кода! Аз не очаквам да видя "мигане", а просто единият диод да загасне и да светне другия! Но това не става. |
|
| Автор: | Predator_MF [ Сря Фев 07, 2007 7:09 pm ] |
| Заглавие: | |
@bborisov, направи една 8 битова променлива, която да инкрементираш при всяко препълване на Timer0, сложи T0 коефициент на делене 1:256, сложи функция която да ти обръща състоянието на светодиода (led_toggle) при препълване на променливата и тогава ако не замига се оплачи |
|
| Автор: | evc [ Сря Фев 07, 2007 11:51 pm ] |
| Заглавие: | |
offtopic:/ @Predator_MF, сега може би ме разбираш защо така реагирам понякога... /offtopic |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|