找回密码
 立即注册
楼主: wszjw2

【已解决】为何ISP中定时器计算器给的程序没有用

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-11-28 17:13:43 | 显示全部楼层
...你一直在中函数的循环里面初始化定时器,,,想要干嘛?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2025-04-28 10:23:12

11

主题

93

回帖

469

积分

中级会员

积分
469
发表于 2024-11-28 17:13:46 | 显示全部楼层
王*** 发表于 2024-11-28 17:10
1.如果想定时比较长的,可以使用单片机的RTC功能。
2.一般是用来做PPM(脉宽控制,舵机常见控制信号)的 ...

好的好的,我把定时器问题学明白了就去整RTC
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2025-04-28 10:23:12

11

主题

93

回帖

469

积分

中级会员

积分
469
发表于 2024-11-28 17:14:25 | 显示全部楼层
_奶*** 发表于 2024-11-28 17:13
...你一直在中函数的循环里面初始化定时器,,,想要干嘛?

把初始化放外面也没用,也是亮起来就灭不下去了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:40:57
已绑定手机

15

主题

630

回帖

730

积分

高级会员

积分
730
发表于 2024-11-28 17:14:25 | 显示全部楼层
这能行?
截图202411281714163531.jpg
STC 666 888
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2025-04-28 10:23:12

11

主题

93

回帖

469

积分

中级会员

积分
469
发表于 2024-11-28 17:15:47 | 显示全部楼层

放外面也没用所以放里面试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-11-28 17:16:44 | 显示全部楼层
而且你是肉眼看小灯么?你能看到ms 或者 us 级别的小灯亮灭么0.0
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2025-04-28 10:23:12

11

主题

93

回帖

469

积分

中级会员

积分
469
发表于 2024-11-28 17:22:04 | 显示全部楼层
_奶*** 发表于 2024-11-28 17:16
而且你是肉眼看小灯么?你能看到ms 或者 us 级别的小灯亮灭么0.0

懂了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-11-28 18:32:00 | 显示全部楼层
wsz*** 发表于 2024-11-28 17:11
刚刚发现ISP的程序还是不行灯一直亮着

time1_init()放while前面, P20=~P20;时间太快根本反应不过来啊,表现是led长亮。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2025-04-28 10:23:12

11

主题

93

回帖

469

积分

中级会员

积分
469
发表于 2024-11-29 15:56:12 | 显示全部楼层
本帖最后由 wszjw2 于 2024-11-29 16:06 编辑
so*** 发表于 2024-11-28 18:32
time1_init()放while前面, P20=~P20;时间太快根本反应不过来啊,表现是led长亮。 ...

嗯嗯!这个问题解决了,但是关于应用方面有点问题。现在是有四个模式,其中只有一个模式需要用到T2定时器,其他模式下需要关断计时,我目前的程序是这么写的,定时器方面没啥问题,就是不知道该怎么设置才能在切换模式时就把定时器给一起关了
  1. while(1)
  2.         {                        
  3.                 if(mode==0)//P27常暗
  4.                 {
  5.                 P25=0;P24=1;P23=1;P22=1;
  6.                 P27=1;
  7.                 }
  8.                 else if(mode==1)//P27常亮
  9.                 {
  10.                         P27=0;
  11.                         P25=1;P24=0;P23=1;P22=1;
  12.                 }
  13.                 else if(mode==2)//P27每2分钟亮15秒
  14.                 {
  15.                         P25=1;P24=1;P23=0;P22=1;
  16.                         
  17.                         AUXR |=0x10;
  18.                 }
  19.                 else if(mode==3)//P35按下时P27亮15秒
  20.                 {
  21.                         P25=1;P24=1;P23=1;P22=0;        
  22.                         
  23.                         if(P35==0)
  24.                         {
  25.                                 P27=0;
  26.                                 TR0=1;
  27.                         
  28.                         }
  29. void exti0() interrupt 0 //
  30. {        
  31.         P27=1;
  32.         mode++;
  33.         P26=~P26;
  34.         if(mode>4)mode=0;
  35. }
  36. void time0() interrupt 1//15秒后打开T2和P27,关停T0
  37. {
  38.         static u16 i,MS;//定义静态变量i
  39.         i++;
  40.         TL0=0xE0;
  41.         TH0=0xB1;
  42.         if(i==100)
  43.         {
  44.                 P21=~P21;
  45.                 MS++;
  46.                 i=0;
  47.         }
  48.         if(MS>15)
  49.         {
  50.                 P27=1;
  51.                 MS=0;
  52.                 AUXR |= 0x10;
  53.                 TR0=0;
  54.                
  55.         }
  56. }
  57. void time2() interrupt 12 //定时器2中断函数,2分钟后打开T0,同时关停T2
  58. {
  59.         sec++;
  60.         P20=~P20;
  61.         if(sec>15)
  62.         {
  63.                 P27=0;
  64.                 sec=0;
  65.                 TR0 = 1;
  66.                 AUXR ^= 0x10;
  67.         }
  68. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2025-04-28 10:23:12

11

主题

93

回帖

469

积分

中级会员

积分
469
发表于 2024-11-29 15:57:46 | 显示全部楼层
_奶*** 发表于 2024-11-28 17:05
1.定时15分钟这个 可以这么做。通过计数变量的方式你可以定义到天荒地老
2.你说的这个功能我没有测试过, ...

能否帮忙看看最新的代码一点点应用方面的问题
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 06:51 , Processed in 0.456130 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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