AVR单片机教程——EasyElectronics Library v1.0手册
更新:EasyElectronics Library v1.1手册
索引:
pin.h tone.h pwm.h uart.h adc.h
led.h rgbw.h segment.h buzzer.h
button.h switch.h rotary.h pot.h ldr.h
进度:
全部代码已完成;
手册已完成:bit.h delay.h pin.h led.h rgbw.h button.h
1. 概述
1.1 背景
EasyElectronics Library v1.0是开发板EasyElectronics配套的库。
EasyElectronics是一款基于AVR单片机的开发板,以板载资源丰富、使用简便为特色。
1.2 库组织结构
库由C语言编写,release中包含若干头文件与一个静态库文件。
在头文件中,ee.h直接或间接地包含了所有其他头文件。
用户手动include ee.h中没有直接include的头文件是不推荐的,但也不会报错。
1.3 版本号
本手册对应的库版本号为1.0。
版本号由两位构成,前一位为主版本号,当库有结构性的变化或不与先前版本兼容时,此位+1;后一位为副版本号,当库中加入少量新内容时,此位+1。
对于修正版本,版本号不变,不另行通知。
2. 库函数
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。
clock(r, b):将r的第b位置为1后立即置为0。
flip(r, b):将r的第b位取反。
BIT_MASK(n, b):返回从第b位开始的高n位全1的二进制数。
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_t类型,表示对应引脚。
INPUT:宏常量,表示输入。
OUTPUT:宏常量,表示输出。
void pin_mode(pin_t _pin, bool _mode):_mode应为上述2个宏之一,将_pin引脚设为_mode模式。
LOW:宏常量,输入模式下表示高阻态,输出模式下表示低电平。
HIGH:宏常量,输出模式下表示高电平。
PULLUP:宏常量,输入模式下表示上拉。
void pin_write(pin_t _pin, bool _level):_level应为上述3个宏之一,将_pin引脚设为_level状态。
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. tone.h
tone.h定义了输出指定频率方波的函数。
TODO
5. pwm.h
pwm.h定义了输出PWM波形的函数。
TODO
6. uart.h
uart.h定义了串口收发的函数。
TODO
7. adc.h
adc.h定义了ADC操作的函数。
TODO
8. led.h
led.h定义了板载LED操作的函数。
LED_COUNT:宏常量,LED的个数。
void led_init():初始化LED。
LED_RED:宏常量,表示红色LED。
LED_YELLOW:宏常量,表示黄色LED。
LED_GREEN:宏常量,表示绿色LED。
LED_BLUE:宏常量,表示蓝色LED。
LED_OFF:宏常量,表示LED不亮。
LED_ON:宏常量,表示LED亮。
void led_set(uint8_t _which, bool _on):_which应为上述表示LED的宏,_on应为上述表示LED状态的宏,将_which设为_on的状态。
void led_flip(uint8_t _which):_which应为上述表示LED的宏,将_which的状态翻转。
void led_on():点亮所有LED。
void led_off():关闭所有LED。
9. rgbw.h
rgbw.h定义了驱动板载RGBW LED的函数。
RGBW_COUNT:宏常量,RGBW LED的颜色数。
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(uint8_t _which, uint8_t _value):_which应为上述表示LED的宏,_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。
10. segment.h
segment.h定义了驱动板载2位7段数码管的函数。
TODO
11. buzzer.h
buzzer.h定义了驱动板载蜂鸣器的函数。
TODO
12. button.h
button.h定义了读取板载按键状态的函数。
BUTTON_COUNT:宏常量,按键个数。
BUTTON_?:宏常量,?为0~3,表示按键。
void button_init(pin_t _button2, pin_t _button3):_button2与_button3分别为按键2和3连接的引脚,可以为PIN_NULL。初始化按键操作。
bool button_down(uint8_t _index):返回第_index个按键是否被按下。
bool button_pressed(uint8_t _index):对于每个_index值,返回从前一次调用开始对应按键是否被按下。
13. switch.h
switch.h定义了读取板载开关状态的函数。
TODO
14. rotary.h
rotary.h定义了读取板载旋转编码器输入的函数。
TODO
15. pot.h
pot.h定义了读取板载电位器输入的函数。
TODO
16. ldr.h
ldr.h定义了读取板载光敏电阻输入的函数。
TODO
17. dac.h
dac.h定义了驱动板载10位DAC的函数。
TODO
18. exout.h
exout.h定义了驱动板载74HC595扩展输出的函数。
TODO
19. exin.h
exin.h定义了读取板载74HC165扩展输入的函数。
TODO
20. lcd.h
lcd.h定义了驱动连接到板载接口上的1602 LCD模块的函数。
TODO
下一篇:点亮第一个LED
AVR单片机教程——EasyElectronics Library v1.0手册的更多相关文章
- 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.1手册
索引: bit.h delay.h pin.h wave.h pwm.h led.h rgbw.h button.h switch.h 主要更新: 用枚举类型替换了大部分宏定义: 添加了wave.h. ...
- 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%. 在驱动数码管时 ...
随机推荐
- 14.LAMP服务 Linux Apache Mysql Php和防护机制 xinetd、tcp wapper
一.安装LAMP服务 Linux Apache Mysql Php 要求操作系统支持 php解析 apache调用php插件解析 phpmyadmin yum install ...
- Spring boot RSA 文件加密解密
github项目地址 rsa_demo ##测试 加密D:/hello/test.pdf 文件,生成加密后的文件 testNeedDecode.pdf 对testNeedDecode.pdf 文件进行 ...
- 10个超漂亮的CSS 3D特效
10个超漂亮的CSS 3D特效 一.总结 一句话总结: 后面有空得好好练一练,也可以作为录课素材 二.10个超漂亮的CSS 3D特效 转自或参考:10个超漂亮的CSS 3D特效https://blog ...
- Geometry and Appearances【转】
https://github.com/AnalyticalGraphicsInc/cesium/wiki/Geometry-and-Appearances Geometry and Appearanc ...
- OGC open geospatial consortium标准服务
数据共享作为GIS行业的基础,是每一位从事GIS相关领域人员必须要了解的知识,而OGC服务作为行业标准,已经被各大GIS厂商广泛应用.究竟什么是OGC呢? OGC全称——开放地理空间信息联盟(Open ...
- sql中order by和group by的区别
order by 和 group by 的区别: 1,order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. 2,group b ...
- 【JDBC】仅输入表名和要插入的记录数,自动检测表的字段和类型,然后插入数据的全自动程序(Oracle版)
之前写的批量插值程序只是五六半自动版本,因为表的字段还需要手工填写,这回只要指定表名和要插多少数据就行了,类似于全自动突击步枪,扣动扳机就把字段打完为止. 全自动程序如下,诸位拿下去后可以修改成自己想 ...
- [转]EXCEL截取字符串中某几位的函数——LeftMIDRight及Find函数的使用
原文地址:http://blog.sina.com.cn/s/blog_3f136a180102ymq5.html EXCEL截取字符串中某几位的函数 ——Left MID Right及Find函数的 ...
- [转]在CentOS安装CMake (CentOS7 64位适用)
一.环境描述 1.系统:CentOS 6.4 i386 (min) 2.登录用户:root 3.版本:CMake 2.8.10.2 4.虚拟机:Oracle VM VirtualBox 二.安装步骤 ...
- postgre级联更新
常规写法 update t_table_copy a set content=( select content from t_table b where a.id = b.id ); 这些法,数据少了 ...