7.30-8.1 全数会2025(第六届)机器人及智能工厂展
火热报名中>>
AVR定时器的工作类型模式介绍
输出比较单元
16位比较器持续比较TCNT1与OCR1x的内容,一旦发现它们相等,比较器立即产生一个匹配信号。
然后OCF1x 在下一个定时器时钟置位。
如果此时OCIE1x = 1, OCF1x 置位将引发输出比较中断。
(就是说输出比较可以工作在所有工作模式下,但PWM模式下更好用,功能更强)
输出比较单元A(OCR1A) 的一个特质是定义T/C 的TOP 值( 即计数器的分辨率)。
TOP 值还用来定义通过波形发生器产生的波形的周期。
由于在任意模式下写TCNT1 都将在下一个定时器时钟周期里阻止比较匹配,在使用输出比较时改变TCNT1就会有风险,不管T/C是否在运行
这个特性可以用来将OCR1x初始化为与TCNT1 相同的数值而不触发中断。
强制输出比较(FOC)
工作于非PWM 模式时,可以通过对强制输出比较位FOC1x 写”1” 的方式来产生比较匹配。
强制比较匹配不会置位 OCF1x 标志,也不会重载/ 清零定时器,
但是OC1x 引脚将被更新,好象真的发生了比较匹配一样(COMx1:0 决定OC1x 是置位、清零,还是交替变化)。
比较匹配输出单元
比较匹配模式控制位COM1x1:0 具有双重功能。
1 波形发生器利用COM1x1:0 来确定下一次比较匹配发生时的输出比较OC1x 状态;
2 COM1x1:0 还控制OC1x 引脚输出的来源。
只要COM1x1:0 不全为零,波形发生器的输出比较功能就会重载OC1x 的通用I/O 口功能。
但是OC1x 引脚的方向仍旧受控于数据方向寄存器 (DDR)。
从OC1x 引脚输出有效信号之前必须通过数据方向寄存器的DDR_OC1x 将此引脚设置为输出。
波形发生器利用COM1x1:0 的方法在普通模式、CTC 模式和PWM 模式下有所区别。
对于所有的模式,设置COM1x1:0=0 表明比较匹配发生时波形发生器不会操作OC1x寄存器
访问16位寄存器
写16 位寄存器时,应先写入该寄存器的高位字节。
usigned int k;
k=0x1234;
TCNT1H=(unsigned char)(k>>8);
TCNT1L=(unsigned char) k;
而读16 位寄存器时应先读取该寄存器的低位字节。
usigned int k;
k=TCNT1L;
k+=(unsigned int)(TCNT1H<<8);
使用“C” 语言时,编译器会自动处理16位操作。
usigned int k;
k=0x1234;
TCNT=k;
k=TCNT1;

图片新闻
技术文库
最新活动更多
-
3月27日立即报名>> 【工程师系列】汽车电子技术在线大会
-
4月1日立即下载>> 【村田汽车】汽车E/E架构革新中,新智能座舱挑战的解决方案
-
即日-4.22立即报名>> 【在线会议】汽车腐蚀及防护的多物理场仿真
-
4月23日立即报名>> 【在线会议】研华嵌入式核心优势,以Edge AI驱动机器视觉升级
-
4月25日立即报名>> 【线下论坛】新唐科技2025新品发布会
-
4月30日立即参与 >> 【白皮书】研华机器视觉项目召集令
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论