возможно, у вас и ранее все работало правильно, но вы об этом не догадывались...
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
#define F_CPU 8000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
uint16_t Sch = 1000;
ISR(TIMER1_COMPA_vect) /* Timer/Counter1 Compare Match A */
{
PORTB = ~PORTB;
};
static void ti_ini(uint16_t Sch)
{
// Инициализация Timer1 16bit
TCCR1B = 0; // Остановили таймер
TCCR1A = 0;
TCNT1 = 0; // Начальное значение счётчика таймера
OCR1A = Sch; // Значение сравнения
TIMSK = _BV(OCIE1A);// Разрешаем прерывание при совпадении с А
TCCR1B = _BV(WGM12) | _BV(CS12);
}
static void TI_Write(uint16_t Sch)
{
OCR1A=Sch;
}
int main(void)
{
/* Светодиоды */
DDRB = _BV(PB3); // индикатор прерывания
DDRD = _BV(PD7); // индикатор нажатия клавиши
/* Подтяжка вверх для кнопок */
PORTC = _BV(PC1) | _BV(PC0);
ti_ini(Sch);
sei();
while (1)
{
if (!(PINC & _BV(PC0))) // нажата кнопка PC0
{
PORTD ^= _BV(PD7); // Подтверждение нажатия кнопки
Sch = 5000;
TI_Write(Sch);
_delay_ms(100);
}
if (!(PINC & _BV(PC1))) // нажата кнопка PC1
{
PORTD ^= _BV(PD7); // Подтверждение нажатия кнопки
Sch = 2000;
TI_Write(Sch);
_delay_ms(100);
}
}
}
т.е. WDT включен аппаратно, а в коде нет ни строчки про него - из-за непрерывно следующих резетов программа может вести себя абсолютно неадекватноAn-SU писал(а):EXTENDED.WDTON - 0
прошивка через SPI запрещена ?! и как вы прошиваетесь тогда? по OCD?An-SU писал(а):HIGH.SPIEN - 1
т.е. WDT включен аппаратно, а в коде нет ни строчки про него - из-за непрерывно следующих резетов программа может вести себя абсолютно неадекватно[/uquote]An-SU писал(а):EXTENDED.WDTON - 0
WDTON
По умолчанию этот таймер отключен. Для включения сторожевого таймера служит FUSE переключатель WDTON.
фьюз активируется нулем. я не знаю, какая логика в предъявленном нам описании фьюзов. я знаю, что запрограммированный фьюз это ноль, стертый - единичка. т.е. WDT активированprinv писал(а):Для включения таймера этот фьюз нужно включить, а тут наоборот