прекъсва не работи

B

bbgil

Guest
здравей. Аз съм практикуващ mikroC но и не може да направи работата interrup. е много проста програма, преминете в RB0 като прекъсне и брои броя на време превключвател е и изключване. пуснати в порта А крайна сметка. compilling но изходът изглежда да се определя на изхода 9, когато пускам PIC в breadboard. Може ли някой да посочи какво правя грешно тук. тук е кода. Благодаря предварително. неподписани CNT; неподписани бр; нищожен прекъсване () {CNT + +; PC = 0x0A; CNT = CNT-PC; ако (cnt! = 0) {PORTA = CNT;} друго {CNT = 0; PORTA = CNT;} INTCON = 0x02 ;} нищожен основни () {TRISB = 0xFF; / / PORTB се въвежда PORTB = 0xFF; / / Инициализиране PORTB TRISA = 0; PORTA = 0; INTCON = 0x98; / / Разреши RB0 прекъсне CNT = 0; / / Инициализиране CNT, докато (1) {PORTA = CNT;} }//~!
 
Аз не съм експерт в ПОД, но прекъсване, мисля, не е ОК. [Код] нищожен прекъсване () {... [/ Код] Аз съм учил C51 и пиша това: [код] невалидни int_name () прекъсване # {... } [/ Код] # е номера на прекъсването. например: външни прекъсване 0 -> # = 1 [код] невалидни int_rutine () прекъсват 1 {... } [/ Код]
 
Здравейте, моля премахнете INTCON линия = 0x02; от Ур прекъсне функция и да го тествате
 
фиксира проблем! си INTCON настройка на прекъсне. Ако бъде неподписани CNT; неподписани бр; нищожен прекъсване () {CNT + +; ако (CNT> 0x09) {CNT = 0; PORTA = CNT;} друго {PORTA = CNT;} INTCON = 0x10;} / / набор интеграция и ясно на флаг нищожен основни () {TRISB = 0xFF; / / PORTB се въвежда PORTB = 0xFF; / / Инициализиране PORTB TRISA = 0; PORTA = 0; INTCON = 0x90; / / Разрешаване на RB0 прекъсват, GIE и RBIE CNT = 0; / / Initialize CNT докато (1) {PORTA = CNT;} }//~! Аз не успя да прекъсне първи път. Трябва да го създаде и cleari на флага в същото време след прекъсването. благодарности за помощта.
 

Welcome to EDABoard.com

Sponsor

Back
Top