您的位置 首页 发布

ARM7学习—LPC2103 Time0定时器操练

继续学习ARM7,练习了下LPC2103的内部定时器T0,定时1S,让LED闪烁。具体测试程序如下:/**************ARM7(LPC2103)练习程序************…

持续学习ARM7,操练了下LPC2103的内部守时器T0,守时1S,让LED闪耀。详细测验程序如下:

/**************ARM7(LPC2103)操练程序**************************/
/*************************************************************/
/*****File Function : Time0测验程序 *****/
/*****Program Author : ZhengWen(ClimberWin) *****/
/*****MCU : LPC2103F 外部11.0592M晶振 *****/
/*****Compile Date : 2010/02/13 *****/
/*****Edition Info : V1.0 *****/
/*************************************************************/
//编译环境 KEIL for ARM
//LED1-LED7 接在P0.8-P0.15
//功用:运用内部守时器0,让LED闪耀。

#include
#define uchar unsigned char
#define uint unsigned int

void Timer0_Init(void);
void __irq IRQ_Timer0 (void);

/*************守时器0中止程序****************/
void __irq IRQ_Timer0 (void)
{
static uchar ledtemp=0x00;
ledtemp=~ledtemp;
if(ledtemp==0x00) IO0SET=(1<<8);
if(ledtemp==0xff) IO0CLR=(1<<8);
T0IR = 0x01;// 铲除中止标志
VICVectAddr = 0x00;// 告诉VIC中止处理完毕
}
/***********守时器0初始化程序**************/
void Timer0_Init(void)
{

T0PR = 99; // 设置守时器0分频为100分频,得110592Hz
T0MCR = 0x03; // 匹配通道0匹配中止并复位T0TC
T0MR0 = 110592;// 比较值(1S守时一次)
T0TCR = 0x01; //守时器计数器和预分频计数器使能

VICIntSelect = 0x00;// 一切中止通道设置为IRQ中止
VICVectCntl0 = 0x20|4 ;// 向量IRQ slot 使能 | 中止号
VICVectAddr0 = (unsigned long)IRQ_Timer0;// 设置中止服务程序地址
V%&&&&&%IntEnable = (1 << 0x04);// 使能守时器0中止
}

int main(void)
{

IO0DIR=0x0000ff00; //装备P0.8-P0.15为输出
IO0SET=0x0000ff00; //装备P0.8-P0.15初始值为高
Timer0_Init(); //初始化守时器0
while(1); //等候进入中止程序

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/276219.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部