[AVR单片机] 请老师们帮我看看这个程序行吗?有多少问题,

[复制链接]
2488|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

粉丝
快速回复 在线客服 返回列表 返回顶部