с письменного С-кода для обработки прерываний

C

cs181

Guest
Ниже приведен код C для обработки внешних прерываний.
Первоначальное значение PORTC равен 0;
Когда это происходит прерывание прирост PORTC на 1;

Я использовал WinAVR для преобразования кода на C шестнадцатеричный код, а затем загружены шестнадцатеричный код на чипе (AVR ATmega8) для испытаний.Значения на PORTC меняться в произвольном порядке каждый прерывание происходит.

Может кто-нибудь сказать мне Whats Wrong с кодом?Спасибо.

# включить <avr/io.h>
# включить <avr/signal.h>
# включить <avr/sleep.h>

SIGNAL (SIG_INTERRUPT1)
(
PORTC = PORTC 1;

/ / Включить глобального прерывания (стр. 9)
SREG | = 0x80;

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

п (VOID)
(
DDRC | = 0xFF;
PORTC = 0x00;

/ ** Кнопку записи прервать ** /
/ / Любые логические изменения INT1 генерирует прерывание
MCUCR | = 0x04;
/ / Разрешение внешнего прерывания INT1 Pin
GICR | = 0x80;
/ / Включить глобального прерывания (стр. 9)
SREG | = 0x80;

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

 
Вы же проблемы с этим?SIGNAL (SIG_INTERRUPT1)
(
статического знака ucTestPort Char = 0;

PORTC = ucTestPort ;

/ / Включить глобального прерывания (стр. 9)
SREG | = 0x80;
:
:

Гомес

 

Welcome to EDABoard.com

Sponsor

Back
Top