首页 > 评测 > 简约而不简单的好奇心——Microchip Curiosity开发板评测
简约而不简单的好奇心——Microchip Curiosity开发板评测
- [导读]
- 现在不少人都认为,8位和16位MCU即将消亡,32位MCU性价比和功耗方面更具有优势。然而Mcicrochip并没有放弃和削减8位PIC的市场,相反地,在去年年中,Microchip推出了一款全新的Curiosity开发板。
使用MCC进行程序开发
前面介绍了在MPLAB X IDE中可以使用MCC(MPLAB Code ConConfigurator)进行软件快速开发,下面我们就重点来试试这个功能,并用MCC快速实现一个呼吸灯程序。
要使用MCC(MPLAB Code ConConfigurator),首先需要安装这个它。MCC不是一个独立的软件,它是做为MPLAB X IDE的插件使用的。在安装MPLAB X IDE时,是没有附带这个插件的,它需要我们自己安装它。
安装时,先从MPLAB X IDE的Tool菜单下,找到Plugins(插件)子菜单,进去后选择Available Plugins(可用插件),就可以看到MPLAB Code Configurator了。选中它前面的选择框,然后点击左下角的Install,就可以自动下载并安装MCC了。
安装后,需要重新启动一次MPLAB X IDE,才能正常使用MCC。在Tools菜单下的Embedded菜单下,我们就能够看到MPLAB Code Configurator。
下面我们就用MCC创建一个呼吸灯程序(LED逐渐变亮,在逐渐变暗),体验一下MCC的强大功能。首先需要创建一个MPLAB X IDE项目,创建过程和其他项目没有什么区别。
只是在仿真器这里,我们需要选择Curiosity开发板带有的Starter Kits(PR08)。
创建后,先从Tools菜单下运行MCC(MPLAB Code Configurator)。进入MCC后,我们首先就要选择需要用到的硬件模块(Modules)。它在MPLAB X IDE软件的左边中间位置,鼠标双击就可以将需要使用的模块加入到项目。
为了实现呼吸灯功能,我们需要使用到PWM功能,改变PWM的占空比来调整LED的亮度。PIC16F1619有两个PWM模块:PWM3和PWM4,我们先添加PWM3模块到项目中(如果添加PWM4就可以实现两个呼吸灯)。
添加PWM3时,会自动添加TMR2模块,因为PWM功能需要使用到定时器,PIC16F1619有六个定时器,但是只有TMR2/TMR4/TMR6支持PWM功能,默认是TMR2,也可以改用其他两个定时器。
然后是分配PWM3使用的单片机GPIO。在MPLAB X IDE软件的右上角,我们可以看到引脚管理功能。每个单片机功能模块是一行,而每个GPIO是一列。如果一个GPIO支持某个单片机的功能,就会在对应的交叉位置显示一个锁的图标,没有上锁代表引脚可以分配,锁住就代表已经分配了。
在Curiosity开发板的原理图上,我们可以看到LED使用了RA1、RA2、RA5、RC5这4个引脚。在引脚管理功能中,可以看到PWM3支持这几个GPIO,我们先选择RA1,用鼠标点击PWM3和RA1交叉对应的分配引脚后,就变为下图所示,这就代表将RA1分配给了PWM3。
在MPLAB X IDE软件的中间,按下Grenrate Code按钮,自动产生代码。因为前面我们还没有创建主程序,所以MCC还会提示是否需要创建main.c。
使用了PWM3,所以MCC会自动创建PWM3.c和PWM3.h文件。PWM3.h中包含了PWM3模块相关的接口函数,我们可以看到有两个:
void PWM3_Initialize(void);
void PWM3_LoadDutyValue(uint16_t dutyValue);
一个是PWM3初始化,它会在MCC初始化函数中自动调用。另外一个函数是PWM3_LoadDutyValue,它就是用来控制PWM3占空比的。
然后在main.c的主程序中,添加下面的代码,实现呼吸灯的功能。
while (1) {
// Add your application code
duty = 0;
while(duty <= ( 1024-16))
{
__delay_ms(20);
duty += 16;
PWM3_LoadDutyValue(duty);
}
duty = 1024;
while(duty >= 16)
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
- PID温度控制器
预算:¥700003天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥1000018小时前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥1000017小时前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥1000017小时前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000016分钟前
- 无创自动测量血压计 NIBP模块
预算:¥100007小时前