JustRom, спасибо. В иаре это asm("halt");. А как выйти из этого режима изменению уровня на ножке?
Я так понимаю для начала надо настроить прерывание: PA_CR2_bit.C23 =1;?
Вот что написано про команду HALT в документе Programming manual.
The interrupt mask is reset, allowing interrupts to be fetched. Then the
oscillator is stopped thus stopping the CPU and all internal peripherals,
reducing the microcontroller to its lowest possible power consumption. The
microcontroller resumes program execution after an external interrupt or
reset, by restarting the oscillator,and then, fetching the corresponding
external interrupt, which is generally an I/O interrupt, or the reset vector.
Ser-B писал(а):Я так понимаю для начала надо настроить прерывание: PA_CR2_bit.C23 =1;?
Кроме этого еще есть специальный регистр для внешних прерываний.
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Всем привет. Приперло мне тут на STM8L051F3 завести бибикалку. Погуглил примеры - все какая то лажа попадалась. Даже уважаемый DI HALT в своих уроках, об этом девайсе презрительно отозвался, и ничего не привел в пример. Поэтому пришлось как следовает вкурить RM0031, и вот что получилось (код в IAR 100% рабочий):
//------------------------------------------------------------------------------
// Начальная инициализация бибикалки - без калибровки
// Нагрузка бибикалки высокоомная - вход операционника через RC цепь
// Поэтому на работу сигнала SWIM бибикалка не влияет
//------------------------------------------------------------------------------
void beeper_init(void)
{
/*
// На работу бипера не влияет
PA_DDR_bit.DDR0 = 1; // 0-й пин порта A на выход
PA_CR1_bit.C10 = 1; // режим push-pull on
CPU_CFG_GCR_SWD = 1; // Отключаем SWIM
*/
Добрый день. Помогите пожалуйста, пытаюсь прошить stm8s103f3, но ничего не получается.
Программка примитивнейшая чтобы тупо зажечь светодиод, среда IAR 1.40.1, программатор st-link v2.
< File successfully loaded. File Checksum 0x731B
> Programming PROGRAM MEMORY area...
Cut Version and Revision of device: 1.2
< PROGRAM MEMORY programming completed.
> Verifying PROGRAM MEMORY area...
Cut Version and Revision of device: 1.2
< PROGRAM MEMORY successfully verified.
Но ничего в итоге не работает, светодиод не зажигается. Read out protection запрограммировал в off. Поиск решения в гугле ничего не дал, в чем проблема?
А светодиод то у Вас как подключен, катодом или анодом к порту? Сдается мне что анодом на плюс и катодом на порт, тогда GPIOB->ODR &= ~(1<<5); Это дефолтное значения для ODR.
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Выполните по шагам программу и поглядите реальное состояние регистров порта, можно в референсе поглядеть их реальные адреса, не исключено что есть ошибки в файле описаний регистров.
В IAR есть вот такой файл #include "iostm8s103f3.h"
Перекинул на С5 - по прежнему не работает, 0 вольт на пине.
Добавлено after 27 minutes 6 seconds:
Вот чудеса. После нескольких перетыканий питания и ребута программатора оно все таки заработало. Правда странно как-то. Пока не переткнешь питание программа не заработает. В стм32 помогал обычный ресет кнопкой либо автоматически после прошивки, а тут нет.
Всем большое спасибо.
кому не сложно напишите простейший blink для STM8S003. светодиод на PA3, тактирование от внутреннего генератора. нужна не сама программа а hex файл прошивки.