📄 dac.h
字号:
/************************************************************************************
* Copyright (c), 2004-2007,西安铭朗电子科技有限责任公司
* All rights reserved.
*
* Http: www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: DAC.h
* Project : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
*
* Author: 李林利
* Version: 1.20
* Date: 2007.6.1
* Email: GavinLi@126.com
*
* Description: 本文件是DAC硬件驱动程序头文件
*
* Others: none;
*
* Function List:
* 1. void DAC0_Init(unsigned char mode,unsigned long freq)
* 2. void DAC0_Enable(void)
* 3. void DAC0_Disable(void)
* 4. void DAC0_Output(unsigned int value)
* 5. void DAC0_OutUpdate(void);
* 6. void DAC1_Init(unsigned char mode,unsigned long freq)
* 7. void DAC1_Enable(void)
* 8. void DAC1_Disable(void)
* 9. void DAC1_Output(unsigned int value)
* 10. void DAC1_OutUpdate(void)
*
* History:
* 1. Author: 李林利
* Version: 1.10
* Date: 2007.3.12
* Modification: none
*
* 2. Author: 李林利
* Version: 1.00
* Date: 2004.11.24
* Modification: 建立文件
*
*************************************************************************************/
/*************************************************************************************
* DAC硬件驱动程序函数使用说明(以DAC0为例,DAC1同)
*
*
* 1. 第1步,如果DAC0工作在定时输出更新模式,则必须在Config.h文件中进行DAC配置,详见其说明;
* 如果DAC0工作在手动输出更新模式,则省略这一步;
* 2. 第2步,必须调用函数DAC0_Init(),按函数说明进行设置,本函数只允许调用1次;
* 3. 第3步,必须调用函数DAC0_Enable(),启动DAC转换;
* 4. 第4步,如果DAC0工作在定时输出更新模式,则省略这一步;
* 如果DAC0工作在手动输出更新模式,则必须调用函数DAC0_Output(),按函数说明进行设置;
* 5. 接下来要停止AD转换调用函数DAC0_Disable(),也可重新调用函数DAC0_Enable(),启动AD转换;
* 6. 其它细节详见具体函数说明;
*
*************************************************************************************/
/************************************************************************************/
// 常量及全局变量定义
/************************************************************************************/
// DAC0工作模式定义, 在这里可以修改DAC0工作模式, 目前只支持DAC0_MODE_AUTO和DAC0_MODE_T3模式
#define DAC0_MODE_WR 0x00 // 手动输出更新模式
#define DAC0_MODE_T3 0x08 // 定时输出更新模式
#define DAC0_MODE DAC0_MODE_T3 // DAC0工作模式定义
//DAC0输出更新频率定义, 在这里可以修改改变DAC0输出频率
#define DAC0_OUTRATE 1000
//DAC1工作模式定义, 在这里可以修改DAC1工作模式, 目前只支持DAC1_MODE_AUTO和DAC1_MODE_T3模式
#define DAC1_MODE_WR 0x00 // 手动输出更新模式
#define DAC1_MODE_T3 0x08 // 定时输出更新模式
#define DAC1_MODE DAC1_MODE_T3 // DAC1工作模式定义
//DAC1输出更新频率定义, 在这里可以修改改变DAC1输出频率
#define DAC1_OUTRATE 1000
/*************************************************************************************/
//
// DAC0硬件驱动程序函数外部引用声明
//
/*************************************************************************************/
/***********************************************************************************
* Function: DAC0_Init;
*
* Description: DAC0 初始化函数;
*
* Input: mode, DAC0工作模式定义,现包括DAC手动输出更新和定时输出更新两种;在手动输出更新
* 模式下,不占用定时器3, 调用DAC0_Enable()函数后,可直接调用DAC0_Output()函数直接输出;
* 在定时输出更新模式下,占用定时器3, 必须先调用DAC0_SetBufPtr()函数进行输出缓存设置,
* 再调用DAC0_Enable()函数后,DAC0在定时器3的中断中自动实现输出;freq, DAC0更新频率,在
* 定时输出更新模式下有效;
*
* Output: none;
*
* Return: none;
*
* Note: freq,DAC0更新频率频率,最大值50000HZ,最小值30HZ;本函数不作范围判断,请用户注意;
************************************************************************************/
void DAC0_Init(unsigned char mode,unsigned long freq);
/***********************************************************************************
* Function: DAC0_Enable;
*
* Description: DAC0使能函数, DAC0开始工作;
*
* Input: none;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void DAC0_Enable(void);
/***********************************************************************************
* Function: DAC0_Disable;
*
* Description: DAC0关闭函数, DAC0停止工作;
*
* Input: none;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void DAC0_Disable(void);
/***********************************************************************************
* Function: DAC0_Output;
*
* Description: DAC0直接输出数据函数;
*
* Input: value, 输出的数据,数据数值范围:0x0000~0x0fff;
*
* Output: none;
*
* Return: none;
*
* Note: 本函数不作输出数据范围检查;本函数只在手动输出中应用;
************************************************************************************/
void DAC0_Output(unsigned int value);
/***********************************************************************************
* Function: DAC0_OutUpdate;
*
* Description: 更新DAC0输出数据函数;
*
* Input: none;
*
* Output: none;
*
* Return: none;
*
Note: 此函数必须在定时器3的中断函数中调用, 本函数执行时间4us;
************************************************************************************/
void DAC0_OutUpdate(void);
/*************************************************************************************/
//
// DAC1硬件驱动程序函数外部引用声明
//
/*************************************************************************************/
/***********************************************************************************
* Function: DAC1_Init;
*
* Description: DAC1 初始化函数;
*
* Input: mode, DAC1工作模式定义,现包括DAC手动输出更新和定时输出更新两种;在手动输出更新
* 模式下,不占用定时器3, 调用DAC1_Enable()函数后,可直接调用DAC1_Output()函数直接输出;
* 在定时输出更新模式下,占用定时器3, 必须先调用DAC1_SetBufPtr()函数进行输出缓存设置,
* 再调用DAC1_Enable()函数后,DAC1在定时器3的中断中自动实现输出;freq, DAC0更新频率,在
* 定时输出更新模式下有效;
*
* Output: none;
*
* Return: none;
*
* Note: freq,DAC1更新频率频率,最大值50000HZ,最小值30HZ;本函数不作范围判断,请用户注意;
************************************************************************************/
void DAC1_Init(unsigned char mode,unsigned long freq);
/***********************************************************************************
* Function: DAC1_Enable;
*
* Description: DAC1使能函数, DAC1开始工作;
*
* Input: none;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void DAC1_Enable(void);
/***********************************************************************************
* Function: DAC1_Disable;
*
* Description: DAC1关闭函数, DAC1停止工作;
*
* Input: none;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void DAC1_Disable(void);
/***********************************************************************************
* Function: DAC1_Output;
*
* Description: DAC1直接输出数据函数;
*
* Input: value, 输出的数据,数据数值范围:0x0000~0x0fff;
*
* Output: none;
*
* Return: none;
*
* Note: 本函数不作输出数据范围检查;本函数只在手动输出中应用;
************************************************************************************/
void DAC1_Output(unsigned int value);
/***********************************************************************************
* Function: DAC1_OutUpdate;
*
* Description: 更新DAC1输出数据函数;
*
* Input: none;
*
* Output: none;
*
* Return: none;
*
Note: 此函数必须在定时器3的中断函数中调用, 本函数执行时间4us;
************************************************************************************/
void DAC1_OutUpdate(void);
/***********************************************************************************/
// 文件结束
/***********************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -