вообщем не знаю от чего такой глюк был, но светодиод замигал. Возможно на программаторе не контакт где-то. Так как по факту только провода подергал.
И так вернемся к нашим баранам.
Код
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define Freq 4000000
ISR(TIMER1_OVF_vect)
{
TCNT1 = 0x10000 - (Freq / 1024);
PORTB ^= 0x01;
}
int main (void)
{
DDRB = 0x01;
TCCR1A = 0;
TCCR1B = 5;
TCNT1 = 0x10000 - (Freq / 1024);
TIFR = 0x00;
TIMSK = 0x80;
// GICR = 0x00;
sei();
while(1){};
}
Цитата
1. Проверить систему тактирования (генерит-ли кварц, если не от внутреннего RC-тактируетесь.)
из предыдущей проги удалось замаргать светодиод. Делаем вывод что кварц работает.
PetkaКод
#include <avr/io.h>
#include <avr/delay.h>
int main (void)
{
DDRB = 0xFF;
while(1)
{
_delay_loop_2(300000);
PORTB=0xFF;
_delay_loop_2(3000000);
PORTB=0x00;
}
return 1;
}
замигал так.
Код
2. Проверить питание и пороги BOD.
на входе 4.78 В С порогами не может быть ничего наверно, так как 1 источник питания только же.
Код
3. Отключить watсhdog.
wdt_disable(); так ?
я хз я его не использовал в проге. Я так понял эта штука нужна для аварийных ситуаций, когда зависон какой-то происходит. Так?
Код
4. Отключить во фьюзах JTAG.
во фьюзах посмотрел нету вообще JTAG
Код
5. Подёргать ножкой без прерываний:
в предыдущем примере сделал, но по другому немного.