Программирование STM8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Мудрый кот
Сообщения: 1855
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3919129#p3919129"]а если другое прерывание выдернет из этого прерывания, а потом из этого прерывание выдернет третье, а потом опять первое[/uquote]Такое невозможно в принципе. Почему - читайте описание работы контроллера прерываний.
Кратко: Если 1-е было прервано 2-м, значит у 2-го приоритет выше. А у 3-го значит - ещё выше. Менее приоритетное прерывание (или с таким же приоритетом) не может прерывать более приоритетное. Если конечно специально не стараться, перенастраивая регистры приоритетов прерываний внутри ISR.
Так что - "запрещать и разрешать" прерывания в ISR необходимо только если на каком-то участке ISR нужно запретить более приоритетные прерывания.
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев

Сообщение RusikOk »

сорри
Контактная информация:
Реклама
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

Не могу принять строку по уарт.

UART1_DeInit();
// Конфигурация UART на отправку 8 бит данных без контроля PARITY, модуль будет работать на прием и отправку.
UART1_Init( 9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
UART1_ITConfig( UART1_IT_RXNE_OR, ENABLE); // Включаем прерывание от приема данных.
enableInterrupts(); // Включаем все прерывания.
UART1_Cmd( ENABLE); // Включаем UART.

uint8_t priem[5]; // Массив куда будем принимать данные.
uint8_t count=0; // Счетчик принимаемых данных.

//Обработчик для приема данных.
INTERRUPT_HANDLER( UART1_RX_IRQHandler, 18){
if(UART1_GetFlagStatus( UART1_FLAG_RXNE)){// если прерывание по флагу готовности данных в приёмном буфере
// и флаг готовности данных сброшен - ПРИНИМАЕМ ДАННЫЕ В БУФЕР
priem[count]= UART1_ReceiveData8(); // Копируем данные в массив.
count++; // Прибавляем счетчик принятых данных.
if( count==5){count=0; // Если счетчик равен 5, то приняли все данные, сбрасываем его.
}
}
}

Строка с другого мк приходит-проверяю терминалом, но массив заполняется, только если 5 раз отправлю строку. Что тут не так?
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Для начала объявите priem и count как volatile. А дальше видно будет.

Скорость порта правильно выставлена?
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

volatile не помогло, скорость 9600 у обоих, отправляю с ESP8266 на stm8, в ардуинской проге для ESP скорость 9600 прописан и для stm8 тоже, если по первому символу в массиве делать действие-то работает же, значит принимает нормально, а чтобы по всем символам -то надо 5 раз отправлять.
Реклама
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

Всё, отбой, дело было не в бобине...принимает строку он норм, сортировка принятого...есп вначале свою инфу кидает по уарт, после этого обнулять на начало нужно массив.
Реклама
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

Сообщение sergey.UA »

Доброго времени суток, коллеги. Взялся осваивать микроконтроллеры серии STM8. Установил среду IAR, пытаюсь зашить простейшей прогой, с помощью программатора STLink контроллер STM8S105C на самодельной макетке, не выходит. Есть здесь спецы по среде IAR?
Спасибо.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев

Сообщение RusikOk »

на ноге VCAP установлен конденсатор с правильным номиналом?
вы выбрали st-Link в качестве отладчика в свойствах проэкта ИАР?
Контактная информация:
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

Сообщение sergey.UA »

С выв. 6 VCAP, конденсатор 1 мкф идет на землю.
Все так, выбираю - Options => Debugger => Driver => ST-LINC.
В качестве руководства использую одну статейку в нете, сейчас еще раз попробую все проделать, если не выйдет, опишу все по шагово, может сможете поправить меня, где я туплю.))
Спасибо.

Добавлено after 37 minutes 11 seconds:
Попутно вопрос:
В приведенном примере программы используется камень STM8S103F3P6, и в дефайне
пишется #include "iostm8s103f3.h"
На моей макетке стоит камень STM8S105C6T6, мне данную строку изменить так
#include "iostm8s105c6.h" ?
И еще, в одном источнике синтаксис с кавычками #include "_________", а в другом месте так
#include <_________> , как правильно ?

