打印
[MCU]

新手求教:定时器0控制LED灯闪烁不作用

[复制链接]
611|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
glennzou|  楼主 | 2019-9-8 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机型号:PIC16LF1559,定时250ms,LED口为RC5,代码如下:
#include<pic.h>
#include <xc.h>
#pragma config FOSC = INTOSC   
#pragma config WDTE = OFF  
#define uint unsigned int

void main()
{
    uint num;
    TRISC = 0xdf;
    OPTION_REG = 0x08;
    RC5 = 0;
    while(1)
    {
        if(TMR0IF == 1)
        {
            TMR0IF =0;
            num++;
            if(num == 976)
            {
            RC5 =~RC5;
            num =0;
            }
        }
    }
   
}

使用特权

评论回复

相关帖子

沙发
airwill| | 2019-9-8 15:12 | 只看该作者
        if(TMR0IF == 1)
这个写法可能有问题,  或者这个标志会被中断服务自动清零

也许       if(TMR0IF != 0)   能解决问题

使用特权

评论回复
板凳
glennzou|  楼主 | 2019-9-8 17:04 | 只看该作者
airwill 发表于 2019-9-8 15:12
if(TMR0IF == 1)
这个写法可能有问题,  或者这个标志会被中断服务自动清零

那如果写成if(T0IF ==1),这样写有问题吗?

使用特权

评论回复
地板
glennzou|  楼主 | 2019-9-8 23:36 | 只看该作者
airwill 发表于 2019-9-8 15:12
if(TMR0IF == 1)
这个写法可能有问题,  或者这个标志会被中断服务自动清零

我找到原因了,这个RC5端口与模拟口复用,所以需要将此端口模拟口初始化ANSEL

使用特权

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

本版积分规则

1

主题

6

帖子

0

粉丝