Problem med å skrive C-kode for håndtering avbryte

C

cs181

Guest
Nedenfor er C koden for håndtering av en ekstern avbrudd.
Den opprinnelige verdien på PORTC er 0;
Når et avbrudd oppstår det øke PORTC med 1;

Jeg brukte WinAVR å konvertere c koden i hex kode, og deretter lastet heksadesimalkoden på brikken (AVR ATMEGA8) for test.Verdiene på PORTC endre tilfeldig hvert et avbrudd oppstår.

Kan noen fortelle meg hva galt med koden?Takk.

# include <avr/io.h>
# include <avr/signal.h>
# include <avr/sleep.h>

SIGNAL (SIG_INTERRUPT1)
(
PORTC = PORTC 1;

/ / Enable global interrupt (side 9)
SREG | = 0x80;

/ ** Sleep Mode ** /
set_sleep_mode (SLEEP_MODE_IDLE);
sleep_mode ();
)

int main (void)
(
DDRC | = 0xFF;
PORTC = 0x00;

/ ** Opptaksknappen avbryte ** /
/ / Alle logisk endring på INT1 genererer et avbrudd
MCUCR | = 0x04;
/ / Enable external avbryte pin INT1
GICR | = 0x80;
/ / Enable global interrupt (side 9)
SREG | = 0x80;

/ ** Sleep Mode ** /
set_sleep_mode (SLEEP_MODE_IDLE);
sleep_mode ();
)

 
Har du det samme problemet med dette?SIGNAL (SIG_INTERRUPT1)
(
static unsigned char ucTestPort = 0;

PORTC = ucTestPort ;

/ / Enable global interrupt (side 9)
SREG | = 0x80;
:
:

Gomez

 

Welcome to EDABoard.com

Sponsor

Back
Top