找回密码
 立即注册
查看: 1690|回复: 20

写了个手电的pwm程序,每次上电都会闪一下

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:475
  • 最近打卡:2025-09-04 00:00:14
已绑定手机

153

主题

1862

回帖

2258

积分

金牌会员

积分
2258
发表于 2024-8-6 14:44:28 来自手机 | 显示全部楼层 |阅读模式
就像这样,每次上电在伟亮的情况下会闪一下,然后稳定,亮度高点的时候没感觉,就是微量特别明显
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:579
  • 最近打卡:2025-09-03 13:21:02
已绑定手机

31

主题

357

回帖

2475

积分

金牌会员

机长

积分
2475
发表于 2024-8-6 15:32:26 | 显示全部楼层
把原理图发出来呀,应该是电路设计有瑕疵
业余撸代码,专业开飞机 https://gitee.com/STC-MCU
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:475
  • 最近打卡:2025-09-04 00:00:14
已绑定手机

153

主题

1862

回帖

2258

积分

金牌会员

积分
2258
发表于 2024-8-6 15:53:07 来自手机 | 显示全部楼层
hsrzq 发表于 2024-8-6 15:32
把原理图发出来呀,应该是电路设计有瑕疵

上面有视频,就在单片机上面就会闪,,
断电换挡eeprom
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:169
  • 最近打卡:2025-09-03 22:50:50

76

主题

6683

回帖

1万

积分

超级版主

积分
14009
发表于 2024-8-6 15:53:20 | 显示全部楼层
上电路。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-03 09:00:23
已绑定手机

85

主题

6049

回帖

1万

积分

超级版主

积分
11118
发表于 2024-8-6 16:02:23 | 显示全部楼层
用新出的默认高阻的型号,检查程序是否合理
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-04 00:00:30
已绑定手机

19

主题

3264

回帖

5755

积分

论坛元老

积分
5755
发表于 2024-8-6 16:02:28 来自手机 | 显示全部楼层
有逻辑分析仪可以断开LED测Io口状态就大概知道问题在哪了。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:475
  • 最近打卡:2025-09-04 00:00:14
已绑定手机

153

主题

1862

回帖

2258

积分

金牌会员

积分
2258
发表于 2024-8-6 16:15:02 来自手机 | 显示全部楼层
梁工 发表于 2024-8-6 15:53
上电路。

没用到电路,视频里面用的最简stc下载板,
单片机用的stc8h1k17,io口用的 p11。
void Timer0_Isr(void) interrupt 1
{
        
                                if(time<=100)
                {
                                switch(dat)
                        {        
                                case 253: IapProgram(EEPROMId+1,2);break;
                                case 2: IapProgram(EEPROMId+1,16);break;
                                case 16: IapProgram(EEPROMId+1,56);break;

                                default: IapProgram(EEPROMId+1,253);break;
                        }        
                }
                else
                {

                                switch(dat)
                        {        
                                
                                case 2:  IapProgram(EEPROMId+2,dat);break;
                                case 16: IapProgram(EEPROMId+2,dat);break;
                                case 56: IapProgram(EEPROMId+2,dat);break;
                                case 253: IapProgram(EEPROMId+2,dat);break;
                                default:IapProgram(EEPROMId+2,2); break;
                        }        
                }
               


        if(time<=200) time++;
        
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:475
  • 最近打卡:2025-09-04 00:00:14
已绑定手机

153

主题

1862

回帖

2258

积分

金牌会员

积分
2258
发表于 2024-8-6 16:15:22 来自手机 | 显示全部楼层
soma 发表于 2024-8-6 16:02
有逻辑分析仪可以断开LED测Io口状态就大概知道问题在哪了。

没有设备,,
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:475
  • 最近打卡:2025-09-04 00:00:14
已绑定手机

153

主题

1862

回帖

2258

积分

金牌会员

积分
2258
发表于 2024-8-6 16:16:19 来自手机 | 显示全部楼层
DebugLab 发表于 2024-8-6 16:02
用新出的默认高阻的型号,检查程序是否合理

问题可能是在换挡逻辑上,因为用了eeprom,提前读取下一个字节



void Timer0_Isr(void) interrupt 1
{
        
                                if(time<=100)
                {
                                switch(dat)
                        {        
                                case 253: IapProgram(EEPROMId+1,2);break;
                                case 2: IapProgram(EEPROMId+1,16);break;
                                case 16: IapProgram(EEPROMId+1,56);break;

                                default: IapProgram(EEPROMId+1,253);break;
                        }        
                }
                else
                {

                                switch(dat)
                        {        
                                
                                case 2:  IapProgram(EEPROMId+2,dat);break;
                                case 16: IapProgram(EEPROMId+2,dat);break;
                                case 56: IapProgram(EEPROMId+2,dat);break;
                                case 253: IapProgram(EEPROMId+2,dat);break;
                                default:IapProgram(EEPROMId+2,2); break;
                        }        
                }
               


        if(time<=200) time++;
        
}

点评

上电二话别说先关闭输出,然后不能操作IO,读EEPROM,再打开输出  详情 回复 发表于 2024-8-6 16:17
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-03 09:00:23
已绑定手机

85

主题

6049

回帖

1万

积分

超级版主

积分
11118
发表于 2024-8-6 16:17:50 | 显示全部楼层
vb2*** 发表于 2024-8-6 16:16
问题可能是在换挡逻辑上,因为用了eeprom,提前读取下一个字节

上电二话别说先关闭输出,然后不能操作IO,读EEPROM,再打开输出
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-9-4 04:55 , Processed in 0.131580 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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