Программирование STM8
- Сообщения: 6452
- Зарегистрирован: Пт сен 13, 2013 13:11:31
- Реклама
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
Добрый день.
Прикупил платку на Али с МК STM8S003F3P6, и китайский ST-LINK, решил побаловаться. Поставил стулсет, написал программку помигать светодиодом. Светодиод - между общим и ногой PC7.
Кварц решил не впаивать, т.к на борту МК целых два встроенных тактовых генераторов.
Программка успешно собралась, запрограммировалась, после отключения программатора диод замигал. Решил, что все получилось.
Потом решил поправить значение, загружаемое в регистр X, чтоб мигал как-то иначе. Но ничего не изменилось, даже, запись $0000 ничего не изменила. Программа не работает.
Собственно, что здесь не так?

Возникли и другие вопросы:
1. Как понять, от чего именно тактируется МК.
2. Как определить длительность машинного цикла (без этого нельзя ничего толком написать).
3. Почему STVP не может стереть контроллер (все серое), но при этом запись не вызывает никаких ошибок.
Прикупил платку на Али с МК STM8S003F3P6, и китайский ST-LINK, решил побаловаться. Поставил стулсет, написал программку помигать светодиодом. Светодиод - между общим и ногой PC7.
Кварц решил не впаивать, т.к на борту МК целых два встроенных тактовых генераторов.
Программка успешно собралась, запрограммировалась, после отключения программатора диод замигал. Решил, что все получилось.
Потом решил поправить значение, загружаемое в регистр X, чтоб мигал как-то иначе. Но ничего не изменилось, даже, запись $0000 ничего не изменила. Программа не работает.
Собственно, что здесь не так?
Возникли и другие вопросы:
1. Как понять, от чего именно тактируется МК.
2. Как определить длительность машинного цикла (без этого нельзя ничего толком написать).
3. Почему STVP не может стереть контроллер (все серое), но при этом запись не вызывает никаких ошибок.
Трудное детство, стальные игрушки.
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
что вам даст длительность машинного цикла?Голимый писал(а):2. Как определить длительность машинного цикла (без этого нельзя ничего толком написать).
чтобы понять сколько исполняется та или иная строка Си кода придется поднимать листинг и по даташиту собирать длину команд
длительность команд важна только на критическом пути, где важно успеть выполнить критически операции время исполнения которых соизмеримо с физическими возможностями контроллера
то есть близко к real time
в большинстве случаев достаточно запустить таймер с понятной длительностью периода и использовать его для мерила времени
- Реклама
Язык не "С", язык - Ассемблер. Длительность каждой команды критически важнаяaxillent писал(а): чтобы понять сколько исполняется та или иная строка Си кода придется поднимать листинг и по даташиту собирать длину команд
Например, у МК AT89C51, длительность машинного цикла = 1 / (F кварца / 12) При кварце 12 мгц, длительность машинного цикла будет 1 мксек. А у STM8 как?
Трудное детство, стальные игрушки.
у stm8 сколько будет выполняться последовательность команд так просто не определяемо, такие дела. Если время выполнения критично, и по таймеру выходит слишком медленно - возьмите несколько другой контроллер.
http://we.easyelectronics.ru/STM8/pogov ... -stm8.html
http://we.easyelectronics.ru/Deer/poche ... -stm8.html
http://we.easyelectronics.ru/STM8/pogov ... -stm8.html
http://we.easyelectronics.ru/Deer/poche ... -stm8.html
- Сообщения: 616
- Зарегистрирован: Вс ноя 01, 2015 13:13:49
1. Заглянуть в CLK->SWR1. Как понять, от чего именно тактируется МК.
2. Как определить длительность машинного цикла (без этого нельзя ничего толком написать).
3. Почему STVP не может стереть контроллер (все серое), но при этом запись не вызывает никаких ошибок.
2. Как обычно.
3. Так его сделали.
Не поможет. Неточности в документации и конвейер сделают своё грязное дело.придется поднимать листинг и по даташиту собирать длину команд
Да так же. 1 / Fclk.Например, у МК AT89C51, длительность машинного цикла = 1 / (F кварца / 12) При кварце 12 мгц, длительность машинного цикла будет 1 мксек. А у STM8 как?
Чушь. Для большинства задач это и даром не нужно. Для остальных юзать железо МК. Я например таких задач не могу представить чтобы пришлось юзать другой камень из-за критичности по времени.Если время выполнения критично, и по таймеру выходит слишком медленно - возьмите несколько другой контроллер.
программный USB например.scorpi_0n писал(а):Я например таких задач не могу представить чтобы пришлось юзать другой камень из-за критичности по времени.
- Сообщения: 616
- Зарегистрирован: Вс ноя 01, 2015 13:13:49
считайте как хотите
тот же v-usb - решение распространенное и востребованное. Как, например, вы предложили бы делать простенький usb-hid? Искать чип с аппаратным USB вместо тиньки? Та и мало ли чего там у Голимого, вряд ли ему надо только светодиодиком помыргать с такими запросами, хотя кто знает.
Хочется освоить новый МК. Микроконтроллер новый, пока что "страшный", довольно запутанный. Не вечно же под 51 быдлокодить.arkhnchul писал(а):Та и мало ли чего там у Голимого, вряд ли ему надо только светодиодиком помыргать с такими запросами, хотя кто знает.
Непредсказуемость времени исполнения уже напрягает, т.к пишу с оглядкой на время исполнения, и неважно - светодиодом помигать, или USB эмулировать. Заводить машинный таймер ради 5 мксек задержки кажется непродуктивной идеей.
Трудное детство, стальные игрушки.
- Сообщения: 616
- Зарегистрирован: Вс ноя 01, 2015 13:13:49
Никто этим не заморачивается ни Микрочип ни СТМ ни другие. Это чисто атмэловский изврат. Хотя Микрочип и пошустрее ногами дрыгает.тот же v-usb - решение распространенное и востребованное. Как, например, вы предложили бы делать простенький usb-hid? Искать чип с аппаратным USB вместо тиньки?
Это порочная практика и прямое наследие асмописательства.Непредсказуемость времени исполнения уже напрягает, т.к пишу с оглядкой на время исполнения
Это самая продуктивная идея. Это просто нужно принять и осознать. Вся мощь СТМ именно в периферии а не в привычном ногодрыге.Заводить машинный таймер ради 5 мксек задержки кажется непродуктивной идеей.
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
А чего искать, есть например простенький 20-ногий STM32F042, работает с USB без кварца. Можно не только usb-hid, а даже простенький 480kSps usb осциллограф сделать: http://tomeko.net/miniscope_v2e/arkhnchul писал(а): Как, например, вы предложили бы делать простенький usb-hid? Искать чип с аппаратным USB вместо тиньки?
- Сообщения: 616
- Зарегистрирован: Вс ноя 01, 2015 13:13:49
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
добавлю:
для версий IAR >= 2.10 микроконтроллеров STM8 есть в свободном скачивании плагин для Eclipse. Интересно почему за столько лет для AVR плагина IAR не сделал, а тут молодые микроконтроллеры и уже сделали - наверное видит IAR перспективу.
Eclipse Mars поддерживается, проверил - работает. Удобства: проект несложно создать, настройки проекта - практически все как в IAR можно настроить, хороший редактор кода, вполне удобная ИДЕ - на слабых пк может и долговато стартует, во время работы тормозов не заметил. Отладка пока не поддерживается.
Скачать тут: http://eclipse-update.iar.com/updatesites.html
Инструкция по онлайн инсталляции тут: http://eclipse-update.iar.com/plugin-ma ... stall.html
для версий IAR >= 2.10 микроконтроллеров STM8 есть в свободном скачивании плагин для Eclipse. Интересно почему за столько лет для AVR плагина IAR не сделал, а тут молодые микроконтроллеры и уже сделали - наверное видит IAR перспективу.
Eclipse Mars поддерживается, проверил - работает. Удобства: проект несложно создать, настройки проекта - практически все как в IAR можно настроить, хороший редактор кода, вполне удобная ИДЕ - на слабых пк может и долговато стартует, во время работы тормозов не заметил. Отладка пока не поддерживается.
Скачать тут: http://eclipse-update.iar.com/updatesites.html
Инструкция по онлайн инсталляции тут: http://eclipse-update.iar.com/plugin-ma ... stall.html
Без отладки чем она лучше Notepad++ ?
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Особо ничем, выше написал удобства - Eclipse это IDE, Notepad++ это редактор. Под Eclipse существуют плагины под разные микроконтроллеры и разные компиляторы. Eclipse как основу под свои IDE выбрали такие компании, как Atollic, NPX, Freescale, Silicon Labs, Infineon... Это ж неспроста. На основе Notepad++ IDE не встречал.
ARM для MDK-ARM плагин Eclipse тоже сделал. http://www.keil.com/support/man/docs/ec ... plugin.htm
Подождем может IAR отладку Eclipse для STM8 сделает, для STM32 ST-LINK поддержку в Eclipse уже сделали.
ARM для MDK-ARM плагин Eclipse тоже сделал. http://www.keil.com/support/man/docs/ec ... plugin.htm
Подождем может IAR отладку Eclipse для STM8 сделает, для STM32 ST-LINK поддержку в Eclipse уже сделали.
Но без отладки она превращается в простой блокнот.



