- /****************************************************************************
- * 文 件 名:main.c
- * 功 能:使用定时器0实现1秒定时,控制蜂鸣器蜂鸣。(查询方式)
- * 说 明:JP22跳线短接,JP20跳线断开。
- ****************************************************************************/
- #include "config.h"
- #define BEEPCON 1<<7 // P0.7引脚控制B1,低电平蜂鸣
- /****************************************************************************
- * 名 称:Time0Init()
- * 功 能:初始化定时器0,定时时间为 1S
- * 入口参数:无
- * 出口参数:无
- ****************************************************************************/
- void Time0Init()
- { /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
- Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
- */
- T0PR = 99; // 设置定时器0分频为100分频,得110592Hz
- T0MCR = 0x03; // 匹配通道0匹配中断并复位T0TC
- T0MR0 = 110592*0.5-1; // 比较值( 1s定时值)
- T0EMR = 3<<6; //set mat0.1 flipping
- T0TCR = 0x03; // 启动并复位T0TC
- T0TCR = 0x01;
- }
- /****************************************************************************
- * 名 称:main()
- * 功 能:初始化I/O及定时器,然后不断的查询定时器中断标志。当定时时间到达时,取反BEEPCON
- * 控制口。
- ****************************************************************************/
- int main(void)
- {
- PINSEL0 = 0x00000000; // 设置管脚连接GPIO
- PINSEL1 = (PINSEL1 && (~(3<<22)))|(3<<22); //set p0.27 --> mat0.1
- Time0Init(); // 初始化定时器0
- while(1);
- return(0);
- }
- //该片段来自于http://www.codesnippet.cn/detail/100620149744.html
来源: http://www.codesnippet.cn/detail/100620149744.html