Problem s psaním C kód pro manipulaci přerušení

C

cs181

Guest
Níže je uveden kód C pro práci s externí přerušení.
Počáteční hodnota na PORTC je 0;
Při přerušení dojde, že přírůstek PORTC o 1;

Použil jsem WinAVR převést c kód do hex kódu, potom načíst hex kód na čipu (AVR ATmega8) pro test.Hodnoty, na změnu PORTC náhodně při každém přerušení nastane.

Může mi někdo říct co je špatného na kód?Děkuju.

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

SIGNAL (SIG_INTERRUPT1)
(
PORTC = PORTC 1;

/ / Povolit globální přerušení (str. 9)
SREG | = 0x80;

/ ** Režim spánku ** /
set_sleep_mode (SLEEP_MODE_IDLE);
sleep_mode ();
)

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

/ ** Record tlačítko přerušení ** /
/ / Jakákoliv logická změna na int1 generuje přerušení
MCUCR | = 0x04;
/ / Zapne externí přerušení pin int1
GICR | = 0x80;
/ / Povolit globální přerušení (str. 9)
SREG | = 0x80;

/ ** Režim spánku ** /
set_sleep_mode (SLEEP_MODE_IDLE);
sleep_mode ();
)

 
Už jste stejný problém s tímto?SIGNAL (SIG_INTERRUPT1)
(
statické unsigned char ucTestPort = 0;

PORTC = ucTestPort ;

/ / Povolit globální přerušení (str. 9)
SREG | = 0x80;
:
:

Gomez

 

Welcome to EDABoard.com

Sponsor

Back
Top