当前位置: 首页 > news >正文

关于dsp定时器同步需要注意的问题

文/蒹葭 zhang.zhilong#gmail.com
因为项目中某一个芯片时钟和使能信号对同步有非常严格要求。故而采用PWM定时器来解决。
项目参数:F2812,主频100M,外设频率50M。
1. 定时器计数是从0开始计数的。所以要计10个数,则周期寄存器应设为0x09,而不是0x0A
2. 定时器2控制寄存器的T2SWT1位置一。同时注意 ,在启动定时器之前,不能将两定时器控制寄存器使能位置 1 否则不能同步。
3. PWM电平变化,由定时器比较寄存器的数值决定,例如:比较寄存器设为0x05,则表示计数器数值到5(从0开始计数),电平跃变,而不是第五个。
4. 通过将定时器2的SELT1PR位置位与否,来决定定时器2使用定时器1的周期,还是使用自己的周期。
5. 设定计数初始值和周期,控制寄存器之后,使能定时器1.此时,定时器2也同步启动。
相关代码如下:
EvaRegs.T1PR = 0x0009; // Timer1 period
EvaRegs.T1CMPR = 0x0005; // Timer1 compare
EvaRegs.T1CNT = 0x0000; // Timer1 counter
// Initalize EVA Timer2
EvaRegs.T2PR = 0xCD1D; // Timer2 period
EvaRegs.T2CMPR = 0x000A; // Timer2 compare
EvaRegs.T2CNT = 0x0000; // Timer2 counter
EvaRegs.GPTCONA.bit.TCMPOE = 1;
EvaRegs.GPTCONA.bit.T1PIN = 1;
EvaRegs.GPTCONA.bit.T2PIN = 1;
EvaRegs.T2CON.all = 0x1082; //bit0使用自己的周期bit7--使用T1CON的使能位,同步
EvaRegs.T1CON.all = 0x1002;
EvaRegs.T1CON.bit.TENABLE=1; //T1 此时使能,则打到同步,如在前面步骤已使能,则不能同步

相关文章:

  • golang mysql引入包,对Golang import 导入包语法详解
  • 发现一个好玩的开源项目
  • 用MATLAB拟合实验报告,MATLAB插值与拟合实验报告材料
  • weblogic中创建域的方法
  • php显示用户登录的时间代码,PHP显示用户友好的时间
  • 互联网史上最伟大的12个网络应用和软件
  • python erp excel,Python——操作Excle
  • 做工作必须将心比心——感谢译者陈浩对我们的批评
  • php主题怎么增加导航页,WordPress主题中添加文章列表页页码导航的PHP代码实例,_PHP教程...
  • 在TCX中使用SQLite3
  • php linux 静态网页,(PHP学习笔记)实现页面静态化
  • 貌似生日的快乐
  • spring对jboss与weblogic的jms的支持不一样
  • php 银行家算法,银行家算法又被称为“资源分配拒绝”法,是一种()算法。A、死锁解除B、死锁避免C、死锁预防D、死锁检测...
  • 易语言字节集转php,易语言将下载地址解析转换成迅雷快车旋风的方法
  • 【React系列】如何构建React应用程序
  • Android系统模拟器绘制实现概述
  • conda常用的命令
  • JavaScript 基础知识 - 入门篇(一)
  • Java的Interrupt与线程中断
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 后端_MYSQL
  • 日剧·日综资源集合(建议收藏)
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 深度解析利用ES6进行Promise封装总结
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 通过npm或yarn自动生成vue组件
  • 微信小程序填坑清单
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 小程序 setData 学问多
  • 用Python写一份独特的元宵节祝福
  • 用Visual Studio开发以太坊智能合约
  • 如何用纯 CSS 创作一个货车 loader
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (13)Hive调优——动态分区导致的小文件问题
  • (C语言)共用体union的用法举例
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (四) Graphivz 颜色选择
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .apk文件,IIS不支持下载解决
  • .net 中viewstate的原理和使用
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET框架设计—常被忽视的C#设计技巧
  • .net连接oracle数据库
  • ::before和::after 常见的用法
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [20170713] 无法访问SQL Server
  • [acwing周赛复盘] 第 69 场周赛20220917