AVR单片机教程——EasyElectronics Library v1.1手册
索引:
主要更新:
- 用枚举类型替换了大部分宏定义;
- 添加了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(r, b):将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手册的更多相关文章
- 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 ...
- 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 ...
- 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的文档: ...
- AVR单片机教程——开发环境配置
今天去交大密院参观了设计展,无外乎两个主题:Arduino.Python. 关于Python,我印象最深的是一位Python程序员的话:你要硬核的话,可以去那边看Java. 拜托,都9102年了,Ja ...
- AVR单片机教程——序言
我一直觉得现在的网络环境对电子技术的学习有一点问题,但始终无法确切地指出,更何况网络上相关资源已经那么丰富. 但我觉得是问题的,无论它到底是不是问题,对我来说总归是一个问题.我学习也不算深入,很多东西 ...
- AVR单片机教程——数码管
先解答之前一个思考题:如果不把引脚配置为输出而写高电平,连接LED会怎样? 实验结果是,LED会亮,但相比于输出高电平的情况,亮度很低.这是为什么呢? 通过上一篇教程我们知道,引脚输入输出模式是由寄存 ...
- AVR单片机教程——按键状态
好久没更新了,今天开始继续,争取日更. 今天我们来讲按键.开发板的右下角有4个按键,按下会有明显的“咔嗒”声.如何检测按键是否被按下呢?首先要把按键或直接或间接地连接到单片机上.与之前使用的4个LED ...
- AVR单片机教程——点亮第一个LED
做了这么多准备,我们终于可以开始用开发板做点事了. 单片机编程与计算机编程有一些不同点.程序都要有零个或多个输入.一个或多个输出,这是两者都有的,但是计算机编程的输入输出主要靠控制台,而单片机没有. ...
- AVR单片机教程——PWM调光
本文隶属于AVR单片机教程系列. PWM 两位数码管的驱动方式是动态扫描,每一位都只有50%的时间是亮的,我们称这个数值为其占空比.让引脚输出高电平点亮LED,占空比就是100%. 在驱动数码管时 ...
随机推荐
- gym/102059/problem/I. Game on Plane SG函数做博弈
传送门: 题意: 给定一个正n边形的点.双方轮流连点成线,要求所画的线不能与之前的线相交.当某个人连成一个回路,这个人就输了.问先手必胜还是后手必胜. 思路: SG函数,因为一条线相当于把图劈成了两半 ...
- BZOJ2038 小Z的袜子 莫队
BZOJ2038 题意:q(5000)次询问,问在区间中随意取两个值,这两个值恰好相同的概率是多少?分数表示: 感觉自己复述的题意极度抽象,还是原题意有趣(逃: 思路:设在L到R这个区间中,x这个值得 ...
- CodeForces 765 F Souvenirs 线段树
Souvenirs 题意:给你n个数, m次询问, 对于每次一次询问, 求出询问区间内绝对值差值的最小值. 题解:先按查询的右端点从小到大sort一下,然后对于塞入一个数的时候, 就处理出所有左端点到 ...
- 不要小看小小的 emoji 表情
前言 好久没更新了,最近事比较多,或许下个月就会恢复到正常的发文频次. 这篇文章得从一个 emoji 表情开始,我之前开源的一个 IM 项目中有朋友提到希望可以支持 emoji 表情传输. https ...
- Jmeter 之 逻辑控制器 if 控制器
最近工作不忙,利用空闲时间整理了下Jmeter的相关知识,下面给大家分享下Jmeter中 如果(if)控制的使用和应用. 如下图:线程组 > 添加 > 逻辑控制器 > 如果 (if) ...
- Django-下载安装-配置-创建django项目-三板斧简单使用
目录 Django 简介 使用 django 的注意事项 计算机名不能有中文 Django版本问题 django下载安装 在命令行下载安装 在pycharm图形界面下载安装 检验是否安装成功 创建Dj ...
- 小白专场-多项式乘法与加法运算-python语言实现
目录 题意理解 解题思路 多项式加法 多项式乘法 完整代码 题意理解 题目: 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一 ...
- 什么是Json,Json如何使用
JavaScript Object Notation:javascript的对象表示法. 这是一种能传递对象的语法,可以是键值对,数组,以及其他对象. 轻量级的数据传输方法. json格式: { ke ...
- jvm内存溢出问题的定位方法
jvm内存溢出问题的定位方法 今天给大家带来JVM体验之内存溢出问题的定位方法. 废话不多说直接开始: 一.Java堆溢出 测试代码如下: import java.util.*; public cla ...
- 大数据平台搭建 - Mysql在linux上的安装
一.简介 MySQL是一个关系型数据库系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 ...