| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > AVRstudio обработка прерывания по переполнению |
| Автор: mooz 4.9.2007, 18:21 |
| я написал: .... #include <avr/interrupt.h> .... void ioinit (void) { инициализация портов и проч. // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 8000.000 kHz // Mode: Normal top=FFh // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x01; TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x02; sei(); // Global enable interrupts }//end of ioinit //================================ ISR(TIMER0_OVF_vect)//функция обработки прерывания { ....код, выполняемый при прерывании } //================================ int main (void) { ioinit (); ....всякий код } //================================ ВОПРОСЫ: 1. после второго вызова ISR(TIMER0_OVF_vect)программа не выходит из функции. 2. если в программе есть функция ISR(TIMER0_OVF_vect) счетчик считает не не до 0хFF а 0х07. что я делаю непправильно? |