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
/************************************************/
void CTC_Init(void)
{
DDRD_Bit4 = 1; // OC1B 管脚设置为输出
DDRD_Bit5 = 1; // OC1A 管脚设置为输出
TCCR1A=(1<
// TCCR1A ==> COM1A1 , COM1A0 , COM1B1 , COM1B0 , FOC1A , FOC1B , WGM11 , WGM10
// 1 1 1 1 无关 无关 0 0
TCCR1B=(0<
// TCCR1B ==> ICNC1 , ICES1 , - , WGM13 , WGM12 , CS12 , CS11 , CS10
// 无关 无关 0 1 0 0 1
OCR1A=2764; // 设定 2KHz 方波 ,晶振频率 11.0592MHz
}
/********************************************************************************/
void main(void)
{
CTC_Init();
}
关键字:AVR 定时器 CTC模式
引用地址:
AVR定时器CTC模式的测试
推荐阅读最新更新时间:2024-03-16 15:13
avr单片机汇编参考程序
该AVR的汇编程序选自《M128》,程序中体现了AVR汇编的基本特点,仅供大家参考。 该应用系统为一个带1/100秒的简易24小时制时钟,它在上电后能够自动从11时59分55秒00开始计时和显示时间。下图为简易时钟系统硬件电路图。 图 简易24小时时钟硬件原理图 系统使用8个LED数码管显示时、分、秒、1/100秒4个时段的数字,每个时段占用2个LED。显示方式采用动态扫描方式,ATmega128的PA口输出显示数字的7段码(注意:图中省缺了PA口连接到LED各段的8个限流电阻,阻值800欧左右),PC口用于控制8个LED的位选。ATmega128使用外部16MHz晶振(图中未画出)。 系统还使用AT
[单片机]
AVR绝对定位面面观
AVR Mega系列单片机是广大电子爱好者所熟悉和喜爱的。在后51时代,它以易开发 使用以C和BASIC为代表的高级语言;易使用 内部集成了大量常用的外设模块;高性能 同等时钟下是传统C51执行效率的12倍;低功耗 用水果电池就可以驱动等特点占据了相当的市场份额,得到了广泛的应用。 什么是AVR的绝对定位呢? 简单说就是在C语言环境下将工程中某个函数或者数据放在AVR存储器中自己 心仪 的位置。对代码来说,定位的最小单位是函数;对数据来说,定位的最小对象是全局变量、静态局部变量和全局常量。举例来说,在下面的代码片断里,全局常量g_strBuffer和全局变量g_hwDataBuffer以及函数Example中的静态局部变量s_bFl
[单片机]
AVR第7课:动态数码管
动态数码管。 /* *author:ChenLu *date:2014.11.20 */ //input the head file so that the program can work normally //iom16v---know the register //macros---know the BIT(x) #include iom16v.h #include macros.h //use those can make your study very conveninet #define uint unsigned int #define uchar unsigned char //display m
[单片机]
8052定时器2的可编程时钟输出模式的实例
52单片机里面有一个T2定时器,它比普通的16为定时器功能要强大多了,今天研究了T2定时器的一个应用 可编程时钟输出功能。配置成500KHZ的时钟信号输出后,用示波器测量了时钟输出脚P1^0,发现还真准。 为了把定时器配置成时钟发生器,位C/T2(T2CON.1)必须清0,也就是选择定时模式,位T2OE(T2MOD.1)必须置1,使能定时器2输出。位TR2(T2CON.2)启动、停止定时器。时钟输出频率取决于晶振频率和定时器2捕捉寄存器(RCAP2H,RCAP2L)的重载值,如公式所示: 定时器2的可编程输出模式原理框图如下 图1 定时器2的可编程输出模式 上个测试用的程序 // 文件
[单片机]
STM32F407学习记录2:SysTick嘀嗒定时器学习
Systick嘀嗒定时器是一个24位的递减计数器。该定时器的时钟源可以是内部时钟,也可以是外部时钟。 M4的Systick有四个寄存器,分别是 1. Systick control and status register(STK_CTRL) 控制和状态寄存器; 2. Systick reload value register(STK_LOAD) 重装数值寄存器; 3. Systick current value register(STK_VAL) 当前计数值寄存器; 4. Systick calibration value register(STK_CALIB) 校准数值寄存器。 STM32F4中Systick相关函数主要在mis
[单片机]
使用AVR单片机驱动舵机
1.舵机驱动的基本原理 (可以参考http://blog.sina.com.cn/s/blog_8240cbef01018hu1.html) 控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。 简单的来讲,就是输出一个周期为20Ms,不同的占空比对应舵机转过不同的角度。 难点主要在于 舵机控制信号需要保持,这样就比用脉冲控制步进电机要复杂一些。 你需要
[单片机]
51波特率发生器定时器初值计算方法
在模式0和模式2下,串口波特率固定,模式0为Fosc/12。模式2为Fosc/32或Fosc/64,具体由PCON寄存器的SMOD位决定。 在模式1和模式3下,波特率是一个可变值,波特率可以由定时器1产生(8052可以由定时2产生),那么波特率到底为多少呢?波特率由定时器1的溢出率来决定: Baud Rate = (2SMOD/32)*(Timer 1 Overflow Rate) 注意:2SMOD这里的SMOD是指数,SMOD为波特率双倍波特率位,该位在PCON寄存器中。 当使用timer 1作为波特率产生器时,通常需要将timer 1配置成8位自动重装的工作模式下,同时还要禁止timer 1中断,那么timer 1的溢出率是怎
[单片机]
TMS320F28xx DSP中内部Flash的应用研究
1 前言 TMS320F28xx DSP片内有128 K×16 bit字的Flash、两块4 K x16bit字的单周期访问RAM(SARAM)LO和L1、一块8 Kxl6 bit字的单周期访问RAM(SARAM)HO、两块1 Kxl6 bit字的单周期访问RAM(SARAM)M0和M1。由于存储器种类多、容量大,所以从系统的高度来配置各个存储器必须有合适的方法,而这些方法一般都与片内Flash有关。另外,TMS320F28xx DSP片内有看门狗定时器模块(WDT)、引导ROM(ROM bootloader)模块、代码安全模块(CSM),要合理地使用这些模块为整个系统服务,必定也要用到Flash。 由此可以看出,Flash的地
[应用]