STM8S 低功耗(1)
STM8S的低功耗模式有4种。 关系如下。
本次使用的停机(HALT)
使用了内部定时器,外部中断,LED指示是否进入低功耗。
在while循环中设置如下
1 while(1) 2 { 3 if(!IR_IN) // 外部中断产生 4 { 5 执行程序... 6 7 IR_IN = 1; 8 } 9 else 10 { 11 TIM1_Cmd(DISABLE); // 关闭定时器 12 ClrLED; //关闭LED 13 _asm("halt"); // 进入停机模式 14 SetLED; // 开启LED 15 } 16 }
在主函数中检测到 外部中断了,执行相关函数。
函数自行完成后,进入else
其中如果使用halt模式,可以不写11行。如果使用WFI模式需要写11行
在else中 13行开起停机模式。
如果停机模式正常进入,LED灯是熄灭的,如果没有进入停机模式,LED灯被开启。 用来判断状态。
测试:
按键触发,外部中断引脚产生下降沿中断,点亮LED灯(在中断函数中点亮的)
当按键弹起后LED灯熄灭。。
由于测试工具限制,只能确保电流低于1ma。