Funkce přerušení problém

I

innovationhut

Guest
Ahoj, já jsem s použitím Proteus v kombinaci s pro MikroC. Já jsem uvízl na jednoduché přerušení funkce. Snažím se "zapnout LED na jednoduchém interrupt0". Zde je kód: unsigned char counter = 0; neplatné interrupt () {if (INTCON.INT0IF) {čítač + +; INTCON.INT0IF = 0;}} void main () {unsigned char puls, TRISB.INT0 = 1; TRISC. F3 = 0; INTCON.INT0IF = 0; INTCON.INT0IE = 1; INTCON.GIE = 1; do {= čítač impulsů, pokud (puls = 1) {PORTC.F3 = 1; counter = 0;}} while (1 );} Program zapne LED nesvítí, pokud je tlačítko zapojené do žádné port mikrokontroléru, ale já chci jen INT0 přerušení. Doufám, že někdo může pomoci. Díky předem.
 
Puls je jen další proměnné pro uložení hodnoty čítače
 
if (impuls = 1)?? Tento výraz je vždy pravda! if (pulzní == 1) Tento výraz platí pouze v případě impulsu se rovná 1.
 
Ahoj, díky za odpověď brzy, ale já znění chyby, ještě nejsem dostat odpověď od INT0. Zde je můj kód: "Když se INT0 připojení k 5V (tj. tlačítko uzavřeno) LED připojených k RC2 by měl jít vysoko. Ale já jsem stále nic," Já jsem za použití 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 obvodu, jsem připojen jednoduchý přechod na PINB0. Jakákoliv pomoc bude vítána. Díky
 
Kód vypadá v pořádku? I když byste měli vždy používat závorek: if (cokoliv) {doSomething;} (Misra pravidlo) Neříkejte, která mikro používáte? OPTION_REG bit INTEDG nastavuje přerušení na náběžnou nebo sestupnou hranou, standardně je na sestupné hraně. Předpokládá se, že máte pulldown odpor na RB0 vstupu a přepínači tahá vysoká? V takovém případě byste měli mít přerušit, když si pustit vypínač a linka pokračuje nízká? [/Code]
 
Ahoj, já jsem s použitím MikroC kompilátoru a pic18f4250. V tomto případě se musím zaregistrovat INTCON2 vybrat stoupající a klesající hraně. Ve výchozím nastavení je přerušit na náběžné hraně. Ale z nějakého důvodu nefunguje vůbec!
 
Nemám žádné zkušenosti s překladač MikroC, používám mcc18. Použijte MPLAB pro zobrazení paměti programu a demontáž. Přerušení by měla být umístěna na adrese 04 a 08.
 

Welcome to EDABoard.com

Sponsor

Back
Top