با سلام
من یک برنامه برای تست watchdog میکرو با codevision نوشتم.
#include <mega64.h>
#include <delay.h>
در حالت عدی watchdog کار کرده و میکرو را ریست میکند ولی اگر به جای xxxxxxx کد delay_ms(1); را جایگزین کنیم دیگر watchdog عمل نمیکند. و نکته جالب اگر با delay_us(1000); جایگزین کنیم برنامه کار میکند و watchdog میکرو را ریست می کنه!!! :angry:
لطفا درباره این مورد اگر کسی تجربه ای داره منو راهنمائی کنه.
من یک برنامه برای تست watchdog میکرو با codevision نوشتم.
#include <mega64.h>
#include <delay.h>
void main(void)
{
// Watchdog Timer initialization
// Watchdog Timer Prescaler: OSC/16k
#pragma optsize-
WDTCR=0x1F;
WDTCR=0x0F;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
#asm("sei"
while (1)
{
xxxxxx
}
}
{
// Watchdog Timer initialization
// Watchdog Timer Prescaler: OSC/16k
#pragma optsize-
WDTCR=0x1F;
WDTCR=0x0F;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
#asm("sei"

while (1)
{
xxxxxx
}
}
در حالت عدی watchdog کار کرده و میکرو را ریست میکند ولی اگر به جای xxxxxxx کد delay_ms(1); را جایگزین کنیم دیگر watchdog عمل نمیکند. و نکته جالب اگر با delay_us(1000); جایگزین کنیم برنامه کار میکند و watchdog میکرو را ریست می کنه!!! :angry:
لطفا درباره این مورد اگر کسی تجربه ای داره منو راهنمائی کنه.
دیدگاه