这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » LPC2103定时器0定时实验-查询方式

共1条 1/1 1 跳转至

LPC2103定时器0定时实验-查询方式

专家
2009-03-14 15:53:13     打赏
 

 

      今天做lpc2103的定时器定时实验,相关的c语言程序如下:

    /***********定时器0定时--查询方式**********************************/
//功能:用定时器0实现0.5秒定时,查询标志位等待定时时间到达,对LED进行控制,让LED每秒钟亮一次
//编写:胡峰
//说明:参照ZLG电子教案
/***********************************************************************************/
#include"inc\config.h"

#define LED 1<<17                       //p0.17控制 LED,低电平亮

/***********************************************************************************

**函数名称:Init_timer0()

**函数功能:使用定时器T0实现0.5s钟定时,控制LED闪烁

***********************************************************************************/
void Init_timer0(void)
{
  T0TC = 0;                            //定时计数器设置为0
  T0PR = 0;                            //时钟不分频
  T0MCR = 0x03;                        //设置T0MR0匹配后产生中断并且复位T0TC
  T0MR0 = Fpclk/2;                      //0.5秒定时
  T0TCR = 0x01;                        //启动定时器
}
/***********************************************************************************

**函数名称:main()

**函数功能:使用定时器T0实现0.5s钟定时,控制LED闪烁

***********************************************************************************/

void main(void)
{
  PINSEL0 = 0x00000000;                //设置管脚连接GPIO
  IO0DIR = LED;                        //设置LED控制口输出
 
  Init_timer0();                       //定时器0初始化
  while(1)
  {
    while((T0IR & 0x01)==0);           //等待定时时间到
    T0IR = 0x01;                       //清楚中断标志
    if((IO0SET & LED)==0) IO0SET = LED;//LED灭
    else IO0CLR = LED;                 //LED亮
  }
//return 0;
}

运行效果请看这里:

   http://player.youku.com/player.php/sid/XNzc2MDQ0NjA=/v.swf

      结果我发现一个问题,按照程序中的定时时间应该是0.5秒LED就会转换一次状态,可是实际运行出来的结果并不是这样,其亮和灭的时间似乎已经大于了1s,我的程序是直接烧写到flash中的,不知道这是什么原因造成的?有人遇到过这样的情况吗?请和我交流。




关键词: LPC2103     定时器     定时     实验     查询     方式    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]