ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
106836
asdert (07.12.2007 12:52, просмотров: 1803)
Народ посмотрите прогу, не пойму в чем глюк! Прога на WINAVR, работаю с avrstudio4.13 SP1 Build 557 По нажатию кнопки PIND2(высокий уровень) срабатывает прерывание, переменная BUTTON принимет значение = 1, а основная прога далжна проверять значение этой переменной, и если оно = 1, то переменная fr должна увеличиваться (инкремент), НО ПРОГА ЭТОГО НЕ ДЕЛАЕТ, при проверке disassembler-ом регистр, куда пишется значение BUTTON, не изменяет свое значение - он всегда =0 #include #include //*************************** int BUTTON,fr; //************************** void Interrupt_initialization(void) { EICRA=1; EIMSK=1;//3; } //************************** ISR(INT0_vect) // прерывание от клавиши PIND2 { BUTTON = 1; } //*********************** int main (void) { cli(); Interrupt_initialization(); sei(); while (1) { if (BUTTON == 1) { BUTTON=0; fr++; } } }