N76E003之ADC 多通道采样

首先让我们来看看N76E003单片机的ADC工作方式,从下图中可以看到ADCHS寄存器决定当前使用哪一个通道的ADC。
在这里插入图片描述
接下来我们再来看看具体的寄存器含义
在这里插入图片描述

接下来就是N76e003库中包含的相关宏定义,可以看到每次使能一个ADC通道时,会先关闭所有通道,再去打开指定对象的通道,之后将对应ADC设置为输入模式
#define Enable_ADC_AIN3 ADCCON0&=0xF0;ADCCON0|=0x03;P06_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT3;ADCCON1|=SET_BIT0
//P06

接下来我们再来看看带隙电压是如何操作的,官方例程没有使用ADC中断,而是直接在循环中采样五次,这样只要将程序放在开启其他ADC通道和EA前,即可。
在这里插入图片描述

通过上面的学习,相信大家已经明白了如何进行多通道采样,其实只需要不断切换使能的通道即可,用库函数可以很好的完成这个操作。

如果不希望一直触发ADC中断,则可以学习带隙电压所使用的方式,可以有效的降低计算量。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是N76E003芯片的ADC代码示例: ```c #include <stdio.h> #include "N76E003.h" // ADC输入通道 #define ADC_CH 3 void adc_init(void) { // 设置ADC时钟 clr_ADCF; set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCEN; } unsigned int adc_read(void) { // 选择输入通道 ADCCON1 &= 0xF8; ADCCON1 |= ADC_CH; // 启动ADC转换 clr_ADCF; set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 set_ADCS; // ADC时钟 = 系统时钟 / 8 while(!ADCF); return ADCRH << 8 | ADCRL; } int main() { adc_init(); while(1) { printf("ADC value: %d\n", adc_read()); } return 0; } ``` 需要注意的是,N76E003芯片的ADC精度为10位,最大输入电压为VDD。ADC时钟的频率需要根据具体情况进行调整,以保证ADC转换精度和速度的平衡。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值