?? fan.h
字號:
//常量定義
//DCO頻率為.048576 MHz
#define PERIOD050USEC 52
//每5秒種測量一次溫度
#define TEMP_TIME 2
//PWM的占空比L0(風扇停止)
#define L0DUTYCYCLE 0
//PWM的占空比L1
#define L1DUTYCYCLE 30
//PWM的占空比L2
#define L2DUTYCYCLE 45
//PWM的占空比L3
#define L3DUTYCYCLE 60
//PWM的占空比L4
#define L4DUTYCYCLE 80
//PWM的占空比L5(風扇全速)
#define L5DUTYCYCLE 100
//溫度校正因子(攝式溫度)
#define CALFACTORDEGC 0
//溫度校正因子(華式溫度)
#define CALFACTORDEGF -3
//第0個溫度臨界(攝式溫度)
#define L0 - NEGRANGE
//第1個溫度臨界(華式溫度)
#define L1toL2 70
//第2個溫度臨界(華式溫度)
#define L2toL3 (L1toL2+ LEVELDEGWIDTH)
//第3個溫度臨界(華式溫度)
#define L3toL4 (L2toL3+ LEVELDEGWIDTH)
//第4個溫度臨界(華式溫度)
#define L4toL5 (L3toL4+ LEVELDEGWIDTH)
//第5個溫度臨界(華式溫度)
#define L5 (L3toL4+ LEVELDEGWIDTH)
//每一個等級改變的溫度
#define LEVELDEGWIDTH 7
//最大的溫度結果
#define MAXVDC 4095
//可能出現的正的最大的溫度臨界(攝式溫度)
#define POSRANGE 99
//可能出現的負的最小的溫度臨界(攝式溫度)
#define NEGRANGE 50
//溫度超界
#define OUTOFRANGE 0x0000FFFF
//最大的邊界
#define HIGHTEMPDEGC L4
//最小的邊界
#define LOWTEMPDEGC L0
//斜率A/D的參考電阻值
#define SLOPEADrREF 10000
//DCO = 1.048576 MHz下的5秒對應的記數值
#define PERIOD5MSEC 5243
typedef enum Boolean {
TRUE, FALSE
} Boolean;
typedef enum Status {
ALARM, OK
} Status;
typedef enum FanLevel {
FANSLEVEL0, FANSLEVEL1, FANSLEVEL2, FANSLEVEL3, FANSLEVEL4, FANSLEVEL5
} FanLevel;
// 端口1的管腳定義
#define ACTIVITY BIT0
#define THERM BIT4
#define REF BIT5
#define CA_IN BIT6
// 端口2的管腳定義
#define TACH BIT0
#define PWM BIT1
#define MAXLEVELSETTINGS 6
//風扇一轉所產生的脈沖數
#define PULSESPERREVOLUTION 2
//函數定義
//斜率A/D初始化
void TEMP_init(void);
//將電阻值轉換成溫度
signed int cnvtTempDegC(long int rSENSE);
//溫度采集
void sampleTemp(void);
//PWM初始化
void PWM_init(void);
//速度控制
void changeLevelAndSpeed(FanLevel systemLevel);
//速度設置
void setFanSpeed(void);
//系統初始化
void SYS_init(void);
//LED設置
void setStatusLED( Status status);
//風扇脈沖處理
void updateTach(void);
//風扇脈沖處理
void refreshTach(void);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -