找回密码
 立即注册
查看: 375|回复: 1

STC8051U的ADC是12位的我测的怎么是16位的,是不是程序有问题?

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2025-05-02 07:07:52

7

主题

22

回帖

1067

积分

金牌会员

积分
1067
发表于 2024-7-7 11:01:25 | 显示全部楼层 |阅读模式
硬件是STC12LE5A48S2的,现在用STC8051U-34K64替换,ADC采集不对,数值感觉是16位的。
//================================
void    ADC_config(void)
{
    ADC_CONTR = 0xc0 | C_H;   //ADC on + channel
    ADCCFG = 0x0f;
    ADCTIM = 0x3f;
    EADC = 1;         //允许ADC中断
         
}
//========================================================================
// 函数: void ADC_ISR (void) interrupt ADC_VECTOR
// 描述: ADC中断函数
// 参数: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2018-4-1
// 备注:
//========================================================================
void ADC_ISR (void) interrupt ADC_VECTOR
{
    ADC_FLAG=0;       //清除中断标志
    adc = (ADC_RES<<8)|ADC_RESL; //读取ADC值
    if(C_H==3)
                {
        ADC4=adc;
        ADC_RES = 0;
        ADC_RESL = 0;        
                          C_H=4;
                        
                }
          else  if(C_H==4)
    {
       adc_sum = adc;
       B_ADC_OK = 1;
       ADC_RES = 0;
       ADC_RESL = 0;                                       
       C_H=3;                        
        
    }
                 ADC_CONTR = 0xc0 | C_H;
}
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2025-05-02 07:07:52

7

主题

22

回帖

1067

积分

金牌会员

积分
1067
发表于 2024-7-7 12:14:30 | 显示全部楼层
wnag*** 发表于 2024-7-7 11:25
你的ADC配置的是左对齐,最后4或6位恒定为0

谢谢!改成2F对了。
回复 支持 1 反对 0

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 15:16 , Processed in 0.113678 second(s), 52 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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