1 介绍arm9时钟与定时器-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍arm9时钟与定时器

GReq_mcu168 2018-02-07 08:38 次阅读

前言
这篇主要介绍arm9时钟定时器方面,根据s3c2440手册第七章的内容来看,涉及到不少的知识点,power管理、时钟、usb时钟、camera等,接下来只介绍时钟方面,其余部分以后再说

简介
系统时钟是整个电路的心脏,了解系统时钟结构对于后面学习定时器,UART等使用具有非常重要的作用,总体来说,与s3c2440处理器有关的时钟主要有4种: FIN, FCLK, HCLK和PCLK 1.FIN:外部输入晶振频率 2.FCLK: 主要用于CPU核 3.HCLK:主要用于与AHB总线互连的设备(如存储控制器, LCD控制器, 中断控制器及DMA等)上 4.PCLK:主要用于与APB总线互连的低速设备(如定时器, UART, ADB等)上

图解时钟
s3c2440处理器系统时钟分为两个部分, 外部有时钟输入引脚,内部用2个锁相环将外部输入时钟倍频到处理器工作说需要的时钟, 外部时钟频率太高容易受到外部的干扰,因此一般外部时钟频率比较低, 如下图:

介绍arm9时钟与定时器

介绍arm9时钟与定时器

介绍arm9时钟与定时器

■CLKDIVN:用于控制FCLK, HCLK和PCLK之间的比例关系

介绍arm9时钟与定时器

介绍arm9时钟与定时器

// LOCKTIME = 0x00ffffff; // 使用默认值即可,在下面会讨论CLKDIVN = 0x03; // FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1/* 如果HDIVN非0,CPU的总线模式应该从“fast bus mode”变为“asynchronous bus mode” */__asm__("mrc p15, 0, r1, c1, c0, 0\n" /* 读出控制寄存器 */ "orr r1, r1, #0xc0000000\n" /* 设置为“asynchronous bus mode” */"mcr p15, 0, r1, c1, c0, 0\n" /* 写入控制寄存器 */); MPLLCON = ((0x5c<<12)|(0x04<<4)|(0x01))

上面代码注释中,关于LOCKTIME的赋值,这个又是怎么回事儿呢,还是根据手册

介绍arm9时钟与定时器

1

2

3

4

5

6

7

8

9

10

定时器 由上面可知,定时器是ABP总线设备,在PCLK的时钟频率下工作,s3c2440有5个16位定时器,定时器0,1,2,3有脉冲调制(PWM)功能, 因此这4个定时器也被称为PWM定时器,定时器4是一个内部定时器,无外部输出引脚,定时器的时钟源虽然是PCLK,但是还得通过内部的两个分频器分频后, 才能得到想要的工作频率,然后输出作为定时器的工作的时钟,定时器0,1公用一个分频器,其他3个定时器公用另一个分频器,如下图

介绍arm9时钟与定时器

定时器的工作原理描述,以定时器0为例: 1.首先,将TCMPB0,TCNTB0附初值 2.然后,设置定时控制器TCON,将TCON的第1位置1(手动更新位), 这样TCMPB0,TCNTB0赋值给TCMPB0,TCNTB0 3.启动定时器–>设置TCON第3位为1(当TCNT0的值减到0时,TCMPB0的值会自动加载到寄存器TCMP0和TCNT0中), 第0位为1(开启定时器) 4.此时,定时器会减1计数, 即TCNT0进行减1计数, 当TCMP0与TCNT0相等时, TOUT0翻转 之后介绍一下相关的寄存器在手册中的定义: ■TCON:对于定时器0来讲:

介绍arm9时钟与定时器

定时器的分频 前面提到了定时器0的使用方法,但是没有提到其最终的工作所需要频率(1s中能记多少个数)

介绍arm9时钟与定时器

介绍arm9时钟与定时器

介绍arm9时钟与定时器

