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,我们可以用不多的语句把循环体直接描述出 ...
随机推荐
- 第10组 Alpha冲刺(1/6)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 史恩泽(组长) 过去两天完成了哪些任务 描述 了解了反馈机制的实现原理 确定好算法的框架 对接口的规范化进行学习 展示Gi ...
- 【软工实践】Alpha冲刺(3/6)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 对推送模块进行详细划分 基于用户的协同过滤,寻找更感兴趣的话题 学习API文档 ...
- google chrome 浏览器插件
如果感觉浏览器(chrome)的背景是白色太亮太刺眼,可以先在 设置->外观->主题背景 里选择 oceanic,将浏览器头部颜色设置为海蓝色.然后再安装插件 “眼睛护航”,改变所有网页的 ...
- NPAPI绘图和事件处理
https://developer.mozilla.org/en-US/docs/Plugins/Guide/Drawing_and_Event_Handling 本章介绍如何确定插件实例是窗口化还是 ...
- elasticsearch 的入门
参考文档 1.全文搜索引擎 Elasticsearch 入门教程(http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html) 2.elasti ...
- Unexpected token o in JSON at position 1 报错原因
写在前面的话这个问题在之前做项目时碰到过一次,当时按照网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么原因. 可是这次又碰到了,所以这次 ...
- MyBatis:MyBatis操作MySQL存储过程
一 . 数据库中创建存储过程,并查看创建结果 1.创建存储过程 DROP procedure IF EXISTS net_procedure_request; DELIMITER $$ )) BEGI ...
- Kali Linux又增加一个顶级域名kali.download
Kali Linux又增加一个顶级域名kali.download 现阶段,kali.download只提供软件包和镜像下载.大家可以把该域名作为备选软件源来使用.形式如下: deb http://k ...
- radioButon的使用
界面: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=& ...
- Error-JavaScript-SCRIPT5007: 无法获取未定义或 null 引用的属性“style”
ylbtech-Error-JavaScript-SCRIPT5007: 无法获取未定义或 null 引用的属性“style” 1.返回顶部 - document.getElementById(&qu ...