Добавлено after 1 hour 16 minutes 4 seconds:
В общем, результат такой.
-------------------------------------------------------------------------------------------------------
Вначале, на диске C => Program Fails (x86) => IAR Systems => Embedded Workbench 8.3 =>
=> stm8 создаю пустую папку projekts.
Далее, запускаю IAR как и рекомендуют, от имени администратора, и далее все так, как здесь
https://www.drive2.ru/b/1318037/
Набираю в редакторе прогу, вот от сюда
http://www.count-zero.ru/2016/iar_stm8/
только дефайн чуть подправил, так как камень чуток другой.
Сохраняю все написанное File => Save.
Подключаю к компу через STLink, макетную плату.
В конце жму Download and Debug, просит указать имя, указываю такое же.
Зачем ??!! я ведь только что сохранил, да ладно.
Что то там думает, и выдает ошибку, скрин прилагаю.
Изображение
Error while running C/C++ Compiler, это переводится как - ошибка при запуске компилятора.
Захожу в настройки компилятора, просто что бы проверить, там выбран С, вот скрин
Изображение
Что я делаю не так ?
Спасибо.
---------
Попробовал с подключенным программатором нажать просто компилировать, ( Compile ),
то в добавок к прежней, выдает еще и ошибку
searched: "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.3\stm8\inc\c\"
типа, что то там искало и не нашло ?
--------
Упс...., сейчас нашел ошибку, исправил "iostm8s105c5.h" на "iostm8s105c6.h", моя невнимательность,
сообщение об ошибках изменились, теперь так
Изображение
и STLINK пару раз моргнул зеленым светодиодом вместо красного.
Что в переводе гласит -
Не удалось запустить сеанс отладки.
Либо инициализация отладчика завершилась неудачно, либо файл «C \ ... \ blink_1.out» отсутствует, поврежден или имеет неподдерживаемый формат.
В окне журнала отладки может быть дополнительная информация.
---
Кто что думает по данному сообщению ?
Последний раз редактировалось sergey.UA Ср дек 23, 2020 12:50:48, всего редактировалось 1 раз.
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

sergey.UA писал(а):Что я делаю не так ?
Практически всё. Начиная с того, что изучаете программирование мк на непрофильном drive2

http://vital.lib.tsu.ru/vital/access/ma ... :000522729 там справа вверху "загрузить" синенькая
https://www.compel.ru/wordpress/wp-cont ... -STM8S.pdf
https://knigifb2.org/tekhnicheskaya-lit ... -djvu.html
https://portal.tpu.ru/SHARED/t/TORGAEV/ ... sobie2.pdf
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

Сообщение sergey.UA »

BlackKilkennyCat кое что исправил в заголовочном файле, ушло в предыдущее сообщение, взгляните.
Почему на непрофильном, да потому что только там смог найти более менее
подробное описание что к чему. А эту тему на радио коте только вчера нашел, уже несколько дней не получается, вот и решил здесь поспрашивать.
Еще в одном лишь месте увидел тонкости, это вот здесь
http://easyelectronics.ru/arm-uchebnyj- ... oekta.html
По поводу компиляции в hex, может из-за этого и не получается, буду пробовать.
----------
За книги и статьи спасибо. Первую ранее скачал, вторая не рассматривает среду IAR, третью читаю уже, где то 20% прочел, четвертую то же ранее скачал, лежит, буду так же осваивать.
---------
В Options => Output Converter, поставил галочку на Generate additional output, и выбрал Binary.
Основное сообщение об ошибке такое же, а вот что в логе
Изображение
По ходу не видит мой камень через SWIM интерфейс ?
Чуть позже еще раз все прозвоню и проверю на макетке.
А вы что скажете по этому логу, что может быть?
Спасибо.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 961
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда

Сообщение GARMIN »

Задай конфигурацию проекта:
Изображение
Контактная информация:
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

Сообщение sergey.UA »

