智能车制作
标题:
AVR ADC问题
[打印本页]
作者:
Code叁拾肆
时间:
2015-1-16 20:34
标题:
AVR ADC问题
#include<avr/io.h>
#include<avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int
void PWM(void)//PWM输出初始化
{
DDRD|=0X30;
TCCR1A=0X63;
TCCR1B=0X13;
OCR1A=1249;
OCR1B=1249;
}
void ADC_cj()//adc采集函数,控制data值可改变PWM值(已测试有效)
{
float data;
while(!(ADCSRA & 0x10))//判断转换是否完成
ADCSRA=0xe0;
data=(ADCL+ADCH*256)/1024;
OCR1B=1249*data;
}
void ADC_int()//ADC初始化设置
{
DDRA=0x00;
PORTA=0x00;
ADMUX=0xc0;//AREF参考电压 右对齐 ADC0通道 0000 0000
ADCSRA=0xe0;//ADC使能,ADC开始工作,允许自动转换触发,不使用中断,2分频 1110 0000
SFIOR=0x00;//自动模式 0000 0000
}
void main(void)
{
PWM();
ADC_int();
while(1)
{
ADC_cj();
}
}
目的是通过ADC采集ADC0的电压,来控制PWM占空比。。。。可是不知道为什么没法实现,有没有大神指教下。。。
作者:
Code叁拾肆
时间:
2015-1-16 20:39
。。。上面注释有错。。是内置电压作参考电压的。。。
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2