[其它应用] 为什么进不了adc中断?

[复制链接]
1582|4
 楼主| pangb 发表于 2023-7-31 22:30 | 显示全部楼层 |阅读模式
#include <SH79F083.H>
#include <INTRINS.H>
#include <define.h>

bit flag=0;

//unsigned char code eeprom[2048] _at_ 0x3000;
void init(void)//初始化寄存器
{
   

EA=0;

EA=1;
}
void initadc(void)
{
ADT = Bin(11100000); //T(ad) = 32*(1/16M) = 2us
//ADCH = Bin(00000001); //AN0,AN1,AN2
//ADCON = Bin(10000000); //ADC enable,ref为vdd
//ADCON |=  Bin(00000001); //start converse from AN0~
ADCH = Bin(00000010); //AN0,AN1,AN2
ADCON = Bin(10010000); //ADC enable,ref为p1.0
ADCON |=  Bin(00000010); //start converse from AN1~
IEN0    |=Bin(01000000);//enable adc interuppt
}

void delay(int n)
{
int i=0,m=0,x=0;
for(m=0;m<n;m++)
{
for(i=0;i<100;i++)
{
x=0;
}
}
}

void main()
{
//// unsigned char i,m;
unsigned int adc;
init();
initadc();

while(1)
{

if(flag==1)
{
adc=ADDH;

delay(10);
adc=ADDL;
delay(10);
flag=0;
ADCON|=0X1;
}

}  
   
}
laocuo1142 发表于 2023-11-23 10:38 | 显示全部楼层
ADC和DMA的初始化是否正确
flycamelaaa 发表于 2023-11-23 10:38 | 显示全部楼层
中断优先级是否正确配置
powerantone 发表于 2023-11-23 10:39 | 显示全部楼层
是否开启了DMA中断,如果没有开启,则无法进入DMA中断处理函数。
绒兔星球 发表于 2025-8-30 14:54 | 显示全部楼层
进不了 ADC 中断可能因配置错误:中断使能位未置 1、中断优先级设置不当;ADC 初始化有误,如转换完成标志未正确配置;中断服务程序未正确编写或向量地址错误;也可能是 ADC 未启动转换,或硬件访问冲突导致中断被屏蔽,需逐步排查配置与程序逻辑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

7643

帖子

6

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