⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 这是一个车用电机调速器的AVR单片机的整套C语言的源代码
💻 C
字号:
/********************************************************************************************************
* 文 件 名 : adc.c
* 说    明 :
********************************************************************************************************/


#define  ADC_GLOBALS
#include "includes.h"



/********************************************************************************************************
* 功  能 : 获得ADC数据
* 入  口 : 'ch' 0~2 其他的通道未使用作为数字I/O使用
* 返  回 : ADC结果
* 说  明 : 1> 7us ADC1次 2000MHz的时钟 4MHz系统时钟 (实际此函数执行时间<15us)
*          2> 0~2通道激活
********************************************************************************************************/

INT16U ADCGetAdc (INT8U ch)
{
    INT16U result;


    OS_ENTER_CRITICAL();                      // 在后台模式/中断中并用 必须禁止中断响应
    ADMUX &= 0xE0;                            // 屏蔽掉通道 REFS1 REFS2 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0
    ADMUX |= ch;                              // 设置新的ADC通道
    SETBIT(ADCSRA, ADSC);                     // 开始1次ADC转换
    while(GETBIT(ADCSRA, ADSC));              // 等待ADC转换结束
    SETBIT(ADCSRA, ADIF);                   // 清除可能的ADC中断标志
    result = ADCW & 0x3ff;                    // 右对齐10BIT ADC结果
    OS_EXIT_CRITICAL();                       // 退出临界

    return (result);                          // 读->返回ADC结果 (右对齐方式)
}


/********************************************************************************************************
* 功  能 : ADC初始化
* 入  口 : 无
* 返  回 : 无
* 说  明 : 1> ADC Clock: 4000000Hz
*             ADC Voltage Reference: AREF
*             ADC Noise Canceler Disabled
*             ADC High Speed Mode
********************************************************************************************************/

void ADCInit (void)
{
    SFIOR &= B0001_1111;                          //
    SFIOR |= 0x00;                                // 中断触发源禁止(高3BIT与ADC有关)
    ADMUX  = 0x00;                                // ADC参考源选择 AREF
    ADCSRA = 0x80;                                // 只启动ADC 不中断 不连续模式 右对齐模式
}



/********************************************************************************************************
*                                             End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -