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

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

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:516
  • 最近打卡:2025-10-16 00:05:49
已绑定手机

154

主题

1889

回帖

2621

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:619
  • 最近打卡:2025-10-16 11:00:14
已绑定手机

31

主题

357

回帖

2659

积分

金牌会员

机长

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:516
  • 最近打卡:2025-10-16 00:05:49
已绑定手机

154

主题

1889

回帖

2621

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:201
  • 最近打卡:2025-10-16 11:05:25

78

主题

6779

回帖

1万

积分

超级版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:585
  • 最近打卡:2025-10-16 07:20:54
已绑定手机

86

主题

6279

回帖

1万

积分

超级版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:589
  • 最近打卡:2025-10-16 00:00:40
已绑定手机

19

主题

3269

回帖

6040

积分

论坛元老

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:516
  • 最近打卡:2025-10-16 00:05:49
已绑定手机

154

主题

1889

回帖

2621

积分

金牌会员

积分
2621
发表于 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
  • 打卡总天数:516
  • 最近打卡:2025-10-16 00:05:49
已绑定手机

154

主题

1889

回帖

2621

积分

金牌会员

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

没有设备,,
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:516
  • 最近打卡:2025-10-16 00:05:49
已绑定手机

154

主题

1889

回帖

2621

积分

金牌会员

积分
2621
发表于 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
  • 打卡总天数:585
  • 最近打卡:2025-10-16 07:20:54
已绑定手机

86

主题

6279

回帖

1万

积分

超级版主

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

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-16 19:50 , Processed in 0.125627 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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