GARMIN вы имеете ввиду, выбор чипа ?
Изображение
Так я его изначально выбрал.
-------------
Пробую подключить программатор STLINK-V2 с помощью утилиты напрямую к макетке. Что то какие то
проблемы, не видит камень хоть ты тресни. Я просто перед этим тусовал папку с этой прогой по диску С, возможно из -за этого глюк начался. А ранее, год назад примерно прошивал программатором пару STM32, все было гуд. Что сейчас делать, ума не приложу.(((

Добавлено after 5 hours 4 minutes 29 seconds:
В общем так, переустановил заново дрова и утилиту на STLink программатор.
Еще раз просмотрел и прозвонил макетную плату, там вроде все норм.
Подключал микроконтроллер к программатору вот по этой схеме.
Изображение
Вот сам разъем программатора.
Изображение
Нумерация пинов на программаторе и на макетке. совпадает.
Изображение Изображение
Вот в реале.
Изображение
-------------
Так вот, при попытке подключится (прочитать хоть что либо из камня) прогой ST-LINK Utility, выдает
вот такие ошибки.
Изображение
Перевел ошибку -
Не могу подключиться к цели!
Пожалуйста, выберите режим «Connect Under Reset» в Target -> Setting menu и попробуйте еще раз.
Если вы пытаетесь подключиться к низкочастотному приложению, выберите более низкий режим SWD Frecuency в меню Target -> Settings.
Пробовал как написано, в меню ставить галочку на против Connect Under Reset, пофиг,
такие же ошибки.
---------
Кто может помочь, подключайтесь.
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

мк где купили?

и это не относится к данной проблеме, но на будущее: кварц так разводить нельзя - нарушение правил помехозащищенности. У него должна быть собственная земля, а не общая.
Последний раз редактировалось BlackKilkennyCat Ср дек 23, 2020 21:31:27, всего редактировалось 1 раз.
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="sergey.UA",url="/forum/viewtopic.php?p=3946674#p3946674"]прогой ST-LINK Utility[/uquote]А давно она кроме STM32 стала STM8 понимать?
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

кстати, да. к тому же, это не просто разные ядра, это еще и разные интерфейсы, SWIM и SWD
Друг Кота
Аватара пользователя
Сообщения: 7112
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="sergey.UA",url="/forum/viewtopic.php?p=3946290#p3946290"]Доброго времени суток, коллеги. Взялся осваивать микроконтроллеры серии STM8. Установил среду IAR, пытаюсь зашить простейшей прогой, с помощью программатора STLink контроллер STM8S105C на самодельной макетке, не выходит. Есть здесь спецы по среде IAR?
Спасибо.[/uquote]
Я не спец, но попробуйте включить программный ресет в настройках IAR, или кнопочку сброса к микроконтроллеру прикрутить. И давить на нее коротко сразу после нажатия на кнопочку отладки в IAR. Или перед тем как нажать кнопочки отладки.
Астролябия-сама меряет, было бы что мерять!!!
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

Сообщение sergey.UA »

BlackKilkennyCat про кварц учту в будущем.
Камень брал здесь.
http://www.kosmodrom.com.ua/prodlist.ph ... ton=Search
--------
VladislavS, я если честно не в курсе, но вот же, указано что:
Изображение
и вот еще:
Изображение
У меня левый вариант, как на картинке.
--------
BlackKilkennyCat, в инструкции на программатор указано что мелкий разъем, это SWIM.
--------
Asmodey кнопка сброса как вы видели на макетке, у меня стоит, но как то странно получается что так
как вы рекомендуете, нужно этот камень для программирования заводить.((
----------
Вот выкладываю архив самой печатки, что бы можно было все подробнее рассмотреть. Может там что не так,
уже мозг кипеть начинает. :shock:
Спасибо что помогаете.))
Что то архив не выкладывается,- достигнут максимальный общий размер вложений. Странно.
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Ну так используйте программы, которые для stm8 указаны. ST-LINK Utility только с stm32 работает.
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

Ответить

Вернуться в «Разные вопросы по МК»