打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+定时器0

[复制链接]
1815|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jhcj2014|  楼主 | 2020-11-22 22:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jhcj2014 于 2020-11-22 22:45 编辑

这里简要的地说下PIC18F57Q43 CuriosityNano的定时器0的使用,当然我们得知道定时器的作用,它是用来定时的,即让MCU在我们规定的时间里进行我们需要的功能操作。
比如最简单的就是通过定时器来让LED以1s为周期的亮或灭。定时器把时间精确地计算好了后就要进行相应的功能操作,这操作的方法一般有中断函数或查询方法来实现。这里
以中断函数来实现。
程序的主流程:
初始化函数、主函数让LED先灭、启动定时器、定时完成、中断操作。
首先要先了解下TIMER0的结构,如下图,可见操作很明确这里就不再说了。

然后是对TIMER0的四个寄存器进行配置,如下所示四个寄存器:

下面是MCC配置的具体操作:





然后进入工程MAIN.C进行编辑代码,如下所示内容,是定时器01S的周期进行定时让LED闪烁:
#include "mcc_generated_files/mcc.h"
#define uchar unsigned char
#define uint unsigned int
uint num;

void TMR0_initialize();

void main(void)
{
    // Initialize the device
    SYSTEM_Initialize();
    TMR0_initialize();
    ei();

    while (1)
    {
        if(num==10)
        {
            num=0;
            PORTFbits.RF3=1-PORTFbits.RF3;
        }
    }
}
void TMR0_initialize()
{
    T0CON0 = 0x80;
    T0CON1 = 0x49;
    TMR0H = 0xC2;
    TMR0L = 0x00;
    PIR3bits.TMR0IF = 0;
    PIE3bits.TMR0IE = 1;
}
void __interrupt()_TMRO()
{
    PIR3bits.TMR0IF = 0;
    TMR0H = 0xC2;
    TMR0L = 0x00;
    num++;
}

下载到DEMO里后如下所示:


使用特权

评论回复
沙发
wsndg| | 2020-11-23 08:39 | 只看该作者
楼主nice

使用特权

评论回复
板凳
jhcj2014|  楼主 | 2020-11-24 06:32 | 只看该作者
写得还不是很详细,比如说每一行语句的意思,还有没有具体调试的细节。

使用特权

评论回复
地板
she20191204| | 2020-11-24 21:22 | 只看该作者
void __interrupt()_TMRO() {}中断函数在MPLAB X IDE里如果不用这个格式,好像编译会出错。还有就是MCC确实是个好东西,都不用自己去算。只要知道大概的套路,通过MCC就可以很快地把程序写出来。

使用特权

评论回复
5
pzsh| | 2020-11-25 10:10 | 只看该作者
MCC确实是个好东西

使用特权

评论回复
6
回复就哭哭| | 2020-11-27 23:21 | 只看该作者
都不用自己算,

使用特权

评论回复
7
回复就哭哭| | 2020-11-27 23:25 | 只看该作者
好用

使用特权

评论回复
8
回复就哭哭| | 2020-11-27 23:26 | 只看该作者
定时器

使用特权

评论回复
9
回复就哭哭| | 2020-11-27 23:37 | 只看该作者
确实不错

使用特权

评论回复
10
mxkw0514| | 2020-11-28 13:24 | 只看该作者
我按照楼主的流程,编译时出现了“Could not find latest tool pack nEdbgTool”

使用特权

评论回复
11
jhcj2014|  楼主 | 2020-11-28 20:26 | 只看该作者
mxkw0514 发表于 2020-11-28 13:24
我按照楼主的流程,编译时出现了“Could not find latest tool pack nEdbgTool”

是不是软件升级下?

使用特权

评论回复
12
正圆椭圆| | 2020-11-28 22:34 | 只看该作者
楼主下次能不能把字调小点 不过谢谢分享

使用特权

评论回复
13
BettyBerry| | 2020-11-28 22:41 | 只看该作者
谢谢楼主 跟着图片走配置好了

使用特权

评论回复
14
索尼法| | 2020-11-28 22:50 | 只看该作者
谢谢楼主 学习到很多 不过真的字体太大了

使用特权

评论回复
15
函数不想导| | 2020-11-29 23:13 | 只看该作者
定时器还是挺基础的东西的经常用得到

使用特权

评论回复
16
尼罗河L| | 2020-11-29 23:58 | 只看该作者
不错 基础不牢地动山摇

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

681

帖子

1

粉丝