/****************************************Copyright (c)**************************************************** ** Guangzhou ZHIYUAN electronics Co.,LTD. ** ** http://www.embedtools.com ** **--------------File Info--------------------------------------------------------------------------------- ** File name: main.c ** Last modified Date: 2010-02-04 ** Last Version: V1.0 ** Descriptions: The main() function example template ** **-------------------------------------------------------------------------------------------------------- ** Created by: Lanwuqiang ** Created date: 2010-02-05 ** Version: V1.0 ** Descriptions: 添加用户应用程序 ** **-------------------------------------------------------------------------------------------------------- ** Modified by: ZhangNingbo ** Modified date: 2010-02-25 ** Version: V1.0 ** Descriptions: 看门狗复位示例程序 ** **-------------------------------------------------------------------------------------------------------- ** Modified by: ** Modified date: ** Version: ** Descriptions: ** ** Rechecked by: *********************************************************************************************************/ #include "..\config.h" /********************************************************************************************************* 宏定义和全局变量 *********************************************************************************************************/ #define BEEP (1ul << 7) #define KEY1 (1ul << 0) #define BEEPOFF() GPIO2DATA |= BEEP /* 蜂鸣器关 */ #define BEEPON() GPIO2DATA &= ~BEEP /* 蜂鸣器开 */ /********************************************************************************************************* ** Function name: myDelay ** Descriptions: 软件延时 ** input parameters: 无 ** output parameters: 无 ** Returned value: 无 *********************************************************************************************************/ void myDelay (INT32U ulTime) { INT32U i; i = 0; while (ulTime--) { for (i = 0; i < 5000; i++); } } /********************************************************************************************************* ** Function name: WDTInit ** Descriptions: WDT初始化函数 ** input parameters: 无 ** output parameters: 无 ** Returned value: 无 *********************************************************************************************************/ void WDTInit (void) { WDTCLKSEL = 0x01; /* 选择WDT时钟源 */ WDTCLKUEN = 0x00; WDTCLKUEN = 0x01; /* 更新使能 */ WDTCLKDIV = 0x01; /* 分频为1 */ SYSAHBCLKCTRL |= (0x01 << 15); /* 打开WDT模块 */ WDTTC = 0xFFFF; /* 定时时间 */ WDTMOD = (0x01 << 0) /* 使能WDT */ |(0x01 << 1); /* 使能WDT中断 */ WDTFEED = 0xAA; /* 喂狗 */ WDTFEED = 0x55; } /********************************************************************************************************* ** Function name: main ** Descriptions: WDT定时中断,当硬件基于EasyCotex M3-1300时,按下KEY1不放,则芯片复位, ** input parameters: 无 ** output parameters: 无 ** Returned value: 无 *********************************************************************************************************/ int main(void) { targetInit(); /* 初始化目标板,切勿删除 */ pinInit(); /* 引脚初始化 */ SYSAHBCLKCTRL |= (1ul << 6); /* 打开GPIO功能部件时钟 */ GPIO2DIR |= BEEP; /* 设置P2.7为输出 */ GPIO3DIR &= ~KEY1; /* 设置KEY1的方向为输入 */ BEEPON(); myDelay(100); BEEPOFF(); WDTInit(); /* 看门狗初始化 */ while (1) { while ((GPIO3DATA & KEY1) == 0x00) { /* 当KEY1按下时,停止喂狗 */ } zyIrqDisable(); /* 关中断 */ WDTFEED = 0xAA; /* 喂狗 */ WDTFEED = 0x55; zyIrqEnable(); /* 开中断 */ } } /********************************************************************************************************* End Of File *********************************************************************************************************/