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%. 在驱动数码管时 ...
随机推荐
- Django 项目创建到启动(最全最详细的第一个项目)
一.前言 (一).概述 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架 ...
- Angular Material 的设计之美
前言 Angular Material 作为 Angular 的官方组件库,无论是设计交互还是易用性都有着极高的质量.正如官方所说其目的就是构建基于 Angular 和 Typescript 的高质量 ...
- Codeforces 938D Buy a Ticket
Buy a Ticket 题意要求:求出每个城市看演出的最小费用, 注意的一点就是车票要来回的. 题解:dijkstra 生成优先队列的时候直接将在本地城市看演出的费用放入队列里, 然后直接跑就好了, ...
- HTML连载35-背景图片的练习、精灵图
一.背景图片练习 解释:这个例子需要注意的是,我们背景图片嵌套到另一个图片之中.我们设计的注意点在于,怎么定位到我们想定位到的地方. 总结:背景图片就是一块一块的,我们想把块的位置定位好(一般就是宽和 ...
- [Swoole入门到进阶] [精选公开课] Swoole服务器-Server的四层生命周期
PHP 完整生命周期 执行PHP文件 PHP扩展模块初始化(MINIT) PHP扩展请求初始化(RINIT) 执行 PHP 逻辑 PHP扩展请求结束(RSHUTDOWN) PHP脚本清理 PHP扩展模 ...
- 51NOD---逆序对(树状数组 + 归并排序)
1019 逆序数 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称 ...
- 【Offer】[10-2] 【青蛙跳阶问题】
题目描述 思路分析 Java代码 代码链接 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路分析 其实就是斐波那契 ...
- Python(Head First)学习笔记:二
2 共享代码:连接共享社区.语法.函数.技巧 通过Python模块共享代码,在Python社区分享这些模块,让更多的人受益, 不得不说,Python真的做的不错~ Python提供了一组技术,用于模块 ...
- HashMap和ConcurrentHashMap的区别,HashMap的底层源码
HashMap本质是数组加链表,根据key取得hash值,然后计算出数组下标,如果多个key对应到同一个下标,就用链表串起来,新插入的在前面. ConcurrentHashMap在HashMap的基础 ...
- 解决安装flask库不成功
Python中使用python -m pip install --upgrade pip升级pip时老是不成功 场景 在使用python -m pip install --upgrade pip进 ...