У меня таже проблема. Собака не выключается. По умалчанию в этой тинни собака включена, можно ее выключить только запрограммировав фьюз wdton и очистив регистр WDTCSR.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Igor 01 сентября 2005 г. 16:06
В ответ на: чудес ведь не бывает остается одно - код в студию отправлено m16 01 сентября 2005 г. 15:07

Все это сделано. Но собака не отключается. Могу скинуть исходник под IAR AVR 4.11A. Но там собственно ничего нет. В прерывании от 0 таймера устанавливается флаг. В основном цикле дергается ножка и сбрасывается флаг. Инициализация ватчдога полность скопированна с пдэфа.
__watchdog_reset();
/* Clear WDRF in MCUSR */
MCUSR &= ~(1</* Write logical one to WDCE and WDE */
/* Keep old prescaler setting to prevent unintentional time-out
*/
WDTCSR |= (1</* Turn off WDT */
WDTCSR = 0x00;

Вот прерывание:
__interrupt void Inter_Timer0_compA(void)
{
AdrValue->SystemFlags.Refresh=1;
}

Вот цикл:
Loop:
if (AdrValue->SystemFlags.Refresh==1)
{
__watchdog_reset();
OtlUp();
AdrValue->SystemFlags.Refresh=0;
OtlDown();
}
goto Loop;

Имена странные из-за того, что это уже только остаток от программы:)

Вот объявление переменных:
#define OtlUp() PORTD |= (1<#define OtlDown() PORTD &= ~(1<
struct
{
union
{
unsigned char Byte;
struct
{
unsigned char Refresh:1;
};
}SystemFlags;
}Value, *AdrValue;


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru