松翰单片机_SN8F570310——ADC

SN8F570310——ADC


平台:松翰 SN8F570310

官网:http://www.sonix.com.tw/masterpage-tw

 

 


 

 

 

 

 


 

 

 


 

 

        

 


 

 

 


 

 

 


 

 

 

 


 

 

 


 

 

 


 

 

 

 


 

 代码示例:

 

复制代码
#include "Equ.h"

/*
        硬件:
                    P13    AIN10
*/


/*
        1 将 ADC 输入通道设置为输入模式(由 PnM 寄存器设置);
        2 必须禁止 ADC 输入通道的内部上拉电阻(由 PnUR 寄存器设置);
        3 选择和使能 ADC 输入通道(由 CHS[3:0]位和 GCHS 位设置);
        4 必须将 ADC 模拟输入通道的控制位设置为 1(由 PnCON 寄存器设置);
        5 选择 ADC 高参考电压(由 VREFH 寄存器设置);
        6 选择 ADC 时钟频率(由 ADCKS[1:0]位设置);
        7 设置 ADENB 位后, ADC 准备开始转换。
*/

void adc_init(void)
{
    P1M    &= ~0x08;                //1.输入模式
    P1UR   &= ~0x08;                //2.禁止上拉
    ADM    |=  0x8A;                   //3.选择和使能 ADC 输入通道   1010
    P1CON  |=  0x08;                 //4.模拟输入通道的控制位设置为 1               
    VREFH   =  1<<2;                    //5.高参考电压 VDD
    ADR     =  1<<6 | 2<<4 ;  //6.ADC 时钟频率

    IEN2    = 3<<1;           //开启ADC中断
    ADM    |= 0X40;           //7.开始转换
}    
    
void ADCInterrupt(void) interrupt ISRAdc
{
    unsigned int ADCBuffer = 0; // data buffer
    unsigned long p;
    if ((IRCON2 &0x01) == 0x01){
        IRCON2 &= ~0x01;    //清除ADC标志位
            
        ADCBuffer = (ADB << 4) | (ADR &0x0f);
        for(p=0;p<30000;p++){}    
        for(p=0;p<30000;p++){}
        S0BUF =  ADCBuffer;
        
        ADM  &= ~0X20;   //转换结束,手动清零
        ADM  |=  0X40;   //开始转换        
    }
}
复制代码

 

 

 测试:

复位按键和电源

 

 

 

 

 

 

笔记:


 

1.  11个输入通道,12位数字信号采集所以分辨率为2^12=4096 ,参考高压可设置与参考低压为零,则将外部电压(参考低压—参考高压)转换为12位数字信号(0—4096);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @   panda_w  阅读(773)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示