打印
[AVR单片机]

请老师们帮我看看这个程序行吗?有多少问题,

[复制链接]
1811|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jnlmy|  楼主 | 2011-10-18 14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "mega64.h"
#include "Delay.h"
#define lemp3 PORTC.7
int  addata;
interrupt [ADC_INT] void ad_handler(void)   
{   
     int ADC;
     //lemp3=1;
     addata=ADCH*256+ADCL;
     
        if (addata>100)
          lemp3=1;
        if(addata<100)
          lemp3=0;
  
  ADCSRA|=0X40;   
  }     
void main(void)
{

PORTF=0x00;
DDRF=0x00;            //ADC转换通道,后三位为输出。

ADMUX=0X20;                 //模拟量寄存器控制
ADCSRA=0X86;
ADCSRA|=0X40;
SREG=0X80;
while (1)
      {
      
         ;
      }
}

相关帖子

沙发
huang1shan| | 2011-10-18 17:18 | 只看该作者
表示没问题:lol

使用特权

评论回复
板凳
huhandong| | 2011-10-24 10:56 | 只看该作者
为成为“老师”来的,本老师给你的指示是:你没说明问题、现象,无法判断

使用特权

评论回复
地板
mxh0506| | 2011-10-24 17:14 | 只看该作者
红色标记的地方不对吧?
interrupt [ADC_INT] void ad_handler(void)   
{   
     int ADC;
     //lemp3=1;
     addata=ADCH*256+ADCL;
看程序上下文猜测:这里是在读ADC输出寄存器,怎么读到局部变量里面去了?写成这样试试:
    unsigned int addata;
    addata = ADC;  // 目前的编译器应该有16位的定义,整体读回来就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

5

帖子

1

粉丝