本帖最后由 南来之风 于 2020-12-31 23:19 编辑
非常感谢论坛提供了一次难得的初次体验PIC单片机的机会。官网的资料是非常详细的,对于这款Curiosity Nano,建议从Github上开始学起来。
https://github.com/microchip-pic-avr-examples/pic16f15244-pwm-led-blink
首先是环境的搭建:
正确安装好驱动后,在端口中应该可以看到“Curiosity Virtual COM Port”
开发环境安装好后,首先打开MPLAB XIDE5.40,软件是自动识别我们这款板子,而且硬件资料,软件demo一应俱全,非常的便利!
转到Git上,试着运行一个pwm-led-blink-master的项目,下载后先build一个工程
成功后,把程序下载到板子上。
与此同时,把GND和RA2引脚引出,连接到一个简易示波器的输入端,可以看到PWM的方波驱动LED闪烁,在简易示波器上显示出响应的波形。
在例程的基础上,增加了几个不同占空比的值,目前占空比可以选择0,12,25,37,50,62,75,88,100
代码比较糙,但还是贴出来了
uint16_t Array_dutyCycle[] =
{0x0000,0x007F,0x00FA,0x177,0x01F4, 0x0271,0x02EE,0x036A,0x03E7};
uint16_t i;
uint8_t index = 0;
int8_t direction = 1;
void main(void)
{
SYSTEM_Initialize(); // Initialize the device
INTERRUPT_GlobalInterruptEnable(); // Enable the Global Interrupts
INTERRUPT_PeripheralInterruptEnable(); // Enable the Peripheral Interrupts
while(1){
if(direction == 1){
if(index != 8)
PWM3_LoadDutyValue(Array_dutyCycle[++index]);
else{
direction = -1;
PWM3_LoadDutyValue(Array_dutyCycle[--index]);
}
}
else{
if(index != 0)
PWM3_LoadDutyValue(Array_dutyCycle[--index]);
else{
direction = 1;
PWM3_LoadDutyValue(Array_dutyCycle[++index]);
}
}
for(i = 5120; i!=0;i--);
}
}
最终的效果如下:
可以看出PWM的波形占空比变化时候LED0的亮度也随之变化。
|