📄 main.c
字号:
/****************************************Copyright (c)***************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by: Li Baihua
** Modified date: 2008-04-03
** Version: 1.1
** Descriptions: 演示看门狗溢出复位,按键KEY1被按下后使得看门狗溢出复位,LED闪烁一次
**
*********************************************************************************************************/
#include "config.h"
#define LED1 1 << 17 /* P0.17控制LED1 */
#define KEY1 1 << 16 /* P0.16产生看门狗溢出按键 */
/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 延时函数
** input parameters: uiDly 延时值
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void DelayNS(uint32 uiDly)
{
uint32 i;
for(; uiDly > 0; uiDly--)
{
for(i=0; i<50000; i++);
}
}
/*********************************************************************************************************
** Function name: WDTInit
** Descriptions: 看门狗初始化
** input parameters: uiTime 设置看门狗定时器参数
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void WDTInit(uint32 uiTime)
{
WDTC = uiTime; /* 设置看门狗定时器参数 */
WDMOD = 0x03; /* 设置看门狗模式:溢出后复位 */
WDFEED = 0xAA; /* 第一次喂狗启动WDT */
WDFEED = 0x55; /* 喂狗序列 */
}
/*********************************************************************************************************
** Function name: FeedDog
** Descriptions: 喂狗函数
** input parameters: 无
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void FeedDog(void)
{
IRQDisable (); /* 禁止中断 */
WDFEED = 0xAA; /* 喂狗序列 */
WDFEED = 0x55;
IRQEnable (); /* 喂狗序列 */
}
/*********************************************************************************************************
** Function name: main
** Descriptions: 演示看门狗溢出复位,按键KEY1被按下后使得看门狗溢出复位,LED闪烁一次
** input parameters: 无
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
int main (void)
{
uint32 i;
PINSEL0 = 0x00000000; /* 管脚连接GPIO */
IO0DIR = LED1; /* LED1控制口输出 */
IO0CLR = LED1; /* 关闭蜂鸣器 */
DelayNS(100);
IO0SET = LED1; /* 关闭蜂鸣器 */
WDTInit(0x200000); /* 看门狗初始化 */
while(1){
/*
* 用按键模拟导致无法周期性喂狗的意外情况
*/
while((IO0PIN & KEY1) == 0); /* 如果按键1按下,就停止喂狗 */
for(i = 0; i < 0xFF; i++); /* LED1闪烁周期 */
FeedDog(); /* 喂狗 */
}
return 0;
}
/*********************************************************************************************************
** End Of File
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -