摘要:本文隶属于AVR单片机教程系列。 上一讲中,我们实现了单片机开发板向电脑传输数据。在这一讲中,我们将通过电脑向单片机发送指令,让单片机根据指令控制LED。这一次,两端的TX与RX需要交叉连接,单片机TX连接串口工具RX也是需要的,因为程序会根据指令反馈信息。 为了简单起见,我们的程序只需要控制4个板
阅读全文
摘要:用OLED屏显示一个微信动态表情,送给心爱的Ta。
阅读全文
摘要:本文隶属于AVR单片机教程系列。 到目前为止,我们的开发板只能处理很小量的数据:读取几个引脚电平,输出几个LED,顶多用数码管显示一个两位数字。至于输入一个指令、输出一条调试信息,甚至用 和`printf`来输入输出,在已经接触过的这些器件上是难以想象的。而本讲“串口发送”与下一讲“串口接收”,将打
阅读全文
摘要:有时候我们会不给C类成员变量赋初始值,或是因为忘记在构造函数中指定(C11可以写在类内),或是觉得没有必要写。然而,因为觉得编译器会把变量赋成0而不写是错误的。本文通过C++标准来解释这个问题。 本文基于N3337(C++11草案)标准。 关于没有初始化器的对象,在8.5-11中有提及: If no
阅读全文
摘要:本文隶属于AVR单片机教程系列。 好久没写这个系列了。今天讲讲旋转编码器。 旋转编码器好像不是单片机玩家很常用的器件,但是我们的开发板上有,原因如下: 1. 旋转编码器挺好用的。电位器能旋转的角度有限,旋转编码器可以无限圈旋转;旋转时不连续,有卡点,适合对应离散数据。 2. 开发板上选用的旋转编码器
阅读全文
摘要:本文隶属于AVR单片机教程系列。 "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" "segmen
阅读全文
摘要:《玩玩24点》系列: 上篇 中篇 下篇 最近班里开始玩24点了。起因是一个在计算器上两人比赛24点的程序,但计算器判断一组数据是否有解需要15秒,于是这个程序就没有判定有解这一功能。 这么慢的速度我当然看不下去,但去优化那个BASIC程序是不可能的,我就开始写自己的24点程序。正好之前的算法课中递归
阅读全文
摘要:本文隶属于AVR单片机教程系列。 已弃用。 索引: bit.h delay.h pin.h wave.h pwm.h led.h rgbw.h button.h switch.h segment.h 主要更新: 添加了segment.h的文档; 新增基于中断的数码管驱动,自动完成动态扫描; 1. b
阅读全文
摘要:身边几个玩编程计算器的同学说,用计算器编程帧率太低了。一开始我觉得,好端端的处理器能卡成这样,肯定是计算器系统的问题。要是用我的开发板来跑绝对不会卡,但转念一想我的开发板只能在计算机上编程然后烧写进去,拿编译型语言去跟解释型语言比效率是没有意义的。 后来查了一下资料,他们用的计算器中竟然使用8位单片
阅读全文
摘要:本文隶属于AVR单片机教程系列。 上一篇教程中我们学习了如何读取按键状态。而按键的动作,比如单击,至少需要两个状态才能判定,长按、双击的判定更加复杂。今天我们来学习如何使用库函数判断按键单击,以及其实现原理。 我们要实现的是:当一个按键被单击时,一个LED的状态改变(即亮变暗,暗变亮);4个按键对应
阅读全文
摘要:本文隶属于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
阅读全文