|
Все это сделано. Но собака не отключается. Могу скинуть исходник под IAR AVR 4.11A. Но там собственно ничего нет. В прерывании от 0 таймера устанавливается флаг. В основном цикле дергается ножка и сбрасывается флаг. Инициализация ватчдога полность скопированна с пдэфа. Вот прерывание: Вот цикл: Имена странные из-за того, что это уже только остаток от программы:) Вот объявление переменных:
E-mail:
info@telesys.ru
__watchdog_reset();
/* Clear WDRF in MCUSR */
MCUSR &= ~(1<
/* Keep old prescaler setting to prevent unintentional time-out
*/
WDTCSR |= (1<
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<
struct
{
union
{
unsigned char Byte;
struct
{
unsigned char Refresh:1;
};
}SystemFlags;
}Value, *AdrValue;
Ответы