索引:git
segment.hblog
主要更新:索引
頭文件與靜態庫文件下載:release。
ip
<bit.h>定義了用於位操做的宏函數,適用於8或16位整數。開發
set_bit(r, b):將r的第b位置爲1。文檔
reset_bit(r, b):將r的第b位置爲0。
read_bit(r, b):讀取r的第b位,若爲1則返回(1 << b),不然返回0。
cond_bit(c, r, b):若c爲真,則將r的第b位置爲1,不然置爲0。
flip(r, b):將r的第b位翻轉。
clock(r, b):將r的第b位翻轉2次。
BIT_MASK(n, b):宏函數,內部使用。
<delay.h>定義了延時函數。
void delay(uint16_t _time):延時_time毫秒。
<pin.h>定義了引腳操做的函數。
pin_t:枚舉類型,表示引腳。
PIN_NULL:表示空引腳。全部接受pin_t參數的函數若是接受PIN_NULL參數,則不會執行任何動做,返回void或0。
PIN_?:宏常量,?爲0~9或A~F,表示開發板上引腳。
pin_mode_t:枚舉類型,表示引腳工做模式。
INPUT:表示輸入;
OUTPUT:表示輸出。
void pin_mode(pin_t _pin, pin_mode_t _mode):將_pin引腳設爲_mode模式。
3個表示引腳電平的宏:
LOW:宏常量,輸入模式下表示高阻態,輸出模式下表示低電平;
HIGH:宏常量,輸出模式下表示高電平;
PULLUP:宏常量,輸入模式下表示上拉。
void pin_write(pin_t _pin, bool _level):_level應爲bool量或上述3個宏之一(推薦前者),將_pin引腳設爲_level狀態(根據先前調用pin_mode決定模式,默認爲輸入)。
PIN_BIT(p):宏函數,內部使用。
void pin_write_multi(pin_t _pin, uint8_t _mask, uint8_t _value):內部使用。
void pin_flip(pin_t _pin):將_pin引腳電平翻轉。
bool pin_read(pin_t _pin):返回_pin引腳電平是否爲高。
<wave.h>定義了波形輸出相關函數。
WAVE_COUNT:宏常量,波形輸出引腳個數。
wave_t:枚舉類型,表示波形輸出引腳。
WAVE_NULL:表示空引腳,看成爲參數時,函數不進行任何操做;
WAVE_?:?爲0~3,分別表示一個引腳。
void wave_init():初始化波形輸出(實際上什麼都沒有作,能夠不調用)。
wave_mode_t:枚舉類型,表示波形輸出模式。
WAVE_MODE_OFF:關閉波形輸出;
WAVE_MODE_PWM:PWM輸出;
WAVE_MODE_TONE:方波輸出。
void wave_mode(wave_t _channel, wate_mode_t _mode):將_channel波形輸出通道設置爲_mode模式。
wave_t wave_map(pin_t _pin):內部使用。
<pwm.h>定義了輸出PWM波形的函數。
pwm_init():初始化PWM(實際上什麼都沒有作,能夠不調用)。
pwm_set(wave_t _channel, uint8_t _value):將_channel通道的佔空比設置爲_value(必須先調用wave_mode)。
<led.h>定義了板載LED操做的函數。
LED_COUNT:宏常量,LED的個數。
void led_init():初始化LED。
led_t:枚舉類型,表示LED。
LED_RED:表示紅色LED;
LED_YELLOW:表示黃色LED;
LED_GREEN:表示綠色LED;
LED_BLUE:表示藍色LED。
2個表示LED狀態的宏:
LED_OFF:宏常量,表示LED不亮;
LED_ON:宏常量,表示LED亮。
void led_set(led_t _which, bool _on):_on應爲bool量或上述表示LED狀態的宏(推薦前者),將_which設爲_on的狀態。
void led_flip(led_t _which):將_which的狀態翻轉。
void led_on():點亮全部LED。
void led_off():關閉全部LED。
<rgbw.h>定義了驅動板載RGBW LED的函數。
RGBW_COUNT:宏常量,RGBW LED的獨立顏色數。
rgbw_t:枚舉類型,表示RGBW的顏色。
RGBW_RED:表示紅色LED;
RGBW_GREEN:表示綠色LED;
RGBW_BLUE:表示藍色LED;
RGBW_WHITE:表示白色LED。
rgbw_pin:pin_t類型數組,存儲RGBW LED的顏色對應的引腳。
void rgbw_init(pin_t _r, pin_t _g, pin_t _b, pin_t _w):初始化RGBW LED,4個參數分別爲紅、綠、藍、白LED的引腳。
void rgbw_set(rgbw_t _which, uint8_t _value):_value爲亮度值。對於4~7號引腳,_value爲亮度;對於其餘引腳,_value≥128則LED亮。
RGBW_COLOR(r, g, b, w):宏函數,接受4個0~3的數(取二進制最低兩位),生成一個表示顏色的數。
void rgbw_color(uint8_t _color):_color應爲RGBW_COLOR生成的數,使RGBW LED顯示相應的顏色。
void rgbw_off():關閉RGBW LED。
<button.h>定義了讀取板載按鍵狀態的函數。
BUTTON_COUNT:宏常量,按鍵個數。
button_t:枚舉類型,表示按鍵。
BUTTON_?:?爲0~3,表示按鍵。
pin_t button_pin[BUTTON_COUNT]:存儲按鍵所鏈接的引腳。
void button_init(pin_t _button2, pin_t _button3):_button2與_button3分別爲按鍵2和3鏈接的引腳,能夠爲PIN_NULL。初始化按鍵操做。
bool button_down(button_t _which):返回_which按鍵是否被按下(調用時狀態)。
bool button_pressed(button_t _which):返回從上一次對_which調用開始,該按鍵是否被按下(只管兩次調用時的狀態,沒法檢測中間過程)。
<switch.h>定義了讀取板載撥動開關狀態的函數。
SWITCH_COUNT:宏常量,開關個數。
switch_t:枚舉類型,表示開關。
SWITCH_?:?爲0~3,表示開關。
pin_t switch_pin[SWITCH_COUNT]:存儲開關所鏈接的引腳。
void switch_init(pin_t _switch2, pin_t _switch3):_switch2與_switch3分別爲開關2和3鏈接的引腳,能夠爲PIN_NULL。初始化開關操做。
bool switch_status(switch_t _which):返回_which開關的狀態。
bool switch_changed(switch_t _which):返回從上一次對_which調用開始,該開關狀態是否被改變(只管兩次調用時的狀態,沒法檢測中間過程)。
<segment.h>定義了設置數碼管顯示數據與控制顯示的函數。
SEGMENT_DIGIT_COUNT:宏常量,數碼管位數
segment_t:枚舉類型,表示數碼管的位。
SEGMENT_DIGIT_L:左邊的位
SEGMENT_DIGIT_R:右邊的位
pin_t segment_pin[SEGMENT_DIGIT_COUNT]:存儲數碼管負極鏈接的引腳。
void segment_init(pin_t _digit0, pin_t _digit1):_digit0、_digit1分別爲數碼管左右兩位負極鏈接的引腳,能夠爲PIN_NULL。初始化數碼管操做。
extern const uint8_t segment_digit[16]:0~九、A~F的段碼。
extern const uint8_t segment_dot:小數點的段碼。與segment_digit中的元素位或的結果表示帶小數點的數字段碼。
如下函數只設置顯示數據,不控制顯示,返回值均爲是否設置成功:
bool segment_raw(uint8_t _digit0, uint8_t _digit1):左位顯示段碼_digit0,右位顯示段碼_digit1。
bool segment_hex(uint8_t _value):按十六進制顯示_value。
bool segment_dec(uint16_t _value):按十進制顯示_value。若是是三位數,將四捨五入保留到十位,顯示百位和十位,顯示右位小數點。
bool segment_frac(uint16_t _int, uint8_t _dec):_int爲整數部分,_dec爲十分位。若是_dec大於等於10,返回false。若是_int是一位數,顯示_int._dec;不然按segment_dec顯示,未顯示出的位會四捨五入。
如下函數根據數據控制顯示:
void segment_display(segment_t _digit):根據當前的數據顯示_digit位,可用於動態掃描。
void segment_off():關閉數碼管,不顯示任何位。
void segment_auto():使用定時器2中斷,自動進行動態掃描。當使用自動動態掃描時,6和7兩引腳不能用於輸出方波。