智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1148|回复: 1
打印 上一主题 下一主题

AVR ADC问题

[复制链接]

1

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
49
威望
27
贡献
14
兑换币
13
注册时间
2015-1-13
在线时间
4 小时
毕业学校
诚毅
跳转到指定楼层
1#
发表于 2015-1-16 20:34:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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占空比。。。。可是不知道为什么没法实现,有没有大神指教下。。。
回复

使用道具 举报

1

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
49
威望
27
贡献
14
兑换币
13
注册时间
2015-1-13
在线时间
4 小时
毕业学校
诚毅
2#
 楼主| 发表于 2015-1-16 20:39:55 | 只看该作者
。。。上面注释有错。。是内置电压作参考电压的。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 12:17 , Processed in 0.040187 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表