vb2002 发表于 2024-8-2 04:22:37

凌晨4点半,搞定..eeprom掉电保存搞定哈哈哈哈哈哈哈

凌晨4点半,搞定..eeprom掉电保存搞定哈哈哈哈哈哈哈

机械手电的代码有点雏形了
可以断电换挡了
不过还有点需要完善的地方,就是记忆换挡,500ms 以内开关换挡,
500ms以后打开,读取上一次的亮度
还有快速关断 2次,爆闪,3次极亮


vb2002 发表于 2024-8-2 04:26:00

4个档位,占空比分别是 1月光,5微量,15常量,55常高亮...三击250 极亮.(未完善),,掉电500ms以上读取上次占空比(未完善)

vb2002 发表于 2024-8-2 04:28:50

500ms需要 开启定时器功能
但是这里有一点没想清楚,,机械开关,关的时候,是断电的,也就是单片机没有电源,这个时候怎么计时?
另一个思路是用电容保存一点点电,,,还没想清楚.
希望大佬指点指点

嵌入式之路 发表于 2024-8-2 05:40:41

代码发出来学习下

小坤 发表于 2024-8-2 08:49:04

wnagming 发表于 2024-8-2 05:26
机械开关不要控制电源,将其接到IO口上,开关机给单片机信号,关机单片机进入省电模式 ...

是的 接外部中断引脚上。

DebugLab 发表于 2024-8-2 09:28:32

单片机不断电,进入省电模式
或刚上电的500ms内断电就换挡(上电就换挡,500ms后如没断电再换回去)
这样通电一次擦写2次EEPROM,需要注意EEPROM擦写次数10万次寿命

vb2002 发表于 2024-8-2 11:03:50

DebugLab 发表于 2024-8-2 09:28
单片机不断电,进入省电模式
或刚上电的500ms内断电就换挡(上电就换挡,500ms后如没断电再换回去)
这样通 ...


机械开关的手电必须要断电的.
关于 您说的注意eeprom擦写寿命,..您看看他说的这个对吗? 可实行吗?


vb2002 发表于 2024-8-2 11:05:50

wnagming 发表于 2024-8-2 05:26
机械开关不要控制电源,将其接到IO口上,开关机给单片机信号,关机单片机进入省电模式 ...

这个怕是不行.机械开关通常设计在手电尾部.
GND考手电桶身导电
要走大电流的. 8安左右

vb2002 发表于 2024-8-2 11:07:04

嵌入式之路 发表于 2024-8-2 05:40
代码发出来学习下

乱七八糟写的,我不好意思放出来.

void main()
{               
        char dat = 0;

        sys_init();

       
       
    UartInit();
//    IapErase(add);
//    IapProgram(add, 0);       

        state=IapRead(add);       
        if(state<=3)
        {
        state++;
        }
        else
                state=1;
       
    IapErase(add);
    IapProgram(add, state);

    UartSend(IapRead(add));

          PWMA_CCR1 = state;   
               



               
//        if(temp != 0xFF) number = temp;       
       
        while(1)
        {
      
       

            
          
               

        switch(state)
        {
                case 0 :PWMA_CCR1 = 5;   break;
                case 1 :PWMA_CCR1 = 15;   break;
                case 2 :PWMA_CCR1 = 55;   break;
                case 3 :PWMA_CCR1 = 250;   break;
                default:break;
        }

        }
       
       
}

DebugLab 发表于 2024-8-2 11:28:28

vb2002 发表于 2024-8-2 11:03
机械开关的手电必须要断电的.
关于 您说的注意eeprom擦写寿命,..您看看他说的这个对吗? 可实行吗?



那就开机瞬间状态+1,500ms后没关机就再还原
对,只有擦除消耗寿命
页: [1] 2
查看完整版本: 凌晨4点半,搞定..eeprom掉电保存搞定哈哈哈哈哈哈哈