Доброго времени суток!!! Делаю проект на atmega8a. CodeVision 1.25.9 Проблемка в том, что не запускается сторожевой таймер!!!
Фьюз WDTON хоть включаю, хоть выключаю, перезапуска не происходит!!! Программа продолжает работать как не в чем небывало!!! Раннее работал с 32й мегой и тини 2313 там с watchdog'ом проблем небыло.
Подскажите, в чем может быть глюк? Может что пропустил? Пример листинга программы:
/*Chip type : ATmega8 Program type : Application Clock frequency : 8,000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/
#include <mega8.h>
#include <delay.h>
// Declare your global variables here
void main(void) {
// Declare your local variables here PORTB=0x00; DDRB=0xCF;
PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0xFF;
// Timer/Counter 0 initialization TCCR0=0x00; TCNT0=0x00;
// Timer/Counter 1 initialization TCCR1A=0x81; TCCR1B=0x01; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization ASSR=0x00; TCCR2=0x69; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// Analog Comparator initialization ACSR=0x80; SFIOR=0x00;
// ADC initialization ADCSRA=0x83; #pragma rl+
//********* WATCHDOG TIMER ********** #pragma optsize- WDTCR=0x1F;//включаем watchdog WDTCR=0x0F;
#ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif
PORTB.6=1;PORTB.7=1;PORTD.3=1;// включение светодиодов delay_ms(9000);// здесь должен произойти перезапуск //************************************* while (1){ PORTB.6=0;PORTB.7=0;PORTD.3=0;delay_ms(100);// включение светодиодов PORTB.6=1;PORTB.7=1;PORTD.3=1;delay_ms(100);// выключение светодиодов } }
Сообщение отредактировал MCM - Nov 6 2010, 10:40
|