s3c6410 定时器中断的实现

发布者:EnchantedDreams最新更新时间:2016-08-13 来源: eefocus关键字:s3c6410  定时器中断 手机看文章 扫描二维码
随时随地手机看文章
6410手册中的相关内容

five 32-bit timers
Timers 0 and 1 include a PWM function


Each timer has its own 32-bit down-counter which is driven by the timer clock. The down-counter is initially loaded
from the Timer Count Buffer register (TCNTBn). When the down-counter reaches zero, the timer interrupt request
is generated to inform the CPU that the timer operation is completed. When the timer down-counter reaches zero,
the value of corresponding TCNTBn can be automatically reloaded into the down-counter to start the next cycle.
However, if the timer stops, for example, by clearing the timer enable bit of TCONn during the timer running mode,
the value of TCNTBn will not be reloaded into the counter.

1 定时器0相关寄存器
 
 1)TCON  timer control register (与timer0相关的【3:0】,开关,手动更新初值,自动重装初值(
 当TCNT0减到0后,从TCNTB0自动装到TCNT0)等)

s3c6410 定时器中断的实现 - 北极星 - 北极星

 
 2)TCNTB0 存着timer0的初值;
    TCMPB0  存着timer0要比较的值(默认为0,则tcnt0和tcmp0比较,)
 3)TINT_CSTAT Interrupt Control And Status Register) 定时器中断控制和timer0相关的就两位,【0】位Timer 0 Interrupt Enable.
  【5】位Timer 0 Interrupt Status Bit. Clears by writing '1'on this bit.(该位在ISR中需要写1清零)
 4)TCFG0  Timer Configuration Register 0 that configures thetwo 8-bit Prescaler and DeadZone Length
  设置各个timer的分频因子低八位是timer0 和timer1相关的
 5)VIC0INTENABLE  中断使能控制 (32位对应32个中断源(注意是VIC0组的,timer0 在23位)

2timer0相关寄存器设置 

Because an auto-reload operation of the timer occurs when the down counter reaches to 0, a starting value of the
TCNTn has to be defined by the user at first. In this case, the starting value has to be loaded by the manual
update bit. Take the following steps to start a Timer;
1) Write the initial value into TCNTBn and TCMPBn.
2) Set the manual update bit of the corresponding timer.
(Recommended setting the inverter on/off bit (whether using inverter or not)).
3) Set the start bit of the corresponding timer to start the timer and clear only manual update bit.

main.c中的timer0 init函数
void timer_init(void)
{
 TINT_CSTAT |= 1<<0;   //开timer0中断,允许timer0中断发生
 VIC0INTENABLE |= 1<<23;  //开timer0的使能(相当于关掉mask)
 TCFG0 = 0x42;   //设置分频因子
 
 TCNTB0 = 0x1000;   //设初值
 TCON |= 1<<1;      //开Manual Update (Update TCNTB0,TCMPB0)设置初值后要更新TCNTB
 TCON |= 1<<3;      、、//Auto Reload on  自动重装开启
 TCON |= 1<<0;        //timer0 open;
 
 TCON &= ~(1<<1);   、//不再Update TCNTB0,TCMPB0

 
}
start.s 中的handler
irq_handler
 ;push rets to stack
 stmfd sp!,{r0-r12,lr}
 
 ;handler
 bl do_timer_irq  //跳到相关执行函数
 ;pop stack to regs
 ldmfd sp!, {r0-r12,lr}
 subs pc, lr,#4

接下来的和外部中断相似了
当timer0中断发生时,程序到IRQ异常向量表的入口0x18,在这使程序跳转到IRQ_handler();在中断服务函数(ISR)中需要将TCON的5位在开始位置写1清0;为下一个中断 

关键字:s3c6410  定时器中断 引用地址:s3c6410 定时器中断的实现

上一篇:s3c6410 DMA 实现(入门级)
下一篇:s3c6410 的外部中断实现

推荐阅读最新更新时间:2024-03-16 15:04

基于S3C6410的航空用RFID读卡器设计方案
  0 引 言   随着国民经济的发展,航空日益成为民众所依赖的出行方式。航空货运物流系统中食品与商品种类多,安全要求高,交接手续繁杂,急需引入信息化管理,RFID技术的出现对于改善民航的物流管理有着积极的意义。航空物流RFID系统主要由电子铅封、读卡器和数据库管理系统等组成,现有的读卡器一般采用单片机系统(如STC89C54或MC9S12X128)或者STM32系列,它们的普遍缺点是:主频偏低,不支持操作系统且用户体验不佳,满足不了航空货运物流系统日益增长的应用需求。在航空食品和免税商品物流系统中,地勤与空乘人员急需操作简洁,反应快速,可随时通过无线网络上传数据的手持读卡器,从而加快物流速度,提高机场工作人员的工作效率。基于上
