Страница 1 из 1

attiny45 , не могу адекватно, запустить собачий таймер

Добавлено: Сб мар 12, 2011 12:29:53
saschai
Госпада, опять нужен совет и опять собачий таймер.
Мелкий проектик на attiny45, выставляю ВД на 1 сек согласно даташиту
Кусок с кодом инициализации таймера

Код: Выделить всё

$regfile = "attiny45.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
'Wdtcr = &B00101001

Config Portb = Output
Config Pinb.4 = Input
Config Pinb.2 = Input

Config Adc = Single , Prescaler = Auto


Declare Sub Endbatarej
Declare Sub Pover

Config Watchdog = 256
Start Watchdog

Тинька сразу в постоянной перезагрузке, пытался увеличить время срабатывания таймера до 4сек, то же самое, только сбоку, попытался прошить бит Wdtcr напрямую, положительного результата не получил. Грешил на Протеус, прошил тиньку, впаял и получил то же самое, что и в протеусе
Где накосячил, может ей чего нибудь дополнительно надо?
Код без собачего таймера трудиться идиально, но мне он здесь очень нужен. Зависание МК, приведет к неприятным последствиям.
в результате экспириментов, понятно, что он не хочет работать с делителем, но почему?
Благодарю всех, кто окажит помощь.

Re: attiny45 , не могу адекватно, запустить собачий таймер

Добавлено: Вс мар 13, 2011 01:17:17
phanis
Возможно нужно сбрасывать собачий Таймер в asm wdr
т.е при включении, выполнение ваших программ.

Re: attiny45 , не могу адекватно, запустить собачий таймер

Добавлено: Вс мар 13, 2011 02:16:46
saschai
Не, ну не паровоз же :)) , естественно в заданных приделах...

Re: attiny45 , не могу адекватно, запустить собачий таймер

Добавлено: Вс мар 13, 2011 02:48:28
phanis
По даташиту у вас сходиться
но компилятор у меня показывает вот что

Код: Выделить всё

//Watchdog initialize
// prescale: 2048K
void watchdog_init(void)
{
WDTCR=0b00001111;
}