AVR单片机教程——如何使用本教程
这是一篇元教程(meta-tutorial)——其他教程教你怎么使用AVR单片机,本篇教程教你如何使用本系列教程。
我们的教程已经把板载LED讲完了,但是教会你的不应该只是如何使用LED。你应该已经知道:
单片机的英文是microcontroller,主要作控制用途,它内部集成了存储器;
我们使用的单片机型号是ATmega324PA,它是Atmel公司的8位AVR架构单片机,Atmel公司现已被Microchip公司收购;
main() 函数可以不写 ;
在Debug模式下编译的程序比Release下的要多一些调试信息,性能会稍差一点,但更方便调试;
delay() 函数本身是精准的,但是加上其他代码运行的时间,程序实际运行时间总是比预期长一点;
为了避免代码重复,可以把相同的代码段中不同的部分放进输出,然后对数组遍历;
uint8_t 类型的上限是255,再加上1后,它会变成0;
hex是一种用ASCII字符表示二进制信息的格式,每行开始为冒号,之后都是十六进制数;
把 rand() 的结果对n求模可以得到[0, n-1]范围内的随机整数;
……
这么多内容,在之前的教程中都涉及到了,但是,你都知道吗?
序言里就讲过,单片机涉及到方方面面,也需要尝试与实践。单片机的学习,不是看看教程、敲敲代码就能学好的。
“Arduino虽然有丰富的教程、众多第三方模块和库”,具体是什么?去淘宝看看;
“10位ADC”“74HC595”“555定时器”,都是些什么?去百度看看;
“Atmel Studio 7.0(简称AS7),是……”,有超链接,点进去看看;
“输入模式下表示高阻态”,高阻态是什么?“库下载完以后是不能直接用的”,程序与库是什么关系?从C代码怎样一步一步转换成0和1?“电源波纹不能让程序不能跑飞”,电源波纹是什么?一般有多大?多少算好?程序跑飞会怎么样?哪些厂家的单片机容易跑飞?
……
这些都是学习过程中可以想到的问题。如果想到了,不懂了,查阅了,明白了,你的水平就提高了。至于这系列教程,都只是给你指路而已。
加油!
AVR单片机教程——如何使用本教程的更多相关文章
- AVR单片机教程——旋转编码器
好久没写这个系列了.今天讲讲旋转编码器. 旋转编码器好像不是单片机玩家很常用的器件,但是我们的开发板上有,原因如下: 旋转编码器挺好用的.电位器能旋转的角度有限,旋转编码器可以无限圈旋转:旋转时不连续 ...
- AVR单片机教程——数码管
先解答之前一个思考题:如果不把引脚配置为输出而写高电平,连接LED会怎样? 实验结果是,LED会亮,但相比于输出高电平的情况,亮度很低.这是为什么呢? 通过上一篇教程我们知道,引脚输入输出模式是由寄存 ...
- AVR单片机教程——数字输出
从上一篇教程中我们了解到,按键与开关的输入本质上就是数字信号的读取.这一篇教程要讲的是,控制LED的原理是数字信号的输出.数字IO是单片机编程之有别于桌面编程的各项内容中最简单.最基础的. 在讲数字信 ...
- AVR单片机教程——数字输入
我们已经学习了如何使用按键和拨动开关,不知你有没有好奇 button_down 和 switch_status 等函数是如何实现的.本篇教程带你一探究竟,让我们从按键的原理开始. 在原理图中,按键的符 ...
- AVR单片机教程——拨动开关
在按键的上方有4个拨动开关.开关与按键,在原理和使用方法上都是很类似的,但有不同的用途——按键按下后松开就会弹起,而开关可以保存其状态. <switch.h> 定义了与开关相关的函数.sw ...
- AVR单片机教程——按键动作
上一篇教程中我们学习了如何读取按键状态.而按键的动作,比如单击,至少需要两个状态才能判定,长按.双击的判定更加复杂.今天我们来学习如何使用库函数判断按键单击,以及其实现原理. 我们要实现的是:当一个按 ...
- AVR单片机教程——按键状态
好久没更新了,今天开始继续,争取日更. 今天我们来讲按键.开发板的右下角有4个按键,按下会有明显的“咔嗒”声.如何检测按键是否被按下呢?首先要把按键或直接或间接地连接到单片机上.与之前使用的4个LED ...
- AVR单片机教程——随机点亮LED
之前我们做的闪烁LED和流水灯,灯效都是循环的.这次我们来尝试一些不一样的——每一次随机选择一个LED并点亮. 要实现随机的效果,我们要用C语言标准库中的相关设施: #define RAND_MAX ...
- AVR单片机教程——流水灯
上次我们用 delay 函数与 while 循环实现了一个LED的闪烁.这一次我们把所有LED加入进来,让它们依次闪烁,形成流水灯的效果. 开发板上有4个LED,我们可以用不多的语句把循环体直接描述出 ...
随机推荐
- pipres生成当前项目所有的依赖文件
对于使用虚拟环境的Python程序,直接pip freeze即可.但是对于没有使用虚拟环境,再使用pip freeze就不行了,因为它会把系统所有的包都导出. 所以使用第三方库pipreqs 安装 p ...
- java 跳出多重循环
public class Main { public static void main(String[] args) { System.out.println("start"); ...
- You are using the runtime-only build of Vue where the template compiler is not available. Either pre
在升级脚手架到vue-cli3.0版本的时候出现了这个报错: [Vue warn]: You are using the runtime-only build of Vue where the tem ...
- return语句——学习笔记
return,可以提前结束其所在函数. 函数内不写,会自动加上return. 非引用返回: 引用返回:a=3,b=3 注意事项: 两种修改字符串某一位置值的方式:
- shell编程系列1--shell脚本中的变量替换
shell编程系列1--shell脚本中的变量替换 变量替换总结: .${变量#匹配规则} # 从头开始匹配,最短删除 .${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) .${变量%匹 ...
- 四、postman增加断言
预期和实际结果的判断 预期==实际:用例通过,写到报告里 预期!==实际:用例失败,写到报告里 一.例子演示 相当于首页右侧的10大每天的内容 url:http://www.v2ex.com/api/ ...
- ubuntu挂载新硬盘
root@luo-All-Series:~# fdisk -lDisk /dev/loop0: 320.2 MiB, 335728640 bytes, 655720 sectorsUnits: sec ...
- 【433】COMP9024 复习
目录: 01. Week01 - Lec02 - Revision and setting the scene 02. Week02 - Lec01 - Data structures - memor ...
- Elasticsearch技术解析与实战 PDF (内含目录)
Elasticsearch技术解析与实战 介绍: Elasticsearch是一个强[0大0]的搜索引擎,提供了近实时的索引.搜索.分 ...
- springboot 整合 Froala Editor 3
springboot项目中使用 Froala Editor 3,参考官网文档:https://www.froala.com/wysiwyg-editor/docs/overview 下载文件后,引入c ...