找回密码
 立即注册
查看: 2358|回复: 4

ADC不进入中断(STC8G2K64S4)

[复制链接]

该用户从未签到

1

主题

1

回帖

9

积分

新手上路

积分
9
发表于 2023-1-7 20:41:35 | 显示全部楼层 |阅读模式
#include "ADC.h"
int ADC_DATA;

/*----- ADC初始化函数 ----*/
void ADC_Init()
{
    P1M0 = 0x00;              //ADC IO口模式配置(高阻)
    P1M1 = 0x04;
    P_SW2 |= 0x80;         //打开XFR特殊外部设备寄存器
    ADCTIM = 0x3f;         //设置ADC内部时序
    P_SW2 &= 0x7f;        //关闭XFR特殊外部设备寄存器
    ADCCFG = 0x2f;            //设置ADC时钟为系统时钟/2/16,以及数据对齐方式(右对齐)
    ADC_CONTR = 0x82;         //使能ADC模块  设置ADC输入IO----P1.2
    EADC = 1;                 //使能ADC中断
    ADC_CONTR |= 0x40;        //启动AD转换
}

/*----- ADC数据处理及返回值函数 ----*/
int ADC_read()
{
  unsigned char i = 0;
         int ADC_Res;
        ADC_Init();
        ADC_Res = 0;                   //全局变量函数返回值保留不清零加上次值,故此循环前清零。
        for(i=0; i<8;i++)
        {
                ADC_Res += ADC_DATA;                //循环读取8次数据进行累加,
        }
        ADC_Res >>= 3;            //右移三位 2^3=8,等价与÷8
        return ADC_Res;             //返回数值
}

/*----- ADC中断 ----*/
void ADC_Isr() interrupt 5
{
    ADC_CONTR &= ~0x20;                        //清中断标志
    ADC_DATA = (ADC_RES << 8) | ADC_RESL;             //读取ADC结果,针对于右对齐
    ADC_CONTR |= 0x40;                         //继续AD转换
}


直接在return ADC_Res; 上一步对(ADC_Res = 0xf0)这里写一个固定的参数可以正常显示,但是如果在中断中给ADC_DATA直接赋值(ADC_DATA =  0XF0)没有一点用
请问一下是哪里有问题呢?
回复 送花

使用道具 举报

该用户从未签到

1

主题

1

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2023-1-7 21:02:20 | 显示全部楼层
好像找到问题了(我在主函数将返回数据处理后,直接关闭了EADC中断),我将ADC中断开启和关闭放置在int ADC_read()函数中就可以了,不知道为什么。

该用户从未签到

559

主题

9752

回帖

1万

积分

管理员

积分
14269
发表于 2023-1-7 22:43:21 | 显示全部楼层
还是用 一箭双雕之USB转双串口,或 STC-USB Link1D 来仿真效率高
1.png
使用STC-USB Link1D的CDC串口仿真8位单片机-深圳国芯人工智能有限公司 (stcai.com)

该用户从未签到

3

主题

19

回帖

135

积分

注册会员

积分
135
发表于 2023-4-24 21:40:07 | 显示全部楼层
楼主,这个中断程序STC32也能使用吗

点评

你好好看 STC32的数据手册,用哪个看哪个,官方的第一手资料才是权威指南  发表于 2023-4-24 22:33
回复 支持 反对 送花

使用道具 举报

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-6-3 21:02 , Processed in 0.058896 second(s), 44 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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