void timer0_init(void) { TCFG0 = 99; // 预分频器0 = 99 TCFG1 = 0x02; // 选择8分频 TCNTB0 = 62500; // 1秒钟触发一次中断 TCMPB0 = 0; TCON |= (1<<1);   // 手动更新(将TCNTB0,TCMPB0更新入TCNT0, TCMP0)    TCON   = 0x09;      // 自动加载,清“手动更新”位,启动定时器0  }

PWM功能 对于定时器0来讲,上面的例子中TCNT0 1s内减到0,则TOUT0反转(电平变化), 但是定时器0还有个特性,就是如果TCNT0减到与比较值TCMP0相等,则TOUT0也发生反转,也就是说上面的例子将 TCMPB0 改成31250后,则TCNT0从62500减到31250(与TCMP0相等)TOUT0发生一次反转(用时0.5s),TCNT0减到0又发生反转(用时0.5s),这样,1s内发生两次反转,如此循环,输出引脚0.5s反转一次,即占空比50%(波形0.5秒为高电平,0.5秒为低电平这样循环的波形)

void timer0_init(void) { TCFG0 = 99; // 预分频器0 = 99 TCFG1 = 0x02; // 选择8分频 TCNTB0 = 62500; // 1秒钟触发一次中断 TCMPB0 = 31250; TCON |= (1<<1);   // 手动更新(将TCNTB0,TCMPB0更新入TCNT0, TCMP0)    TCON   = 0x09;      // 自动加载,清“手动更新”位,启动定时器0  }

注意,如果将上面代码TCMPB0=31250,改为别的值,比如TCNTB0 /4,则输出的波形一定发生变化(比如0.25秒为高电平,0.75s为低电平这样循环的波形),即占空比也发生变化,这就是所谓的PWM功能

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • arm9
    +关注

    关注

    2

    文章

    290

    浏览量

    55020
  • 时钟
    +关注

    关注

    10

    文章

    1733

    浏览量

    131445
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114713

原文标题:深入时钟与定时器

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32基本定时器介绍

    信号。基本定时器框图如下:二、时基单元介绍STM32的所有定时器都具备时基单元,时基单元的功能就是简单的计数,即计数时钟源TMxCLK的脉冲个数,这个
    发表于 08-18 06:15

    ARM9体系结构的相关资料分享

    7.Thumb指令集概况8.ARM指令集与Thumb指令集比较ARM9体系结构1.ARM命名ARM系列微处理扩展命名符号的含义2.
    发表于 12-20 07:47

    uc/OS-Ⅱ在ARM9上的移植介绍

    uc/OS-Ⅱ在ARM9上的移植介绍
    发表于 03-28 09:51 30次下载

    构造廉价的Arm9 开发平台

    构造廉价的Arm9 开发平台 基于Arm9内核的单片机,由于其低廉的价格与优越的性能,已经被广泛的应用于各种消费类电子产品中。掌握Arm9单片机的开发技能已经
    发表于 02-10 11:20 72次下载

    时钟555定时器电路

    时钟555定时器电路
    发表于 01-17 14:08 2674次阅读
    <b class='flag-5'>时钟</b>555<b class='flag-5'>定时器</b>电路

    ARM9ARM7的比较及优化

    理解ARM9ARM7 的差别,以及如何针对ARM9 进行系统优化,成为了一个令人关注的话题。本文通过对ARM9 处理的特点
    发表于 04-13 14:58 55次下载
    <b class='flag-5'>ARM9</b>与<b class='flag-5'>ARM</b>7的比较及优化

    arm9arm11有何区别?

    主要介绍arm9arm11是什么,有什么优势和特点。来了解一下arm9arm11有何区别?
    发表于 11-10 16:44 3798次阅读

    ARM9入门需要多久_学ARM9要看的书籍

    学习开发板关键是有一定基础,视频教程也是针对这样的人,初学者要是没有人指导,只看视频教程就会,很难的。本文首先介绍学习arm9需要掌握的知识,其次阐述了学ARM9要看的书籍,最后解答了学ARM
    的头像 发表于 05-16 15:10 1w次阅读

    ARM9入门学习心得分享

    本文首先介绍ARM9的优势及特点,其次阐述了ARM9要学的内容汇总以及书籍推荐,最后介绍ARM9入门学习心得。
    的头像 发表于 05-18 17:15 7290次阅读

    初学者是选ARM7还是ARM9?uCOS还是Linux?

    本文首先介绍ARM7、ARM9和uCOS及Linux这四者的概念,其次阐述了ARM7与ARM9的区别,最后
    发表于 05-25 11:16 7652次阅读

    Atmel最新的基于ARM9架构的微处理介绍

    在2011 ARM Techcon上,Atmel的应用经理介绍其最新的基于ARM9架构的微处理
    的头像 发表于 06-26 11:30 5872次阅读

    单片机MSP430入门理论⑧--定时器模块-定时器A③

    单片机MSP430入门理论⑧--定时器模块-定时器A③上期大概给大家汇总介绍了,定时器模块中定时器A的TACTL控制寄存
    发表于 11-19 18:51 8次下载
    单片机MSP430入门理论⑧--<b class='flag-5'>定时器</b>模块-<b class='flag-5'>定时器</b>A③

    STM32定时器-基本定时器

    目录定时器分类基本定时器功能框图讲解基本定时器功能时钟源计数时钟计数
    发表于 11-23 18:21 31次下载
    STM32<b class='flag-5'>定时器</b>-基本<b class='flag-5'>定时器</b>

    五、【中级篇】时钟树、定时器、中断

    RTC 24bit down count在ARM-CORTEX-M3核心中提供了定时器的资源:系统定时器(system timer | systick)无论是STM32提供的定时器
    发表于 01-14 15:44 6次下载
    五、【中级篇】<b class='flag-5'>时钟</b>树、<b class='flag-5'>定时器</b>、中断

    ARM9处理从哪些方面保证了FIQ异常响应的快速性?

    如何保证FIQ异常响应的快速性:管道设计、分支预测、寄存窗口、Cache设计、定时器设计等。 一、管道设计 ARM9处理采用6级流水线设计,每个阶段都能够并行处理多个指令。这样就在
    的头像 发表于 10-19 16:36 910次阅读