用中断的方法去采AD值,怎么就只进入一次中断呢?(启动后第一次采的值是正确的,这后在怎么调电位器它显示的值就是不变,除非从新启动),我是按手册写的啊,为什么就采一次呢?请大神看看,谢谢!!
这是代码
#include<htc.h>
#include"display.h"
uint AD_value,a1,a2,a3,a4;
uint temp;
void main()
{
TRISD=0X00;
TRISA=0XFF;
TRISE=0X01; //RE0输入
ADCON1=0b10001001; //0X89设置模拟端口.选择参考电压为VDD,VSS,AN0-AN5为模拟通道
ADCON0=0b01101001; //0X69设置AN5为模拟输入端
ADIF=0;
ADIE=1; //开AD允许中断
INTCON=0XC0;
delay(5);
GO_nDONE=1;
while(1)
{
temp=AD_value;
a1=temp/1000;
a2=temp%1000/100;
a3=temp%100/10;
a4=temp%10;
display(a4,a3,a2,a1);
}
}
void interrupt ADpress()
{
float AD_temp;
AD_value=ADRESH;
AD_value=(AD_value<<8)|ADRESL;
AD_temp=AD_value/1023.0*5.0;
AD_value=AD_temp*1000;
ADIF=0; //软件清除AD标志位
} |