Но вот беда, в HALT контроллер жрет 40 мА (именно миллиампер).
Да, я знаю, что нужно отключать периферию и прочее, я пошел проще - для читоты эксперимента включил halt сразу после void main(void) {...
Стало 35 мА.
Нашел в интернете код, но он для STM8L, и мой компилятор не хочет жрать некоторые команды. Привожу его ниже, то, на что компилятор ругается - закомментировано. У меня IAR если что и последний SPL
C одной стороны, как бы хочется просить, что нужно для STM8S вместо этих строк. Порылся в самом SPL но к примеру аналог CLK_SYSCLKDivConfig не нашел. Есть CLK_SYSCLKConfig, но по-моему это что-то не то.void Halt_Init(void)
{
TIM1_Cmd(DISABLE);
//TIM2_CtrlPWMOutputs(DISABLE);
TIM2_Cmd(DISABLE);
//TIM3_Cmd(DISABLE);
TIM4_Cmd(DISABLE);
ADC1_Cmd(DISABLE);
//PWR_PVDCmd(DISABLE);
/* Switch to LSI as system clock source */
/* system clock prescaler: 1*/
// CLK_SYSCLKDivConfig(CLK_SYSCLKDIV_1);
// CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);
//CLK_SYSCLKSourceSwitchCmd(ENABLE);
// while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == 0);
CLK_HSICmd(DISABLE);
//CLK_HSEConfig(CLK_HSE_OFF);
/* Set STM8 in low power */
//PWR_UltraLowPowerCmd(ENABLE);
/* Set GPIO in low power*/
GPIO_LowPower_Config(); // C ЭТИМ У МЕНЯ ВСЕ В ПОРЯДКЕ, НАПИСАЛ СВОЙ, НО ОН ДАЕТ ЭКОНОМИИ В ЕДИНИЦЫ мА.
/* Stop RTC Source clock */
//CLK_RTCClockConfig(CLK_RTCCLKSource_Off, CLK_RTCCLKDiv_1);
/* Stop clock RTC and LCD */
// CLK_PeripheralClockConfig(CLK_Peripheral_RTC, DISABLE);
//CLK_PeripheralClockConfig(CLK_Peripheral_LCD, DISABLE);
}
С другой стороны, хочтся спросить, а зачем эти манипуляции с тактированием, если, по идее сама команда halt() останавливает генератор. Может я тут потрачу уйму времени на то, чтобы перевети код тактирования под STM8, а у меня в чем-то другом причина...
ЧТо за устройство? Китайский индикатор заряда аккумулятора. Хочу изменить режимы его работы, но в илу закрытости прошивки, занимаюсь ревер инжинирингом. Все уже сделал, не могу сделать главное - обеспечить микропотребление в спящем режиме. Так вот плата эта в оригинале, с китайской прошивкой в спящем режиме кушает 15 мкА. То есть проблем с железом точно нет, вопрос в том, как написать код.
Может у кого есть кусок кода "правильного" посылания контроллера на halt() ?



