s3c2410pwm定时器中断实验

s3c2410pwm定时器中断实验

ID:20516237

大小:26.00 KB

页数:3页

时间:2018-10-13

s3c2410pwm定时器中断实验_第1页
s3c2410pwm定时器中断实验_第2页
s3c2410pwm定时器中断实验_第3页
资源描述:

《s3c2410pwm定时器中断实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验6S3C2410PWM定时器中断实验一、实验目的掌握S3C2410PWM定时器的工作原理和定时时间的计算方法,掌握和PWM定时器有关寄存器的使用方法,会用C语言对PWM定时器进行初始化编程,理解PWM定时器中断的触发过程,熟练掌握和中断相关寄存器的使用以及中断服务函数的编程方法。二、实验内容UP-NETARM2410实验箱上两个LED数码管的控制地址为0x08000110和0x08000112。借助于PWM定时计数器可实现简单的计数秒表。由于只有两位数码管,秒表计到99秒后,从0开始重新计数。同时三个发光二极管每隔一秒闪烁点亮。三、PWM定时器相

2、关知识S3C2410A具有5个16位的定时器,其中定时器0~3具有PWM波发生功能,即可以输出PWM波,定时器4没有外部输出。定时器工作频率为PCLK/(预分频值+1)/分频值,在下面的工程中,将使用定时器1,并设置其工作频率为20 kHz,即为:48MHz/(149+1)/16=20 kHz所以定时时间为:0x4E20*20 kHz=1S定时器1的初始化方法如下:  首先,设置TCFG0(定时器配置寄存器0,地址为0x51000000)的值为0x95,即定时器1的预分频值为0x95,十进制数为149。注意:定时器0和1共用同一个预分频值。  然后,

3、设置TCFG1(定时器配置寄存器1,地址为0x51000004)的值为0x30,即定时器1的分频值为16。  其次,设置TCNTB1(定时器1计数寄存器,地址为0x51000018)和TCMPB1(定时器1比较寄存器,地址为0x5100001C)的值为0x4E20和0x4000。这里没有用到TCMPB1,当TCNTB1减计数到0后,将触发定时器1中断再次,设置TCON(定时器控制寄存器,地址为0x51000008)的值为0xA00,即刷新TCNB1和TCMPB1的值。最后,设置TCON的值为0x900,启动定时器1。四、参考程序(1)PWM定时初始化

4、程序段34voidinitTimer1(void)  35{36TCFG0=0x95;   //prescale=119  37TCFG1=0x30;   //divider=1/16  38TCNTB1=0x4E20-1;//counternumber=0x4E1F  39TCMPB1=0x4000;  40TCON=0xA00;//updateTCNTB1andTCMPB1  41TCON=0x900;//StartTimer1  42}(2)开PWM定时中断程序段voidopenTimer1(void)46{  47INTMOD=0x0;  /

5、/setasIRQ  48INTMSK&=~(0x800);//openTimer1  49 PRIORITY=0x7F;  50}(3)PWM定时器中断服务程序段54__irqvoidc_Timer1_ISR()  55{  5657intiReg=0;  58if(SRCPND

6、0x800)//mustchangefrom0x200to0x800  59SRCPND=0x800;  60if(INTPND

7、0x800)//mustchangefrom0x200to0x800  61INTPND=0x800;  62//INTMSK

8、=0xFFFF

9、FFFF;//closeall,includeTimer1  63nLED=0;  64switch(number)  65{  66case0:67nLED^=(LED2_MASK

10、LED3_MASK);//LED1light  68break;  69case1:  70nLED^=(LED1_MASK

11、LED3_MASK);       //LED2light  71break;  72case2:  73nLED^=(LED1_MASK

12、LED2_MASK);       //LED3light  74break;  75}  76numbe

13、r++;77if(number>2)  78number=0;  79GPCDAT_ADDR=nLED;//Ledshineinturn  80    81//Seg7LEDcountseachsecond  82if(nCnt>=100)  83nCnt=0;  84Seg7A=seg7val[nCnt/10];  85Seg7B=seg7val[nCnt%10];  86nCnt++;五、实验结果和思考题请自己作答。怎么样改变定时时间??六、实验心得体会

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。