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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

Буду признателен за примеры кода по работе на stm8s103f3 с uart, bmp085, dht22, ADC
polyester
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пн май 02, 2011 20:17:19
Откуда: Средняя Волга

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

Сообщение polyester »

oleg110592 писал(а):Похоже, с выходом новых микроконтроллеров, наконец таки прошло время создавать конструкции "стоя и в гамаке"...

Хорошо что еще остались такие увлеченные и активные люди :)) Значит еще не все потеряно. Вот еще бы с таким же энтузиазмом не буржуйские изделия осваивали а свои собственные. А то "завтра" отключат буржуляндию и....... Но своих собственных или нет или все для войны и для победы, правда над кем не понятно :dont_know: Всем позитива. И если у вас что-то получается с STM8-32-... выкладывайте примеры, найденные грабли и тд. Просвещайте народ так сказать. Глядишь и народ потянется, вырастет количество примеров и конструкций, а то и ранее и сейчас с этим на STM-ах напряженка.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

На примере темы тутошной AVR видно что выкладывание примеров, видеоуроков, писание книжек, плюс глубокомысленные изречения местных гуру до добра не доведут, до цугундера точно доведут :) . Уж лучше даташит, да его вечный спутник референс мануал, чтоб не растекаться мыслью по древу...

Код для работы TIM1 в качестве энкодера вначале, чтоб не изобретать велосипед, поискал готовый и нашел у японца:
http://stm8sdatasheet.web.fc2.com/STVD- ... CODER.html
там еще и uart задействован...
Но этот код с использованием SPL, выдрал из ненужной мне SPL кода работу напрямую с регистрами, кому надо тоже может проделать - хорошая разминка для мозгов, заодно и документация лучше осваяется.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

помогите с сайтом st разобраться
вот открываю страничку с пакетом примеров https://my2.st.com/content/my_st_com/en ... are-scroll
там есть раздел GET SOFTWARE
по логике там должна быть возможность загрузить примеры
но у меня нет никаких линков

что я делаю не так?
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

получилось скачать

вопрос
у STM8S есть машинные команды для арифметических операций с 2х и 4х байтными значениями?
спрашиваю чтобы понять - порядок байт big indian в IAR это особенность компилятора IAR или особенность именно микроконтроллера

В документации IAR написано, что порядок байт можно поменять использую #pragma
однако если это сделать в простой программе то она перестает работать
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 953
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

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

Сообщение GARMIN »

У STM8S порядок байтов big endian и ИМХО не изменяется. Команды сложения и вычитания двухбайтовых чисел точно есть. Также есть команда умножения однобайтовых чисел с двухбайтовым результатом.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

спасибо
значит использование pragma в IAR для изменения порядка ни к чему хорошему не приведет и буду тогда ручками при приеме.передачи переворачивать

еще вопрос
как указать компилятору, чтобы он константы не пихал в RAM?
или достаточно указать const?

чтобы поместил в eeprom надо писать атрибут?
типа так?

Код: Выделить всё

__eeprom int a;
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

const да
еепром имхо так удобнее:
viewtopic.php?p=2691126#p2691126
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

Спасибо! Заработало
У меня правда не SPL, поэтому немного переписал:

Код: Выделить всё

         FLASH_DUKR = 0xAE;
         FLASH_DUKR = 0x56;
         while (!FLASH_IAPSR_DUL);
         photo.max = max;
         //while (!FLASH_IAPSR_EOP);
         FLASH_IAPSR_DUL = 0; //EEPROM lock

а флаг EOP не нужно проверять? Он у меня почему-то остается в нуле

если я правильно понял то использование __eeprom сильно удобнее. Можно размещать много переменных и они автоматически разместятся в отличии от location который нужно руками контролировать
во вторых __eeprom позволяет инициализировать переменные в eeprom.
в третьих (если верно понял) операция записи становится с точки зрения Си такой же точно как при работе с RAM

