历史上的今天
今天是:2024年09月26日(星期四)
2021年09月26日 | ARM之PWM定时器
2021-09-26 来源:eefocus
PWM定时器概述
在Exynos 4412处理器中,共有5个32位的具有脉冲宽度调制(PWM)功能的定时器,这些定时器都可产生内部中断信号给ARM子系统。另外,定时器0、1、2、3具有脉冲宽度调制功能,并可驱动其对应的I/o口。其中,定时器O有可选的死区(dead-zone)产生功能,用以支持大电流设备;定时器4是内置的,没有外部引脚。
PWM定时器的特点:
脉宽调制定时器的特点:
提供静态配置方式,在PWM没有启动时使用;
提供动态配置方式,在PWM运行期间使用;
支持自动重载模式和触发脉冲模式;
两个PWM输出具有死区发生器;
工作原理

简单描述一下上面的图,他的四个定时器都是从时钟总线上获取时钟,之后通过两次分频,进入逻辑控制,他其实就是一个磊减器,其中他还有两个寄存器,分别改管着信号的翻转和周期的大小,之后通过信号放大器或者不用信号放大器,也可也通过带有死区(在引线上同时响应的时候,可以减小误差)
寄存器的配置


//设置与分频值 100MHZ -> 100M/(99+1) = 1MHZ
TCFG0 &= ~0XFF;
TCFG0 |= 99;
//设置分割值为1倍分割
TCFG1 &= ~0XF;

//设置累减器的计数值
TCNTB0 = periodus;
//设置占空比比较值
TCMPB0 = dutyus;

//手动将计数值装入累减器
TCON &= ~0XF;
TCON |= 1<<1;
//关闭手动重载
TCON &= ~(1<<1);
//设置反向输出开关
TCON &= ~(1<<2);
//TCON |= (1<<2);
//打开自动重载开关
TCON |= 1<<3;
//启动定时器
TCON |= 1<<0;
之后根据母版的电路图我们找到定时器0的引脚接在GPD0引脚上,所以我们将他设为定时器功能
//设置GPD0CON 设置引脚功能为定时器输出
GPD0CON &= ~0XF;
GPD0CON |= 0X2;
上一篇:ARM之模数转换——ADC
下一篇:ARM之看门狗定时器——WDT
史海拾趣
|
sysClkRateGet 和tickGet 这两个函数的运行经常会出一些莫名其妙的错误. 为什么程序中用到这2个函数的时候经常会出现一些莫名其妙的错误。看下面的代码。我在debug模式下单步执行的时候。 当我执行完A函数的时候,我的B函数和C函数都直接返回了。就是说我B函数和C函数下的其他代码都没有执行就直接跳出C函数了。 [code] ...… 查看全部问答> |
|
大家好啊!很不好意思!我要在神圣的技术区发帖一个没有技术含量的帖子! 每一个人学习单片机的经历都是一个美妙的故事! 或许你还记得为了使自己的单片机能够下载程序你满世界的找各种驱动时 ...… 查看全部问答> |
|
求助!!!急!!!我将1.5V电池作为输入信号输入430单片机内部AD模块,为什么串口发送出来的数据不是恒定值?是我的程序有问题吗?还是别的什么原因?… 查看全部问答> |
|
编译完成后出现这个东西 C28xx: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configu ...… 查看全部问答> |
|
配置完以后,启动开发环境的时候提醒:unable to load :C:\\……\\xds560××.dvr (××是我记不清具体的是什么了) 然后我打开驱动文件夹drivers,在那里面能发现这个dvr文件呀,为什么提示不 ...… 查看全部问答> |




