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

📄 hd_support.c

📁 对于使用电池供电的微型设备
💻 C
字号:
/***********************************************************
*   函数库说明:底层硬件初始化函数库                       *
*  [支 持 库]                                              *
*   支持库名称:HD_Support.h                               *
*   需要版本:  -----                                      *
*   支持库说明:底层硬件初始化声明库                       *
*                                                          *
*   支持库名称:PF_Config.h                                *
*   需要版本:  -----                                      *
*   支持库说明:硬件平台配置声明库                         *
***********************************************************/

/********************
* 头 文 件 配 置 区 *
********************/
# include "PF_Config.h"
# include "HD_Support.h"

/********************
*   系 统 宏 定 义  *
********************/

/*------------------*
*   常 数 宏 定 义  *
*------------------*/

/*------------------*
*   动 作 宏 定 义  *
*------------------*/

/********************
*  模块结构体定义区 *
********************/

/********************
*   函 数 声 明 区  *
********************/
void Device_INIT(void);

/********************
*   模块函数声明区  *
********************/
static void Port_INIT(void);
void ADC_INIT(void);


/********************
*   模块变量声明区  *
********************/

/********************
*   全局变量声明区  *
********************/

BOOL IfGotADCValue = True;              //用于指示是否有ADC转换正在进行中的标志

/***********************************************************
*   函数说明:系统硬件初始化函数                           *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:Port_INIT()                                  *
***********************************************************/
void Device_INIT(void)
{
    Port_INIT();
    ADC_INIT();
    //*在这里添加其他初始化函数*//

    MCUCR = 0x00;                       //使能口线内部弱上拉,中断向量在FLASH首部
    DIDR0 = 0x08;                       //关闭PC.3的数字输入缓冲
    PRR = 0xCE;                         //使能ADC模块的电源供应

    //*在这里添加其他全局寄存器的初始化代码*//
}

/***********************************************************
*   函数说明:系统端口初始化函数                           *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:无                                           *
***********************************************************/
static void Port_INIT(void)
{
    //*在这里添加端口初始化代码*//
    
    PORTB = 0b11111111;                 //在PB口0..5上输出光柱效果
    PORTC = 0b11110111;                 //初始化PC口,PC.3设置为输入
    PORTD = 0b11111111;                 //没有使用的端口均设置为输入状态并开启内部上拉电阻
    
    DDRB = 0b11111111;
    DDRC = 0b11110111;
    DDRD = 0b00000000;
}

/***********************************************************
*  函数说明:ADC初始化程序                                 *
*  输入:    无                                            *
*  输出:    无                                            *
* -------------------------------------------------------- *
*  [说明]                                                  *
*            这里的代码是为了方便大家理解直接从代码生成器  *
*        中生成,经过简单错误修改后的代码。以后使用的时候,*
*        我将采用更为规范的格式。                          *
***********************************************************/
void ADC_INIT(void)
{
    ADMUX = 0x43;                       //选择AVCC,结果右对齐,选择ADC通道3
    ADCSRA = 0x84;                      //ADC模块使能,未开始转换,自动触发关闭,中断关闭,预分频比16
    ADCSRB = 0x00;                      //ACME用于模拟比较器,这里忽略.由于没有使用自动触发功能,对ADTS的设置没有意义

    /*
    ADMUX = (ADMUX_AREF<<REFS0)|(3<<MUX0);
    ADCSRA = (1<<ADEN)|(ADCSRA_PRESCALER_DIV_16<<ADPS0);
    ASCSRB = 0x00;
    */
}


⌨️ 快捷键说明

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