ARM7 Timer与DMA的register
来源:互联网 发布:云智能网络 编辑:程序博客网 时间:2024/06/05 05:05
A) 概况
1. 如上图ETR(clock)、ITR1~4都是时钟输入。
2. 下面是16位分频器和16位计数器,分频器驱动计数器,就是例如16bit分频器设置256,那么来了256个clock之后会产生驱动信号送给16bit计数器。
3. Auto Reload REG是自动加载寄存器,按照图示是16bit计数器的Auto REG,但是视频解释是对Prescaler、Counter、比较寄存器的值都可以自动加载,这个还要在后面再听一下????
4. CH1~4是16bit高精度比较通道,可以用于输入比较或者产生某种类型的波????
5. timer还有同步功能,个人理解就是ETR外接其他clock就是使用外部clock,外部设备使用clock的trigger/output就是外部设备使用本设备的clock。触发/门控,这个写道一起了,个人理解是就边沿触发与电平触发两种。
6. 编码接口没说????
6个IRQ/DMA请求生成器。这里是请求生成器,那肯定是向外发IRQ/DMA请求的,至于选择哪个生成器,如何设置生成器,如何选择引脚输出请求,这个还要再看????B) 6个独立IRQ/DMA请求生成器:
1. 更新事件:是定时产生IRQ/DMA请求;上溢或者下溢产生;
2. 捕捉比较事件
a) 参考http://wenku.baidu.com/view/e654387a5acfa1c7aa00cc25.html利用补货输入实现uart:
i. 基本原理:
1. 捕获输入pin脚可以捕获上、下沿、电平
2. uart时序:
a) 每个数据帧一般由1位起始位、8位数据位、1位奇偶校位、1位停止位组成
b) 基本捕获方法:
ii. 接收软件步骤:
1. 基本初始化:时钟、pin脚、模式选择
2. 接收初始化:设置pin脚、选择timer、设置捕获下降沿、中断允许
3. Timer初始化
4. 接收中断函数:读取pin脚输入、重置CCRx寄存器
iii. 误差分析
1. timer设置的误差:如果使用钟频1MHZ,比特率9600bps,则timer计数要到104.166,取104作为一个比特,再等0.166的时间就好
2. 中断程序一定不要长时间延时,否则会错过下一次中断。对于9600bps的频率在1MHZ,MCU的频率一般都是4KMHZ以上,所以4K个指令周期之内的都可以接受。
3. 输入触发????
C) 时基单元:
1. 基本用途:对齐方式、触发方式等
2. 更新事件与影子寄存器的设置
3. 计数器时钟的选择:
i. 直接使用内部时钟
ii. 外部时钟ETR
iii. 外部输入捕捉引脚
D) 捕捉比较通道:
1. 输入比较:看一个应用PWM就懂基本原理:第一次激励来的时候标志位置1,第二次来溢出,然后乘以clock就是波长。
2. 输出比较:激励发生的次数超过register的值之后,比较控制器输出一个【置位、复位、翻转、不变】
3. 特例:单脉冲
E) 编码器接口:
1. 基本原理:利用不同触发条件使得计数器向上或者向下计数。
2. 具体还是要看霍尔的例子????
F) 时钟同步
- ARM7 Timer与DMA的register
- arm7与arm9的区别
- ARM7与ARM9的区别
- SG DMA与普通DMA(block DMA)的区别
- ARM9与ARM7的比较及优化
- ARM7与ARM9内核的区别
- ARM7与ARM9的区别(转)
- ARM7与ARM9的区别于联系
- ARM7/9 的中断与 RTOS 系统
- ARM9与ARM7的比较及优化
- ARM7启动代码的分析与设计
- ARM7 与 Cortex-M3的性能比较
- Cortex-M3与ARM7的比较
- ARM7/9 的中断与 RTOS 系统
- ARM7与Cortex-M3的区别
- EFM32外设--DMA之Timer+DMA+DAC
- DMA的配置与安装
- ZedBoard--(5)嵌入式Linux下的DMA测试(Direct Register Mode)(PS + PL)
- libxml2对XML文件的创建、解析、查找、修改
- Linux设备模型(三)platform
- [性能调整] ORACLE分区表、分区索引详解(转)
- Leetcode: Subsets
- Lightoj 1170 卡特兰数+扩展欧几里得算法
- ARM7 Timer与DMA的register
- mac 10.9 虚拟机分辨率问题
- 网络分析,图挖掘常用数据集:dblp dataset,kdd dataset....
- 什么是I帧,P帧,B帧
- 8 Android gallery
- Shell 函数
- sprintf详解
- PHP_Filter过滤多个输入
- addr和offset指令的区别