но вот только не могу найти описание. Линкер ругается на отсутствие опимсания трех спец функций которые нужно описать
документация отсылает к прототипам в файле stm8/src/lib/eeprom_util.c
у меня этого файла нет, в этой папке есть архив EWSTM8-library-source.exe
возможно файл в архиве, но архив запаролен

в поисковике ничего найти на этот счет не могу, похоже никто не разобрался как __eeprom использовать или я плохо искал?
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

axillent писал(а):значит использование pragma в IAR для изменения порядка ни к чему хорошему не приведет и буду тогда ручками при приеме.передачи переворачивать

Интересно, а можно ли включить эту прагму локально, когда область ее действия будет ограничена, скажем, одним программным блоком? Получится таким образом раскладывать входящий поток двухбайтовых значений в правильном порядке? Например, вытаскивая калибровочные данные из того же BMP180, приходится вручную переставлять байты, а так бы это можно было свалить на компилятор.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

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

Сообщение scorpi_0n »

axillent писал(а):в поисковике ничего найти на этот счет не могу, похоже никто не разобрался как __eeprom использовать или я плохо искал?

Плохо искали. На казусе пару раз точно разжёвывали. Да и на изи вам уже ответили.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

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

Сообщение scorpi_0n »

a5021 писал(а):Интересно, а можно ли включить эту прагму локально, когда область ее действия будет ограничена, скажем, одним программным блоком?

Можно.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

Надо будет на досуге попробовать. Правда не понятно, что будет происходить с локальными переменными длиной больше одного байта внутри этого блока, случись их там использовать. Типа, счетчиков цикла, указателей и пр.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

Для bmp180 это не особо то и нужно, там вме равно логика расчета по байтам
Если конечно там так же как с bmp085
С bmp085 у меня проблем не возникло
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

axillent писал(а):У меня правда не SPL...

нету там SPL - просто хидер не иаровский а от производителя - "stm8s.h", мне он кажется удобнее. Тут уже была полемика про иаровские хидеры - но микроэлектронный мир оказывается вовсю избавляется от такого подхода в названиях регистров и битов:
http://processors.wiki.ti.com/index.php ... SP432CMSIS
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

axillent писал(а):Для bmp180 это не особо то и нужно, там вме равно логика расчета по байтам
Если конечно там так же как с bmp085
С bmp085 у меня проблем не возникло

В EEPROM-е BMP085/BMP180 одиннадцать двухбайтовых констант (знаковое и беззнаковое целое, а никакие не байты), где порядок следования младших и старших половинок обратный, если сравнивать его с порядком следования байт в МК. Есть тут проблема или нет -- вопрос другой, но вытянув эти значения из датчика, байты приходится менять местами вручную. Если заюзать на этом участке кода соответствующую прагму, то можно попробовать спихнуть это занятие на компилятор.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

a5021 писал(а):В EEPROM-е BMP085/BMP180 одиннадцать двухбайтовых констант


в моей библиотеке одна функция по чтению двухбайтного числа, логика вся там в одном месте
обмен по I2C все равно байтами, а уж в каком порядке байты укладывать без разницы - их по любому укладывать
в этой части мне даже не пришлось переделывать код после AVR, хоть там и порядок другой
конструкции типа ниже работают в любом случае верно:

Код: Выделить всё

word = b0 | (b1 << 8);
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

oleg110592 писал(а):нету там SPL - просто хидер не иаровский а от производителя - "stm8s.h", мне он кажется удобнее

понял
кстати выпрашиваемые мной прототипы такие:

Код: Выделить всё

int __eeprom_wait_for_last_operation(void);
void __eeprom_program_byte(unsigned char __near * dst, unsigned char v);
void __eeprom_program_long(unsigned char __near * dst, unsigned long v);

если эти функции описать то работать с EEPROM в IAR становится поще некуда используя атрибут __eeprom
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

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

Сообщение scorpi_0n »

Сказано же было, поиском!
kazus.ru/forums/showthread.php?t=14204&page=37
Последний раз редактировалось scorpi_0n Чт мар 24, 2016 17:55:43, всего редактировалось 1 раз.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

scorpi_0n нервы берегите
в моем последнем сообщении нет вопросов
Ответить

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