[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】:MCC配置定时器中断

[复制链接]
32501|5
 楼主| gaoyang9992006 发表于 2021-9-13 13:10 | 显示全部楼层 |阅读模式
本帖最后由 gaoyang9992006 于 2021-9-13 14:52 编辑

PIC18F16Q41 Curiosity Nano 本次测试通过MCC配置定时器0或1,实现LED(RC1)闪烁。
经过测试发现,我配置好的TMR0,并在中断回调led闪烁函数,发现LED一直亮,不闪。
同样的设置TMR1,发现LED正常闪烁。
系统时钟源与TMR1的配置如下图所示

如下设置,实现1S执行一次回调

然后设置LED使用的管脚为输出模式

最后点生成代码按钮,生成MCC配置好的代码文件

然后我们在main.c文件中完成LED回调。完整代码如下
  1. #include "mcc_generated_files/mcc.h"

  2. void led(void)
  3. {
  4.     LED_Toggle();
  5. }

  6. void main(void)
  7. {
  8.         SYSTEM_Initialize();

  9.         INTERRUPT_GlobalInterruptEnable();

  10.         TMR1_SetInterruptHandler(led);

  11.         while (1)
  12.         {
  13.         // Add your application code
  14.         }
  15. }
通过
  1. TMR1_SetInterruptHandler(led);
传入定时器中断10次执行一次的函数led()地址,这样,烧录后,定时器1每经过100ms就中断一次,然后MCC配置好的函数进行计数,我们设置的是10次执行一次我们的函数,当执行完十次后回调函数就通过我们传入的函数地址执行我们LED翻转任务函数。

那么朋友们,TMR0是因为什么原因,同样的设置没有实现想要的效果呢?我猜问题一定在我这。希望拿到板子的朋友们都试试。

然后我继续在TRM1的基础上继续实验,本次我同时启用TMR0和TMR1,然后还是老配方,重新生成代码,在TRM0的回调里进行LED闪烁操作,OK,搞定,工作正常。然后关闭掉MCC中启用的TMR1,更新MCC生成的代码,编译烧录,OK,又正常了,神奇不,可能之前我哪儿没设置对,或者是什么原因。
不过终于成功运行TMR0的中断了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| gaoyang9992006 发表于 2021-9-13 15:16 | 显示全部楼层
经过测试发现,MCC可能是我什么时候不小心改了里面的文件,卸载重装之后,单独做TMR0也正常了。
附上单独做TMR0中断控制LED灯闪烁的工程

  1. #include "mcc_generated_files/mcc.h"

  2. void led(void)
  3. {
  4.     LED_Toggle();
  5. }

  6. void main(void)
  7. {
  8.     // Initialize the device
  9.     SYSTEM_Initialize();

  10.     TMR0_SetInterruptHandler(led);
  11.     // Enable the Global Interrupts
  12.     INTERRUPT_GlobalInterruptEnable();

  13.     while (1)
  14.     {
  15.         // Add your application code
  16.     }
  17. }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| gaoyang9992006 发表于 2021-9-13 15:36 | 显示全部楼层
https://www.bilibili.com/video/BV1WQ4y1y7Z2/
录制了配置和编译测试过程的视频
两只袜子 发表于 2021-9-14 17:05 来自手机 | 显示全部楼层
楼主优秀啊
 楼主| gaoyang9992006 发表于 2021-9-14 18:06 | 显示全部楼层

哈哈,谢谢认可,请继续关注该板块。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2052

主题

16403

帖子

222

粉丝
快速回复 在线客服 返回列表 返回顶部