📄 main.c
字号:
/************************************************************
文 件:main.c
用 途:由TC1产生两路独立的16位PWM输出,通过滤波变成电压
Target : M16
Crystal: 8.0000Mhz
说 明:PD4输出PWMB,PD5输出PWMA
产生的PWM波形通过滤波后转换成电压
因LM358和滤波电路本身的原因,最大电压约能到VCC的3/4
这种PWM模拟DA的方式,精度有限
创 建:2008.1.29
修 改:2008.1.29
Copy Right (c) www.avrvi.com AVR与虚拟仪器
************************************************************/
#include <iom16v.h>
#include <macros.h>
//主函数
void main(void)
{
PORTD = 0x00;
DDRD = (1<<PD4)|(1<<PD5); //PWM引脚PD4,PD5设置为输出
TCCR1A = 0xA2; //两路PWM,匹配清零
TCCR1B = 0x19; //快速PWM模式,位数可调,预分频1
ICR1 = 2048; //计数上限值,此数为16位PWM
OCR1A=512; //匹配初值
OCR1B=1484;
//输出电压计算 占空比*VCC
//这里为 OCR1n / ICR1 * VCC
//实测DA2 为1.42V,DA1 为3.73。 3.73 V为LM358在输入为5V的最大输出电压
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -