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)   时钟同步

0 0
原创粉丝点击