找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4049|回复: 0
收起左侧

AVR定时器CTC模式的测试

[复制链接]
ID:70976 发表于 2014-12-28 01:58 | 显示全部楼层 |阅读模式
CTC模式是输出标准方波,可以是设定从OC1B(PD4),OC1A(PD5) 。


输入频率算法公式;
      例:在 11.0592MHz 下 输出 2KHz 的方波
           1,             11059200 / 2 /2000 =   2764.8                   // 2kHz方波
            2,             2764.8 - 1 = 2763.8                                     //1分频,就是无预分频
           3,              OCR1A = 2764                                             // 即赋值十进制数 2764 (取近似整值)
代码:
#include <iom16.h>
/************************************************/

void CTC_Init(void)
{
DDRD_Bit4 = 1; // OC1B 管脚设置为输出
DDRD_Bit5 = 1; // OC1A 管脚设置为输出

TCCR1A=(1<<COM1A1)|(1<<COM1A0)|(1<<COM1B1)|(1<<COM1B0)|(0<<WGM11)|(0<<WGM10); //比较时 OC1B/OC1A 电平取反
                 // TCCR1A ==> COM1A1 , COM1A0 , COM1B1 , COM1B0 , FOC1A , FOC1B , WGM11 , WGM10
                 //               1        1        1        1       无关    无关     0       0
TCCR1B=(0<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);              //波形产生模式4 , 无预分频
                 // TCCR1B ==> ICNC1 , ICES1 , - , WGM13 , WGM12 , CS12 , CS11 , CS10
                 //             无关    无关          0       1      0      0      1
OCR1A=2764;    // 设定 2KHz 方波 ,晶振频率 11.0592MHz
}
/********************************************************************************/
void main(void)
{
CTC_Init();
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表