📄 pwm1.c
字号:
/*
T/C1使用PWM控制方式,进行DA转换。
直接对OCR1A、OCR1B写入电压数据,两路输出,精度12位
*/
#include <iom8v.h>
#include <macros.h>
#define Vref 4995
//参考电压值
//T1初始化程序
void pwm1_init(void)
{
TCCR1B = 0;
//PWM停止工作
DDRB=0b00000110;
//OC1A作为PWMA输出引脚,OC1B作为PWMB输出引脚
ICR1=0x0FFF;
//PWM模式14,ICR1作为top值,12位精度
TCNT1=0;
OCR1A=0x0000;
OCR1B=0x0000;
/*
启动两路PWM输出,工作模式14(WGM XX),以系统时钟工作(CS XX)
两路均为计数至TOP时,输出引脚清零(COM1 X1:COM1 X0),换言之,正占空比与
OCR1X成正比
*/
TCCR1A =(1<<WGM11)|(1<<COM1A1)|(1<<COM1B1);
TCCR1B =(1<<WGM13)|(1<<WGM12)|(1<<CS10);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -