12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /**********************************************************************************************************
- 看门狗复位演示,若sw2长按LED1长亮,喂狗,看门狗不超时复位
- 若sw2没有被按下,LED1闪烁。看门狗一直超时复位。
- **********************************************************************************************************/
- #include <REGtenxTM52F1386.h>
- #include "TM52F1386_bsp.h"
- #include <intrins.h>
- sbit LED1 = P1^5;
- /*
- 系统频率设置为二分频
- */
- /******************************************************************************************
- ** 函数名称: gpio_light_init
- ** 函数描述: IO模式配置
- ** 输入参数: 无
- ** 输出参数: 无
- *******************************************************************************************/
- void gpio_init()
- {
- PORTIDX = PORT1;
- PINMOD54 = PINMOD54 & ~0xf0 | PIN_H_MODE_PP; //p15为LED1控制引脚,推挽输出
- P1_5 = 1;
-
- PORTIDX = PORT5;
- PINMOD76 = PINMOD76 &~0xf0 | PIN_H_MODE_OD_IPU; //P57为SW2按键的检测口,开漏上拉输入
- P5_7 = 1;
- }
- /******************************************************************************************
- ** 函数名称: wdg_init
- ** 函数描述: 看门狗初始化函数
- ** 输入参数: 无
- ** 输出参数: 无
- *******************************************************************************************/
- void wdg_init()
- {
- OPTION = (OPTION &~ OPTION_WDTPSC_MASK) | (0 < OPTION_WDTPSC_POS); //240MS
- AUX2 = (AUX2 &~ AUX2_WDTE_MASK) | (2 << AUX2_WDTE_POS); //看门狗在快钟和慢钟模式下使能,空闲/停止/暂停模式下禁止
- AUX1 = (AUX1 &~ AUX1_CLRWDT_MASK) | (0);
- CLR_WDT; //设置以清除看门狗定时器
- }
- int a = 1;
- /******************************************************************************************
- ** 函数名称: main
- ** 函数描述: main函数
- ** 输入参数: 无
- ** 输出参数: 无
- ** 说 明: 上电后,喂狗,LED长亮;不喂狗亮240ms,灭200ms
- *******************************************************************************************/
- void main (void)
- {
- bsp_clock_init(); // 系统快钟18.432 div 2 = 9.216Mhz
- gpio_init();
- wdg_init();
-
- LED1 = 0; //点亮LED
- while (1)
- {
- bsp_delay_ms (80);
- if(P5_7 == 0) //SW2按下为低
- {
- CLRWDT = 1; //喂狗
- }
- }
- }
|