zoukankan      html  css  js  c++  java
  • AVR单片机教程——EasyElectronics Library v1.1手册

    本文隶属于AVR单片机教程系列。

    已弃用。

    索引:

    bit.h delay.h

    pin.h wave.h pwm.h

    led.h rgbw.h

    button.h switch.h

    主要更新:

    • 用枚举类型替换了大部分宏定义;
    • 添加了wave.h、pwm.h、switch.h的文档。

    1. bit.h

    <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(rb):将r的第b位翻转。

    clock(r, b):将r的第b位翻转2次。

    BIT_MASK(n, b):宏函数,内部使用。

    2. delay.h

    <delay.h>定义了延时函数。

    void delay(uint16_t _time)延时_time毫秒。

    3. pin.h

    <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引脚电平是否为高。

    4. wave.h

    <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):内部使用。

    5. pwm.h

    <pwm.h>定义了输出PWM波形的函数。

    pwm_init():初始化PWM(实际上什么都没有做,可以不调用)。

    pwm_set(wave_t _channel, uint8_t _value):将_channel通道的占空比设置为_value(必须先调用wave_mode)。

    6. led.h

    <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。

    7. rgbw.h

    <rgbw.h>定义了驱动板载RGBW LED的函数。

    RGBW_COUNT:宏常量,RGBW LED的独立颜色数。

    rgbw_t:枚举类型,表示RGBW的颜色。

    RGBW_RED:表示红色LED;

    RGBW_GREEN:表示绿色LED;

    RGBW_BLUE:表示蓝色LED;

    RGBW_WHITE:表示白色LED。

    rgbw_pinpin_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。

     

    8. button.h

    <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调用开始,该按键是否被按下(只管两次调用时的状态,无法检测中间过程)。

    9. switch.h

    <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调用开始,该开关状态是否被改变(只管两次调用时的状态,无法检测中间过程)。

  • 相关阅读:
    pyhon学习日记第八天tkinter模块6
    python学习日记第八天tkinter模块5
    python学习日记第七天tkinter模块4
    python学习日记第七天tkinter模块3
    python学习日记第六天tkinter模块2
    python学习日记第六天tkinter模块学习1
    python学习日记第五天(飞机大战)
    python学习日记第四天
    python学习日记第三天(实例)
    Demo Nec
  • 原文地址:https://www.cnblogs.com/jerry-fuyi/p/11524921.html
Copyright © 2011-2022 走看看