»ùÓÚARM¿´ÃŹ·³ÌÐòÉè¼Æ

¿Î³Ì½áҵʵÑ鱨¸æ

¿Î³ÌÃû³Æ£º ǶÈëʽϵͳÉè¼Æ

±¨¸æÌâÄ¿£º רҵ°à¼¶£º

ѧÉúÐÕÃû£ºÖ¸µ¼½Ìʦ£º »ùÓÚARMµÄ¿´ÃŹ·³ÌÐòÉè¼Æ

ͨÐÅ1601°à ѧºÅ£º

2017 Äê 6 ÔÂ 20 ÈÕ

¿´ÃŹ·ÊµÑé

1 ʵÑéÄ¿µÄ

(1) Á˽âWATCHDOGµÄ×÷Óã»

(2) ÕÆÎÕWATCHDOG¶¨Ê±Æ÷µÄʹÓ÷½·¨¡£

2 ʵÑéÄÚÈÝ

(1) ±à³ÌÌí¼Ó¿´ÃŹ·¹¦ÄÜ£¬¹Û²ì¿´ÃŹ·×÷Óã» (2) ±à³ÌʵÏÖ¿´ÃŹ·Î¹¹·¡£

3 ʵÑé»ù´¡ÖªÊ¶

(1) ¿´ÃŹ·¹¦ÄÜ£ºÇ¶ÈëʽϵͳÔËÐÐʱÊÜÍⲿ¸ÉÈÅ»òϵͳ´íÎ󣬳ÌÐòÓÐʱ»á³öÏÖ¡°ÅÜ·É¡±£¬µ¼ÖÂÕû¸öϵͳ̱»¾¡£Îª·ÀÖ¹ÕâÒ»ÏÖÏóµÄ·¢Éú£¬ÔÚ¶ÔϵͳÎȶ¨ÐÔÒªÇó½Ï¸ßµÄ³¡ºÏÍùÍùÒª¼ÓÈë¿´ÃŹ·µç·£¨WATCHDOG£©¡£¿´ÃŹ·µÄ×÷ÓÃÊǵ±ÏµÍ³Åܷɶø½øÈëËÀÑ­»·Ê±£¬»Ö¸´ÏµÍ³µÄÔËÐС£

(2) ¿´ÃŹ·¹¤×÷Ô­Àí£ºÉ豾ϵͳ³ÌÐòÍêÕûÔËתһÖܵÄʱ¼äÊÇTp£¬¿´ÃŹ·¶¨ÊÇÖÜÆÚÊÇTi£¬Ti>Tp, ÔÚ³ÌÐòÔËÐÐÒ»Öܺó¾ÍÐ޸Ķ¨Ê±Æ÷µÄ¼ÆÊýÖµ£¬Ö»Òª³ÌÐòÕý³£ÔËÐУ¬¶¨Ê±Æ÷¾Í²»»áÒç³ö£¬ÈôÓÉÓÚ¸ÉÈŵÈÔ­ÒòÊÇϵͳ²»ÄÜÔÚTpʱ¿ÌÐ޸Ķ¨Ê±Æ÷µÄÊýÖµ£¬¶¨Ê±Æ÷½«ÔÚTi ʱ¿ÌÒç³ö£¬Òý·¢ÏµÍ³¸´Î»£¬Ê¹ÏµÍ³µÃÒÔÖØÐÂÔËÐУ¬´Ó¶øÆðµ½¼à¿ØµÄ×÷ÓÃ

ÔÚÒ»¸öÍêÕûµÄǶÈëʽϵͳÖлòµ¥Æ¬»úСϵͳÖÐͨ³£¶¼Óп´ÃŹ·¶¨Ê±Æ÷£¬ÇÒÒ»°ã¼¯³ÉÔÚ´¦ÀíÆ÷оƬÖУ¬¿´ÃŹ·Êµ¼ÊÉϾÍÊÇÒ»¸ö¶¨Ê±Æ÷£¬ÖªÊ¶ËüÔÚÆÚÂúºó½«×Ô¶¯ÒýÆðϵͳ¸´Î»¡£ £¨3£© ¿´ÃŹ·¶¨Ê±Æ÷¼ÆÊýÖµ£º

ÊäÈëµ½¼ÆÊýÆ÷µÄʱÖÓÖÜÆÚ t_watchdog =1/(PCLK/Prescaler value + 1)/ Division_factor) ¿´ÃŹ·µÄ¶¨Ê±ÖÜÆÚ T = WTCNT * t_watchdog £¨4£©¿´ÃŹ·¶¨Ê±Æ÷¼Ä´æÆ÷ ¿ØÖƼĴæÆ÷£¨WTCON£©

Êý¾Ý¼Ä´æÆ÷£¨WTDAT£© ¼ÆÊýÆ÷¼Ä´æÆ÷£¨WTCNT£©

4 ʵÑé²½Öè

1

(1) н¨Ò»¸ö¹¤³Ìwatchdog£¬Ìí¼ÓÏàÓ¦µÄÎļþ£¬²¢ÐÞ¸ÄwatchdogµÄ¹¤³ÌÉèÖã»´´½¨watchdog.c²¢¼ÓÈëµ½¹¤³ÌwatchdogÖУ¬²¿·Ö²Î¿¼´úÂëÈçÏ£º

/* functions */

void rtc_tick_isr(void) __attribute__ ((interrupt(\void rtc_int_isr(void) __attribute__ ((interrupt(\//ÉèÖüĴæÆ÷²ÎÊý #define WDT_ENABLE

(0x01<<5)

(0x01<<2) (0x01<<0)

/* 1/128 */

/* 49

#define WDT_INT_ENABLE #define WDT_RST_ENABLE #define WDT_CLK_SEL

(0X3 <<3)

#define WDT_PRE_SCALER void watchdog_init() {

rWTCNT = 8448 * 2;

((PCLK/1000000-1) <<8)

/* ÉèÖÿ´ÃŹ·³õʼֵ */

rWTCON = WDT_ENABLE | WDT_RST_ENABLE | WDT_CLK_SEL | WDT_PRE_SCALER;

/* ´ò¿ª¿´ÃŹ· */ }

void rtc_set_date(st_date* p_date) {

rRTCCON = 0x01;

rBCDYEAR = p_date->year; rBCDMON = p_date->mon; rBCDDAY = p_date->day; rBCDDATE = p_date->week_day; rBCDHOUR = p_date->hour; rBCDMIN = p_date->min; rBCDSEC = p_date->sec; rRTCCON = 0x00; }

void rtc_get_date(st_date* p_date)

2

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4