索引:

bit.h delay.h

pin.h wave.h pwm.h

led.h rgbw.h

button.h switch.h

主要更新:

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

头文件与静态库文件下载:release

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

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

AVR单片机教程——EasyElectronics Library v1.1手册的更多相关文章

  1. AVR单片机教程——EasyElectronics Library v1.0手册

    更新:EasyElectronics Library v1.1手册 索引: bit.h delay.h pin.h tone.h pwm.h uart.h adc.h led.h rgbw.h seg ...

  2. AVR单片机教程——EasyElectronics Library v1.3手册

    bit.h delay.h pin.h wave.h pwm.h tone.h adc.h button.h switch.h rotary.h pot.h ldr.h led.h rgbw.h se ...

  3. AVR单片机教程——EasyElectronics Library v1.2手册

    索引: bit.h delay.h pin.h wave.h pwm.h led.h rgbw.h button.h switch.h segment.h 主要更新: 添加了segment.h的文档: ...

  4. AVR单片机教程——开发环境配置

    今天去交大密院参观了设计展,无外乎两个主题:Arduino.Python. 关于Python,我印象最深的是一位Python程序员的话:你要硬核的话,可以去那边看Java. 拜托,都9102年了,Ja ...

  5. AVR单片机教程——序言

    我一直觉得现在的网络环境对电子技术的学习有一点问题,但始终无法确切地指出,更何况网络上相关资源已经那么丰富. 但我觉得是问题的,无论它到底是不是问题,对我来说总归是一个问题.我学习也不算深入,很多东西 ...

  6. AVR单片机教程——数码管

    先解答之前一个思考题:如果不把引脚配置为输出而写高电平,连接LED会怎样? 实验结果是,LED会亮,但相比于输出高电平的情况,亮度很低.这是为什么呢? 通过上一篇教程我们知道,引脚输入输出模式是由寄存 ...

  7. AVR单片机教程——按键状态

    好久没更新了,今天开始继续,争取日更. 今天我们来讲按键.开发板的右下角有4个按键,按下会有明显的“咔嗒”声.如何检测按键是否被按下呢?首先要把按键或直接或间接地连接到单片机上.与之前使用的4个LED ...

  8. AVR单片机教程——点亮第一个LED

    做了这么多准备,我们终于可以开始用开发板做点事了. 单片机编程与计算机编程有一些不同点.程序都要有零个或多个输入.一个或多个输出,这是两者都有的,但是计算机编程的输入输出主要靠控制台,而单片机没有. ...

  9. AVR单片机教程——PWM调光

    本文隶属于AVR单片机教程系列.   PWM 两位数码管的驱动方式是动态扫描,每一位都只有50%的时间是亮的,我们称这个数值为其占空比.让引脚输出高电平点亮LED,占空比就是100%. 在驱动数码管时 ...

随机推荐

  1. VMware虚拟机安装Linux系统详细教程

    VMware14虚拟机安装RedHad6系统步骤 redhat网盘资源:链接:https://pan.baidu.com/s/1GlT20vevqbZ9qTxsGH1ZzA 提取码:oh57 如果网盘 ...

  2. 【转载】Windows api数据类型

    最近在接触windows api函数,看到了很多之前没有看到过的数据类型,发现“个人图书馆”中有个帖子说的挺详细的,特地搬运过来 Windows 数据类型 Delphi 数据类型 描述 LPSTR P ...

  3. codeforces 688 E. The Values You Can Make(01背包+思维)

    题目链接:http://codeforces.com/contest/688/problem/E 题解:设dp[s1][s2]表示s1状态下出现s2是否合理.那么s1显然可以更具01背包来得到状态.首 ...

  4. lightoj 1057 - Collecting Gold(状压dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1057 题解:看似有点下记忆话搜索但是由于他是能走8个方向的也就是说两点的距离其 ...

  5. Marvelous Mazes UVA - 445

    #include<iostream> #include<stdio.h> #include<string> #include<cstring> #def ...

  6. Atcoder C - Closed Rooms(思维+bfs)

    题目链接:http://agc014.contest.atcoder.jp/tasks/agc014_c 题意:略. 题解:第一遍bfs找到所有可以走的点并标记步数,看一下最少几步到达所有没锁的点,然 ...

  7. Bytes类型

    Bytes类型 一.定义 bytes类型是指一堆字节的集合,在python中以b开头的字符串都是bytes类型. b'\xe5\xb0\x8f\xe7\x8c\xbf\xe5\x9c\x88' ''' ...

  8. Redis集群下过期key监听

    1. 前言 在使用redis集群时,发现过期key始终监听不到.网上也没有现成的解决方案.于是想,既然不能监听集群,那我可以建立多个redis连接,分别对每个redis的key过期进行监听.以上做法可 ...

  9. Ubuntu系统添加用户权限

    一.首先创建一个新用户: sudo adduser hadoop 其次设置密码: sudo passwd hadoop 如果无法使用root密码,请输入如下命令: sudo passwd root 二 ...

  10. Java 中初始化 List 集合的 7 种方式

    1.常规方式 List<String> languages = new ArrayList<>(); languages.add("Java"); lang ...