历史上的今天
返回首页

历史上的今天

今天是:2024年11月11日(星期一)

正在发生

2019年11月11日 | 2440裸机编程之五 定时器

2019-11-11 来源:51hei

S3C2440A 具有5 个16 位定时器,每个定时器可以按照中断模式或DMA 模式工作。定时器0,1,2,3 具有PWM 功能。定时器4 是一个内部定时器,不具有对外输出口线。定时器0 还具有死区发生器,通常用于大电流设备。


定时器特性总结如下。
● 5 个16 位定时器可以工作在中断模式或DMA 模式。
● 包括2 个8 位预分频器、2 个4 位分割器。
● 输出波形的占空比可用编程控制(即进行脉宽调制)。
● 具有自动重载模式或单次触发模式。
● 具有死区发生器。



与定时器相关的寄存器有:TCFG0、TCFG1、TCON、TCMPBn、TCNTBn、TCNTOn

定时器的频率由PCLK分频而来,即Ftimer = PCLK / (prescaler+1) / MUX
prescaler位于TCFG0,MUX位于TCFG1

TCON控制定时器的运行:是否自动装载定时器初值,是否手动装载,开始/停止 定时器。

TCNTBn放定时器n的初值,装载用
TCMPBn放定时器n的匹配值,用于调至PWM
TCNTOn,只读,用于观察定时器n的初值


编程方法如下:
定时器初始化()
{
设置预分频器prescaler (TCFG0)
设置MUX    (TCFG1)
赋初值TCNTB    TCNTB    =   (PCLK / (prescaler+1) / MUX) * 中断时间间隔(单位秒)

TCON: 手动跟新打开   
手动跟新关闭
自动装载(计时器循环计数) 
启动定时器  
}


中断初始化()
{

清除SRCPNF、INTPND中的相应中断标志位(可以调用ClearPending函数)
填入中断例程地址于中断向量表 pISR_EINTx
使能相应中断 rINTMSK
}


中断例程()  __irq
{
……中断程序……
清除SRCPNF、INTPND中的相应中断标志位
}


下面是定时器0试验程序:
//************************************************************************************************
void Main(void)
{     
    int i;
    ……硬件初始化……

int_time0_init();
time0_init();

while(1);
}

void int_time0_init(void)
{
Uart_Printf("Timer0中断实验n");
ClearPending(1<<10);     //清楚中断标志
pISR_TIMER0=(unsigned)timer0_ISR;  //填入中断例程地址于中断向量表
rINTMSK&=~(1<<10);       //TIME1开中断
}

void  time0_init(void)
{
rTCFG0 = rTCFG0 &(~0xFF) | 175;   //设置预分频器prescaler0 = 175
rTCFG1 = rTCFG1 &(~0xF) | 2;   //设置MUX0 = 1/8 
rTCNTB0 = PCLK/(175+1)/8;      //一秒,注意右值别溢出16位
rTCON |= 1<<1;       //开启手动更新,将TCNTB0的值载入定时器0
rTCON &= ~(1<<1);      //关闭手动更新(必须)
rTCON |= 1<<0 | 1<<3;     //开启定时器,自动装载模式

//关于中断时间的设定:    TCNTB =(PCLK / (prescaler+1) / MUX) *  中断时间间隔(单位秒)
}

void timer0_ISR(void)  __irq
{
n++;
Uart_Printf("Timer0 已经中断 %d 次n",n);
ClearPending(1<<10);     //清楚中断标志
}

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

运行结果如下:


推荐阅读

史海拾趣

EVER-WAY公司的发展小趣事

随着公司规模的扩大和产品质量的提升,EVER-WAY公司开始积极拓展国内外市场。公司制定了详细的市场拓展计划,通过参加国际展会、开展国际贸易合作等方式,逐步打开了国际市场的大门。同时,公司还加强了与国内客户的合作,通过提供定制化服务、优化供应链管理等方式,赢得了客户的信任和支持。这些市场拓展的跨越不仅为公司带来了更多的商业机会,也进一步提升了公司的品牌价值和市场地位。

Eby Electro Inc公司的发展小趣事

随着公司规模的扩大和产品质量的提升,Eby Electro Inc开始寻求拓展国际市场。公司积极参加国际电子产品展览,与国际知名企业建立合作关系,将产品销往全球各地。在国际市场的竞争中,Eby Electro Inc凭借卓越的产品质量和良好的售后服务,赢得了客户的信赖和好评。同时,公司也积极学习国际先进的管理经验和技术,不断提升自身的竞争力。

