Funkcia prerušenia problém

I

innovationhut

Guest
Ahoj, ja som s použitím Proteus v kombinácii s pre MikroC. Ja som uviazol na jednoduché prerušenie funkcie. Snažím sa "zapnúť LED na jednoduchom interrupt0". Tu je kód: unsigned char counter = 0; neplatné interrupt () {if (INTCON.INT0IF) {čítač + +; INTCON.INT0IF = 0;}} void main () {unsigned char pulz, TRISB.INT0 = 1; trieske. F3 = 0; INTCON.INT0IF = 0; INTCON.INT0IE = 1; INTCON.GIE = 1; do {= čítač impulzov, ak (pulz = 1) {PORTC.F3 = 1; counter = 0;}} while (1 );} Program zapne LED nesvieti, ak je tlačidlo zapojené do žiadnej port mikrokontroléra, ale ja chcem len INT0 prerušenia. Dúfam, že niekto môže pomôcť. Vďaka vopred.
 
Pulz je len ďalší premennej na uloženie hodnoty čítača
 
if (impulz = 1)? Tento výraz je vždy pravda! if (pulzná == 1) Tento výraz platí len v prípade impulzu sa rovná 1.
 
Ahoj, vďaka za odpoveď skoro, ale ja znení chyby, ešte nie som dostať odpoveď od INT0. Tu je môj kód: "Keď sa INT0 pripojenie k 5V (tj tlačidlo uzavreté) LED pripojených k RC2 by mal ísť vysoko. Ale ja som stále nič," Ja som za použitia mikro C kompilátor.
Code:
 [code] neplatné interrupt () {if (INTCON.INT0IF == 1) PORTC.RC2 = 1; INTCON.INT0IF = 0;} void main () {TRISB.RB0 = 1; TRISC.RC2 = 0; INTCON = 0x90; while (1);}
[/code] v obvode, som pripojený jednoduchý prechod na PINB0. Akákoľvek pomoc bude vítaná. Vďaka
 
Kód vyzerá v poriadku? Aj keď by ste mali vždy používať zátvoriek: if (čokoľvek) {doSomething;} (Misr pravidlo) Nehovorte, ktorá mikro používate? OPTION_REG bit INTEDG nastavuje prerušenia po stúpajúcej alebo zostupnú hranou, štandardne je na zostupnej hrane. Predpokladá sa, že máte pulldown odpor na RB0 vstupe a prepínačmi ťahá vysoká? V takom prípade by ste mali mať prerušiť, keď si pustiť vypínač a linka pokračuje nízka? [/Code]
 
Ahoj, ja som s použitím MikroC kompilátora a pic18f4250. V tomto prípade sa musím zaregistrovať INTCON2 vybrať stúpajúci a klesajúci hrane. V predvolenom nastavení je prerušiť na nábežnej hrane. Ale z nejakého dôvodu nefunguje vôbec!
 
Nemám žiadne skúsenosti s prekladač MikroC, používam mcc18. Použite MPLAB pre zobrazenie pamäte programu a demontáž. Prerušenie by mala byť umiestnená na adrese 04 a 08.
 

Welcome to EDABoard.com

Sponsor

Back
Top