S3C2440定时器一流水灯.docVIP

  • 60
  • 0
  • 约1.1千字
  • 约 2页
  • 2021-02-27 发布于山东
  • 举报
定时器功能很多,我们现在先做个简单的实验,即 0.5s 定时,使四个 led 循环点亮。 代码如下,注释已经写得很清楚了: #define GLOBAL_CLK 1 #include stdlib.h #include string.h #include def.h #include option.h #include 2440lib.h #include 2440addr.h #include 2440slib.h #include mmu.h #include profile.h #include memtest.h #define GPB5_out (1(5*2))//led1 #define GPB6_out (1(6*2))//led2 #define GPB7_out (1(7*2))//led3 #define GPB8_out (1(8*2))//led4 #define led1_on ~(15) #define led2_on ~(16) #define led3_on ~(17) 1 / 2 #define led4_on ~(18) #define led1_off (15) #define led2_off (16) #define led3_off (17) #define led4_off (18) void __irq Timer0_handle(); void Main(void){// 配置基本 I/O 口 rGPBCON=GPB5_out|GPB6_out|GPB7_out|GPB8_out; //设置 GPB5-8为输出 rGPBDAT=led1_off|led2_off|led3_off|led4_off; //led 灭 配置中断寄存器 ClearPending(BIT_TIMER0);//清 SRCPND,INTPND的定时器 0 中断标志位 EnableIrq(BIT_TIMER0);//开定时器 0 中断使能 配置定时器寄存器 rTCFG0|=0xf9;// 预定标值 =249 rTCFG1|=0x01;//定时器 0 进行 4 分频, f=50M/(249+1)/4=50KHZ rTCNTB0=25000;//定时时间 =25000*(1/f)= 0.5s rTCON|=(11); //手动更新 rTCON=0x09;//自动加载,清 “手动更新 ”位,启动定时器 0 // 装入定时器 0 中断函数地址 2 / 2

文档评论(0)

1亿VIP精品文档

相关文档