技术专栏
新唐N76E003AT20 多通道ADC采集方法
不得不说N76E003的功能在8051内核单片机中功能已经是非常强大了,并且官方开提供了BSP 开发库,这些都是可以直接在官网中直接找到的。对于N76E003的ADC,因为作者没有用过很早之前的版本,作者使用的时候官方已经提供了VBG反推VDD的例程,但是这种做法还是有一些缺陷,因为内部的乘除法运算对于一个8位的单片机来说还是有一定的困难的。但是在实际项目中应该都是需要使用到多个通道轮流采集的情况,所以,在此贴出本人写的在多个通道轮流采集的方法。
if(ADC_BAND_GAP_VOLTAGE_MSK==gAdcActivingChannel)
{//通道0的宏定义,gAdcActivingChannel是定义的一个全局变量用来进行通道转换,定义的时候赋初值
//为ADC_BAND_GAP_VOLTAGE_MSK
//ADC_BAND_GAP_VOLTAGE_MSK:我定义的是8
Enable_ADC_BandGap;
};
if(ADC_WORK_MODE_LOADING_VOLTAGE_MSK ==gAdcActivingChannel)
{//宏定义的内容满足宏定义的要求即可,这个宏定义的是5
Enable_ADC_AIN5;
};
if(ADC_B_LOADIND_MSK ==gAdcActivingChannel)
{//这个宏定义的是1
Enable_ADC_AIN0;
};
clr_ADCF;
set_ADCS;
if(ADCF==1||ADCS==0)
{
switch(gAdcActivingChannel)
{
case ADC_BAND_GAP_VOLTAGE_MSK:
gVbgAdcResult = (ADCRH<<4) + ADCRL;//获取ADC的采样值
clr_ADCEN;
gAdcActivingChannel=ADC_WORK_MODE_LOADING_VOLTAGE_MSK;//跳转到下一个通道
break;
case ADC_WORK_MODE_LOADING_VOLTAGE_MSK:
gAdcLoadingVoltResult1=(ADCRH<<4)+ADCRL;
clr_ADCEN;
gAdcActivingChannel=ADC_B_LOADIND_MSK;
break;
case ADC_B_LOADIND_MSK:
gAdcBLoadingVolt=(ADCRH<<4)+ADCRL;//读取该通道转换的值
clr_ADCEN;
default:
gAdcActivingChannel=ADC_BAND_GAP_VOLTAGE_MSK;
}
}
官网的例程除去用中断的方式都是使用while()轮询等待,这样势必造成阻塞,上面的方法通过去判断ADC转换是否完成进行轮询,如果完成就进入读取该通道的值,如果没有完成则不读取。
本人水平有限,如果有不足之处还望各位高手支出,或者你有更好的想法也可以交流讨论。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
1
1
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:4132次2020-08-13 11:45:15
-
浏览量:2602次2020-08-13 11:47:44
-
浏览量:238次2024-09-11 16:46:19
-
浏览量:169次2024-08-23 14:37:40
-
2020-06-08 11:00:12
-
浏览量:2750次2020-11-09 10:50:37
-
浏览量:4692次2021-08-10 14:55:01
-
浏览量:3262次2020-08-13 11:43:30
-
浏览量:808次2023-06-12 14:17:54
-
浏览量:2371次2020-05-22 19:25:12
-
浏览量:2676次2017-12-02 22:05:15
-
浏览量:1669次2019-11-22 08:49:13
-
浏览量:4042次2017-12-14 16:59:48
-
浏览量:4938次2021-08-06 10:08:01
-
浏览量:4220次2020-08-13 11:41:54
-
浏览量:3392次2019-11-06 09:02:55
-
浏览量:5550次2021-01-08 16:18:43
-
浏览量:3076次2020-07-10 13:39:01
-
浏览量:10580次2020-11-20 13:36:38
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
在学了在学了!
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注