?? 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 + -