德尔创(Dersonic)公司的发展小趣事

面对不断变化的市场环境和客户需求,德尔创始终坚持可持续发展的理念。公司注重环境保护和资源节约,积极推行绿色生产和循环经济。同时,德尔创还加强了内部管理和团队建设,通过优化流程和提高效率来降低成本和提升效益。对于未来,德尔创已经制定了明确的发展规划和目标,将继续加大在技术研发、市场拓展和品牌建设等方面的投入力度,努力成为全球电子元器件行业的领军企业之一。

ETA Electric Industry Co Ltd公司的发展小趣事

在市场不断拓展的同时,ETA Electric Industry Co Ltd非常注重产品质量管理。他们引入了国际先进的质量管理体系,并严格执行每一项质量控制标准。公司还设立了专门的质量检测部门,对每一批出厂的产品进行严格把关。这种对质量的极致追求,赢得了客户的广泛认可和信赖。

Blaze Display Technology Co Ltd公司的发展小趣事

随着公司规模的不断扩大和市场份额的逐步提升,Blaze公司开始注重品牌建设和形象提升。通过加大广告宣传力度、提升客户服务质量、参与社会公益活动等方式,公司成功塑造了专业、可靠、创新的品牌形象。同时,公司还获得了多项行业荣誉和认证,进一步提升了品牌知名度和美誉度。

Eagle-Picher公司的发展小趣事

Eagle-Picher公司的历史可以追溯到1843年,最初是由Edgar和他的兄弟Stephen J. Conkling在俄亥俄州辛辛那提成立的,专注于生产商业涂料颜料。随着时间的推移,公司经历了多次转型和变革。1847年,Stephen离开公司后,Edgar引入了新的合伙人威廉·伍德,并更名为康克林木业公司。随后,公司在不同的业务领域内扩展,直到1922年,Eagle-Picher正式进入电池市场,开始了其电子行业的历程。

问答坊 | AI 解惑

车身电子半导体市场规模突破16亿元

目前汽车车身电子系统大量采用电子技术,其目标是提高驾驶 舒适程度并为驾驶员提供车况信息。车身电子系统主要有电子控制安 全气囊、防撞警告系统、防盗系统、电子仪表、空调系统、电动车窗、 中控锁、座椅位置调节、车门控制装置等等。这些应用系 ...…

查看全部问答>

请大家共同参与,讨论~

如何使用单片机的1个io口实现两个灯的3种状态 同亮 1亮 1灭 …

查看全部问答>

对面的高手看过来,ST公司的数据结构啥意思

typedef union {   u16 whole;   struct   {     unsigned IMPLEMENTED : 1; /**< Indicates that the key is implemented (from Customer Code to TSL only) */     unsigned ENABLED&nb ...…

查看全部问答>

三菱模块资料整理

三菱模块资料整理。都是些常用的功率模块的介绍、应用指南及其参数。对做功率驱动的有参考价值。…

查看全部问答>

复旦大学讲义-半导体器件原理PPT

一学期的课程 主要分为三个部分,半导体器件的工作原理 器件特性(MOSFET,BJT,VMOS,IGBT...GaAs) 半导体器件模型化 [ 本帖最后由 linda_xia 于 2010-4-18 08:31 编辑 ]…

查看全部问答>

一种利用MBE 模型改进的低速率

一种利用MBE 模型改进的低速率…

查看全部问答>

关于PCB软件中的错误检测问题

在看一些书上的教程,或者是一些网上的文档的时候。都会介绍关于错误检查的问题。大家平常设计的时候修改这里修改的多吗?…

查看全部问答>

MSP430F2011发射38khz占空比为50%的方波红外线发射信号程序

用MSP430F2011发射38khz占空比为50%的方波红外线发射信号程序,谢谢邮箱com021@163.com,高手大侠们多多指教…

查看全部问答>

如何让管脚为输入状态且默认为高电平

我的按键扫描程序,无法检测到,原因是管脚电平一直为低。…

查看全部问答>

DIY建议+ADUCM361入门学习板

采用ADI最新的ARM CORTEX M3核的MCU 然后配上ADI的各种外设器件实现个入门的学习板…

查看全部问答>