Зарегистрирован: Пн май 02, 2011 20:17:19 Сообщений: 36 Откуда: Средняя Волга
Рейтинг сообщения:0
oleg110592 писал(а):
Похоже, с выходом новых микроконтроллеров, наконец таки прошло время создавать конструкции "стоя и в гамаке"...
Хорошо что еще остались такие увлеченные и активные люди Значит еще не все потеряно. Вот еще бы с таким же энтузиазмом не буржуйские изделия осваивали а свои собственные. А то "завтра" отключат буржуляндию и....... Но своих собственных или нет или все для войны и для победы, правда над кем не понятно Всем позитива. И если у вас что-то получается с STM8-32-... выкладывайте примеры, найденные грабли и тд. Просвещайте народ так сказать. Глядишь и народ потянется, вырастет количество примеров и конструкций, а то и ранее и сейчас с этим на STM-ах напряженка.
На примере темы тутошной AVR видно что выкладывание примеров, видеоуроков, писание книжек, плюс глубокомысленные изречения местных гуру до добра не доведут, до цугундера точно доведут . Уж лучше даташит, да его вечный спутник референс мануал, чтоб не растекаться мыслью по древу...
Код для работы TIM1 в качестве энкодера вначале, чтоб не изобретать велосипед, поискал готовый и нашел у японца: http://stm8sdatasheet.web.fc2.com/STVD- ... CODER.html там еще и uart задействован... Но этот код с использованием SPL, выдрал из ненужной мне SPL кода работу напрямую с регистрами, кому надо тоже может проделать - хорошая разминка для мозгов, заодно и документация лучше осваяется.
помогите с сайтом st разобраться вот открываю страничку с пакетом примеров https://my2.st.com/content/my_st_com/en ... are-scroll там есть раздел GET SOFTWARE по логике там должна быть возможность загрузить примеры но у меня нет никаких линков
вопрос у STM8S есть машинные команды для арифметических операций с 2х и 4х байтными значениями? спрашиваю чтобы понять - порядок байт big indian в IAR это особенность компилятора IAR или особенность именно микроконтроллера
В документации IAR написано, что порядок байт можно поменять использую #pragma однако если это сделать в простой программе то она перестает работать
Карма: 16
Рейтинг сообщений: 198
Зарегистрирован: Вс дек 02, 2012 16:58:33 Сообщений: 923 Откуда: от туда
Рейтинг сообщения:0
У STM8S порядок байтов big endian и ИМХО не изменяется. Команды сложения и вычитания двухбайтовых чисел точно есть. Также есть команда умножения однобайтовых чисел с двухбайтовым результатом.
а флаг EOP не нужно проверять? Он у меня почему-то остается в нуле
если я правильно понял то использование __eeprom сильно удобнее. Можно размещать много переменных и они автоматически разместятся в отличии от location который нужно руками контролировать во вторых __eeprom позволяет инициализировать переменные в eeprom. в третьих (если верно понял) операция записи становится с точки зрения Си такой же точно как при работе с RAM
но вот только не могу найти описание. Линкер ругается на отсутствие опимсания трех спец функций которые нужно описать документация отсылает к прототипам в файле stm8/src/lib/eeprom_util.c у меня этого файла нет, в этой папке есть архив EWSTM8-library-source.exe возможно файл в архиве, но архив запаролен
в поисковике ничего найти на этот счет не могу, похоже никто не разобрался как __eeprom использовать или я плохо искал?
значит использование pragma в IAR для изменения порядка ни к чему хорошему не приведет и буду тогда ручками при приеме.передачи переворачивать
Интересно, а можно ли включить эту прагму локально, когда область ее действия будет ограничена, скажем, одним программным блоком? Получится таким образом раскладывать входящий поток двухбайтовых значений в правильном порядке? Например, вытаскивая калибровочные данные из того же BMP180, приходится вручную переставлять байты, а так бы это можно было свалить на компилятор.
Надо будет на досуге попробовать. Правда не понятно, что будет происходить с локальными переменными длиной больше одного байта внутри этого блока, случись их там использовать. Типа, счетчиков цикла, указателей и пр.
нету там SPL - просто хидер не иаровский а от производителя - "stm8s.h", мне он кажется удобнее. Тут уже была полемика про иаровские хидеры - но микроэлектронный мир оказывается вовсю избавляется от такого подхода в названиях регистров и битов: http://processors.wiki.ti.com/index.php ... SP432CMSIS
Для bmp180 это не особо то и нужно, там вме равно логика расчета по байтам Если конечно там так же как с bmp085 С bmp085 у меня проблем не возникло
В EEPROM-е BMP085/BMP180 одиннадцать двухбайтовых констант (знаковое и беззнаковое целое, а никакие не байты), где порядок следования младших и старших половинок обратный, если сравнивать его с порядком следования байт в МК. Есть тут проблема или нет -- вопрос другой, но вытянув эти значения из датчика, байты приходится менять местами вручную. Если заюзать на этом участке кода соответствующую прагму, то можно попробовать спихнуть это занятие на компилятор.
В EEPROM-е BMP085/BMP180 одиннадцать двухбайтовых констант
в моей библиотеке одна функция по чтению двухбайтного числа, логика вся там в одном месте обмен по I2C все равно байтами, а уж в каком порядке байты укладывать без разницы - их по любому укладывать в этой части мне даже не пришлось переделывать код после AVR, хоть там и порядок другой конструкции типа ниже работают в любом случае верно:
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения