全部学习汇总:https://github.com/GreyZhang/PIC18F
说起来,LED闪烁这样的功能的确是太入门了级别了。或许由于简单,这个在一定程度上是嵌入式的hello world。有很多嵌入式工程师自嘲说最是点灯工程师或许也是因为这个简单,因此用以自嘲说自己的技术初级。
本来,不打算做这个初级的小结了。但是,这次有点小故事。我从某宝上买了一个开发板,PIC18F4580的MCU,上面带着4颗LED。提供的demo里面,有LED闪烁的程序。我烧录之后,发现只有2颗在闪而且状态异常。难道是板子坏了?
尝试缩小软件的问题范围,发现前两个LED闪烁,加上第三个居然让第二个不闪了。这么看来,肯定是软件有问题了。
店家服务周到,给了中文版本的芯片手册。看了半天,一头雾水,甚至觉得他们提供的例程也没问题。后来觉得,这个中文的芯片手册好像优点干巴巴的少点什么。于是,找了英文的翻看。很顺利,三分钟直接解决问题:店家的例子用错了寄存器!
我自己修改过的代码,也传到了我的github学习笔记repo中。也不能够保证百分百OK,但是至少目前的4颗LED工作还是OK的。
例程里面乱起八糟的其他的代码也有一堆,冗余代码也有,都是小问题了。好在,等已经闪了!
这次,主要的问题点不做详细描述了,关键diff如下:
不知道其他人使用这个板子学习的时候又会是一个什么状态呢?