找回密码
 立即注册
楼主: 江上酒酒

定时器

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-12-14 21:09:35 | 显示全部楼层
VC*** 发表于 2024-11-29 17:41
根据你的思路,这样可以做到让你的灯每50ms切换一次。

void qufj(void)
{
u8 count12;       
bit ser;       
if(TF0==1)
{
count12++;
//TF0=0;       

if(count12>=7)
        {
        ser=!ser;
        led=ser;
        count12=0;
        }
    }
}


void Timer0_Isr(void) interrupt 1
{

TF0=1;
TF0=0;
}

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-12-14 21:26:04 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=125052&ptid=12220][color=#999999]VCC 发表于 2024-11-29 17:41[/color][/url][/size] 根据你的思路,这样可以做到让你的灯每50ms切换一次。 [/quote]

想到个我个人认为更好的办法了

直接在中断里面加一个nop就可以了. 定时器自动TF0置1,然后自动清零

void qufj(void)
{
u8 count12;
bit ser;
if(TF0==1)
{
count12++;

if(count12>=7)
{
ser=!ser;
led=ser;
count12=0;
}
}
}

void Timer0_Isr(void) interrupt 1
{

nop();
}

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-14 21:38:41 | 显示全部楼层
vb2*** 发表于 2024-12-14 21:26
想到个我个人认为更好的办法了
直接在中断里面加一个nop就可以了.  定时器自动TF0置1,然后自动清零
void  ...

那为什么不直接加一个return
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-12-14 22:09:52 | 显示全部楼层
VC*** 发表于 2024-12-14 21:38
那为什么不直接加一个return

怎么说?
还有更好的办法?
在哪里加return
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-12-14 22:10:10 | 显示全部楼层
VC*** 发表于 2024-12-14 21:38
那为什么不直接加一个return

我试了.加nop时间不准
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-14 22:21:26 | 显示全部楼层
vb2*** 发表于 2024-12-14 22:09
怎么说?
还有更好的办法?
在哪里加return

这个NOP替换成return

感觉应该是等效的
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-12-14 22:25:11 | 显示全部楼层
VC*** 发表于 2024-12-14 22:21
这个NOP替换成return

感觉应该是等效的

不准时.还是这样比较准时, 有啥副作用吗? 和flag标志位相比
void qufj(void)
{
u8 count;       
bit ser;       

        if(TF0)
        {
        count++;       
        TF0=0;

       
        }
        if(count>=20)
                {       
        UartSend(count);
        ser=!ser;
        led=ser;
        count=0;
                }

}
void Timer0_Isr(void) interrupt 1
{
//        _nop_();
TF0=1;
}
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 11:21 , Processed in 0.138883 second(s), 89 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表