首页 > 评测 > 与时俱进的8位单片机——Microchip Curiosity开发板评测

与时俱进的8位单片机——Microchip Curiosity开发板评测

8位   单片机   Microchip   Curiosity   PIC   
  • 作者:netlhx
  • 来源:21ic
  • [导读]
  • Curiosity开发板对于初学者及入门用户来说,功能足够,特别是结合MikroElektronika MikroBUS Adapter Click系列扩展模块,用户能够迅速建立自己的产品或实验原型,从而实现创意即产品的伟大构想。

配置内容主要包括时钟源及分频设置,这里使用默认的FOSC作为定时器1的时钟源,分频系数设置为1:8,这些都是很直观的设置。令人比较感兴趣的是右上角的时钟周期的计算,这里假设要指定2ms的定时设置,上面设置的用户预设的期望值,下面则是经过对当前时钟源的计算后得出真实值,可以看到这种设置方式的值是没有偏差的。但是调整分频系数后,有可能会得到计算值与预期值会有偏差的情况,这也符合MCU的工作原理。这是使用GUI模式设置带来的好处,直观!就这一功能而言,该工具比STM32的CubeMX工具更好用!

如果需要使用时钟中断,需要勾选Enable Timer Interrupt选项。

注意下面还有一个时钟的软件设置,这里用来指定中断回调时的软件调整设置,比如想要每500ms执行一次软件回调,则可以在这个地方输入250,经计算之后,中断的频率则实际变成了500ms一次,非常直观!

如此设置之后,就可以点击MCC界面左上角的Generate按钮来生成源代码,将用户的设置转换为实际的代码。

23.jpg

图22:MCC生成的文件

这里列出了MCC生成的所有代码。MCC检测到当前工程文件里面没有包含main,所以这里直接生成一个。当然如果用户自己写了main.c的话,MCC就不会为你添加了。

现在基本的框架及内容都已经准备好。但是要记住一点,MCC只会为你生成你指定的一些初始化代码,程序的逻辑及功能还是需要程序员来完成,所以接下来就是在MCC为我们生成的基础之上来实现自己的功能。比如,让板载的LED灯开始以一定的频率闪烁。

24.jpg

图23:用户LED原理图

这是开发板上4个用户LED灯的硬件连接图,我们准备使用D7来操作,这也是上面配置GPIO时为什么要指定RC5的输出功能的原因。上面的代码中我们已配置TMR1的定时周期为2ms,同时软件调整为250倍,这样子的话每隔500ms就会调用一次回调函数。

打开tmr1.c文件,找到void TMR1_CallBack(void)函数,添加LED状态翻转的语句,调整后的代码如下

25.jpg

图24:回调函数

这里是在回调函数里实现D7的翻转,由于时间为500ms,所以D7就会每隔500ms翻转一次状态,从而实现LED灯的闪烁效果。

不过事情还没有结束,我们还需要自己启动定时器来实现定时器的计数及回调。打开main.c,在while语句之前添加如下指令

26.jpg

图25:main函数

注意代码中的注释,大意是说,如果开启了全局或外设中断,还需要将相应的注释去掉,以打开外设或全局中断功能。在启用全局及外设中断功能的代码后面,我们添加了两条语句,一条是初始化定时器的语句,一条是启动定时器的语句。这些属于程序功能性的代码都需要我们自己来处理,MCC还没有智能到这种程度!

现在可以点击IDE中的编译并下载按钮,来将代码下载到开发板上。如果没有其它错误的话,你应该会看到类似下面的输出

27.jpg

图26:编译、下载

表明代码已下载到开发板,稍等片刻就可以看到D7开始闪烁。

以后的开发过程基本类似,即:创建一个工程文件;使用MCC来初始化基本功能;在程序中添加自己的功能。

总体来说,Curiosity开发板还是很不错的。对于初学者及入门用户来说,功能足够,特别是结合MPLAB X IDE及MCC,用户能够迅速进入状态,无需担心过多的硬件特别是寄存器级的操作细节,而是将主要精力集中在程序功能这一块,迅速实现自己想要的功能。结合MikroElektronika MikroBUS™ Adapter Click系列扩展模块,用户能够迅速建立自己的产品或实验原型,从而实现创意即产品的伟大构想。

8位机,也有自己的春天!

参考资源:

PIC16F1619资料

Curiosity资料

开发工具

本文系21ic原创,未经许可禁止转载

  • 本文系21ic原创,未经许可禁止转载!

网友评论