4. avr 定时器/计数器1 --TC1 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
来源:互联网 发布:数据库基准测试 编辑:程序博客网 时间:2024/05/16 11:45
例如:定时200ms ,晶振8MHZ,分频系数1024,计数时钟频率为8MHZ/1024=8000000HZ/1024=7812.5HZ,每个计数脉冲的周期时间为1/7812.5=0.128ms,计时200ms的计数器值为:65635-200ms/0.128ms=63972=0xF9E4 ,则TCNT1H付初值为0xF9,TCNT1L付初值为0xE4.
//函数功能:实现PA口的led亮0.1S,灭0.9S
#include <iom16.h>
#define uchar unsigned char
/********以下是端口初始化函数********/
void port_init()
{
DDRA = 0xFF; //PA设置为输出口
PORTA = 0xFF; //PA输出高电平
}
/********定时器1初始化********/
void timer1_init()
{
TCNT1H = 0xCF;//计数器置初值
TCNT1L = 0x2C;
TCCR1A |= 0x00; //普通端口模式
TCCR1B |= (1<<CS11)|(1<<CS10); //64分频
TIMSK&=(1<<TOIE1); //使能T1溢出中断
}
/********以下是主函数********/
void main(void)
{
uchar count,T1_OVR;
port_init();
timer1_init();
while(1)
}
/*定时器1中断函数*/
#pragma interrupt_handler timer1_ovf:9
void timer1_ovf(void)
{
TCNT1H=0xCF;
TCNT1L=0x2C;
COUNT++
if (count==9)
PORTA=0x00;
if (count>=10
{
count=0;
PROTA=0xFF;
}
- 4. avr 定时器/计数器1 --TC1 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- 1. avr定时器/计数器0 --TC0 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- 5. avr定时器/计数器1 --TC1 --快速PWM输出 (比较输出--快速PWM模式)
- 3. avr定时器/计数器0 --TC0 --相位修正PWM模式 (比较输出--相位修正PWM 模式)
- 2. avr定时器/计数器0 --TC0 --快速PWM输出 (比较输出--快速PWM模式)
- 6. avr定时器/计数器1 --TC1 --输入捕捉模式 (捕获外部事件模式)
- atmega8 例程:T1定时器 CTC模式 方波输出
- atmega8 例程:T1定时器 CTC模式 10ms定时器 1s连续定时
- TIM通用定时器(一)计数器模式
- TMOD:定时器/计数器模式控制寄存器
- [定时器]输出比较模式
- STM32输出比较模式和PWM模式
- CTC
- CTC
- CTC
- STM32定时器输出比较模式
- 使用定时器T1的模式2 定时器T0的模式2 并且引入外部事件计数器
- 定时器的输出比较模式产生的PWM波的频率计算
- 研发管理之高手过招
- avr--TWI(I2C)
- 1. avr定时器/计数器0 --TC0 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- 2. avr定时器/计数器0 --TC0 --快速PWM输出 (比较输出--快速PWM模式)
- 3. avr定时器/计数器0 --TC0 --相位修正PWM模式 (比较输出--相位修正PWM 模式)
- 4. avr 定时器/计数器1 --TC1 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- [C++ 学习] C++ Primer 第4版 习题 4.31
- 5. avr定时器/计数器1 --TC1 --快速PWM输出 (比较输出--快速PWM模式)
- 6. avr定时器/计数器1 --TC1 --输入捕捉模式 (捕获外部事件模式)
- 软件架构设计的好处
- IAR for AVR 学习笔记
- memcmp() 函数
- 字符串拷贝与内存拷贝的区别 c语言--memcpy()
- 二分图