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

📄 dac.h

📁 西安明朗公司开发板ML-F020ICB的全部测试代码
💻 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 + -