[单片机]
基于<font color='red'>S3C6410</font>的航空用RFID读卡器设计方案
S3C6410裸机AC97驱动
目前能够初始化AC97,能够进入就绪中断,说明能够检测到WM9714,但是无法读取WM9714,不知道哪里出错了,目前正在解决中... AC97.c /************************************************************************************************************* * 文件名: AC97.c * 功能: S3C6410 AC97底层驱动函数 * 作者: cp1300@139.com * 创建时间: 2012年10月6日20:41 * 最后修改时间:2012年10月6日 * 详细:
[单片机]
<font color='red'>S3C6410</font>裸机AC97驱动
一种基于S3C6410和STM32的智能家居系统设计
  随着科学技术的发展和人们生活水平的提高,人们对家居的安全、舒适、便利等方面要求也逐步提高,现代家居向着高度智能化、人性化的智能家居方向发展。智能家居又称智能住宅,它是融合了自动化控制系统、计算机网络系统和网络通讯技术于一体的网络化智能化的家居控制系统。智能家居作为一个新生产业,市场消费潜力巨大。本文以三星公司S3C6410处理器为核心,利用S3C6410主控板、STM32、wifi模块、GSM模块及多种移动终端设计一个智能家居系统,使分立的设备通过无线和有线介质构成一个整体,实现了家居环境监视、防盗自动报警、灯具自动控制、燃气泄漏远程报警等功能,使家居更安全、更舒适、更方便。   1 系统整体方案   智能家居系统总体结构如图
[单片机]
一种基于<font color='red'>S3C6410</font>和STM32的智能家居系统设计
运用定时器中断写的交通灯
这是一个运用51单片机写的交通灯的例子,可以显示时间,红黄蓝等,第一个按键是左右路通行20S,第二个按键是上下路通行20S,第一个按键是所有路都是红灯20S。这是从时钟该来的程序,与上一个始终的程序大体相同。 #include reg52.h #define uint unsigned int int code table ={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90, }; sbit hongA=P0^0; sbit huangA=P0^1; sbit lvA=P0^2; sbit hongB=P0^3; sbit huangB=P0^4; sbit
[单片机]
运用<font color='red'>定时器</font><font color='red'>中断</font>写的交通灯
stm32cubemx生成的代码总是进入滴答定时器中断
最近stm32cubemx生成的代码总是进入滴答定时器中断,调了好长时间才发现,原来有好几个地方都在设置滴答定时器,最后我把 uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { // return SysTick_Config(TicksNumb); } 里面的给屏蔽了,就好使了,但是不知道会不会有副作用,这个还要在后期确认下。 但是如果加入freertos的话,上述方法是不行的,因为在任务调度的时候,还是会打开的。那么为什么要打开呢,因为,freertos不仅要用tim1,还要用systick,是为了双重保障。所以如果加入freertos的话,就不要再将其关闭了。
[单片机]
简述MSP430定时器
MSP430的定时器中有比较捕获的概念,刚刚接触非常生疏。看了半天终于清楚: 比较模式: 这是定时器的默认模式,当在比较模式下的时候,与捕获模式相关的硬件停止工作,如果这个时候开启定时器中断,然后设置定时器终值(将终值写入TACCRx),开启定时器,当TAR的值增到TACCRx的时候,中断标志位CCIFGx置一,同时产生中断。若中断允许未开启则只将中断标志位CCIFGx置一。 例子:比较模式就像51单片机一样,要能够软件设置定时间隔来产生中断处理一些事情,如键盘扫描,也可以结合信号输出产生时序脉冲发生器,PWM信号发生器。如:不断装载TACCRx,启动定时器,TAR和TACCRx比较产生中断处理。 捕获模式:
[单片机]
基于S3C6410的ARM11学习(九) 点亮led
之前已经对S3C6410的核心初始化完成了,但是这个也只是完成了,但是程序到底对不对了,还需要验证。最简单的验证方法是什么了,就是点亮led。如果在核心初始化完成后,我们写程序去点亮了led,就说明初始化代码是没有问题。 下面就要来点亮led了。这个时候就和开发板的原理图有关系了。我用的是OK6410的开发板,打开对应原理图。 找到4个灯,是共阳接法的。所以要点亮对应的灯,就要使led的负端为低电平。在看看各个led负端端口对应的S3C6410的哪个IO。 从核心板的原理图可以看出,4个LED是接在GPM0-3这四个管脚上的。 有了这个信息,我们只要去控制这四个管脚输出不同的电平,就能实现led的亮灭
[单片机]
基于<font color='red'>S3C6410</font>的ARM11学习(九) 点亮led
51单片机第二讲(定时器中断)
1.中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断产生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A中断的地方继续处理事件A(中断返回),这一过程称为中断。 2.中断的优先级 51单片机里一共有5个中断源,分别是外部中断0,定时器0,外部中断1,定时器1,串口中断,中断优先级从大到小分别是0,1,2,3,4。 3.中断的优点 分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率; 实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强; 可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,
[单片机]
51单片机第二讲(<font color='red'>定时器</font><font color='red'>中断</font>)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved