Это копия, сохраненная 30 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это тред реальных дешёвых рабочих лошадок, поэтому просьба авр-детям и арм-подросткам как минимум постараться не начинать свои срачи.
Только серьёзное железо, только STM8.
Выучил верилог и выёбывается. Иди ка ты на хуй и кортекс в очко себе затолкай.
800x448, 0:02
> STM8.
Помню тут один хуй создавал STM8-тред, подключал к ней индикатор 8х2 и у него работал. А я вот проебал вспышку и теперь не могу запустить.
> должен быть кроссплатформенным.
Тут же StdPeriphLibrary, а в Ардуино совсем по другому все. Короче. Пойду учить мануалы.
И что с того? От этого меняются только функции задержки и GPIO, остальное остается неизменным.
Если хочешь связываться с изучением стм, то бери стм32, например, stm32f030f4p6, они не сильно дороже и популярны (даж я применял несколько раз). стм8 для изучения и махараинга - очень тупой выбор, они созданы чисто ради индустрии, ради экономии на каждом компоненте при миллионных тиражах.
Что касается кода. Учитывай, что аврки очень просты. А STMки намного сложнее, и сделать под них универсальную либу почти невозможно, выходит либо откровенная индусятина (HAL), либо малопонятные без изучения исходников эльфийские письмена (libopencm3). Я уж молчу про нонейм всратые либы для ардуино-студии. С оптимизациями при компиляции все тоже очень хуево, код жрет много места (отчасти следствие всратых либ).
Ну и, конечно же, с учетом
>уже идёт из Поднебесной программатор
я мог бы все это не писать и просто молча сидеть и тихонько хихикать на ОП-хуя, но куда слаще будет пояснить ему, дабы осознал, в какую лужу он вступил, глядеть на реакцию и продолжать зоонаблюдения.
>по ТТХ практически ничем не выигрывает
А что, на AVR завезли аппаратные умножение/деление и сбили цену до 30₽?
А то непонятно, чего это в автомобилях и всякой массовой инклюзивной технике STM стоят, а не AVR. И глупые китайцы по части своих Godson'ов с STM сотрудничают, а не с Atmel/Microchip. Быдло инженерное небось, просто не понимает всю ценность оверпрайснутого разрекламированного говнеца с модными презентациями и топ-манагерами.
Тут не STM осваивать надо, а базовые штуки вроде тактирования и мультиплексирования. Ну и протокол дисплея — как данные принимает, как сбрасывается, какой формат. А по части STM достаточно будет правильно подать тактирование, настроить ножки да дрыгать в цикле — это всё базовое, с SPL легко делается.
SPL сильно рекомендую. STM — не AVR, очень гибко конфигурируется на ходу и без фьюзов, без SPL легко отстрелить себе ногу. Смотрю разбор системы от Матюшова — тут про конкретные биты и регистры — и тихо хуею. С ассемблером лучше повременить, тут он очень сложный.
Ещё плюс SPL — переносимость, чип можно будет поменять на другой из того же семейства (их два — S/A и L) без изменений в коде.
Ты пост-то дочитал?
Впрочем, с твоим ходом мысли, даже лень расписывать. Тебя спасет разве что лоботомия.
>которое к тому же по ТТХ практически ничем не выигрывает.
У STM8 все-таки есть преимущества: нормальная отладка через st-link, у таймеров чуть больше возможностей, ПДП, аппаратное деление, единое адресное пространство кода и данных.
>они созданы чисто ради индустрии, ради экономии на каждом компоненте при миллионных тиражах.
Верно, они так же не нужны как и авр.
>выходит либо откровенная индусятина (HAL)
Такие утверждения необходимо аргументировать. К тому же
>сделать под них универсальную либу почти невозможно
Низкоуровневая часть (LL) HAL - это совсем не универсальная библиотека, универсальна только высокоуровневая часть.
>код жрет много места
И тут ты должен дать пример, где тебе не хватило ПЗУ.
>>298879
>А что, на AVR завезли аппаратные умножение/деление
Умножение там всегда было вроде как, а аппаратное деление в STM8 медленное.
>и сбили цену до 30₽?
Ты делаешь свои поделки даже без корпусов, один микроконтроллер и все? Эти 30 рублей мизер по сравнению даже со стоимостью корпуса с батарейкой.
>С ассемблером лучше повременить, тут он очень сложный.
Ничего подобного, 6502 напоминает немного. Но ассемблер не нужен.
Но ведь stm8 не arm
>Ты делаешь свои поделки даже без корпусов, один микроконтроллер и все? Эти 30 рублей мизер по сравнению даже со стоимостью корпуса с батарейкой.
На серьёзном производстве как раз нет.
>Верно, они так же не нужны как и авр.
В 8051 треде давно уже обсудили что нужно, а что не нужно, и почему.
двачая. можно и на асме кстати с таким-то подходом
Да я не видел, что он тоже есть под линукс,. Ну и зачем мне проприетарный компилятор, если есть свободный?
Верно, обсуждали, но разве пришли к хоть каким-то выводам? Были крики: "а у нас детерминизм!", "у нас дешевле!" и даже "у нас меньше транзисторов".
Необходимость детерминизма времени выполнения команд можно опровергнуть фактом существования радстойких микроконтроллеров с кэшем. Разница в цене начинает заметно влиять только при сериях >1000 штук. А тот факт что там меньше транзисторов, важен только для разработчиков микросхем.
>>298934
У этого анона нет серьезного производства >>298855
>стм8 для изучения и махараинга - очень тупой выбор
Может у тебя есть серьезное производство?
Китайцы используют СВОИ серии мк, коих миллион.
Реинкарнации пиков, 8051 (STC), миллион более специфических. У них это стоит дешевле чем эти ваши СТМ и на все это есть китайская документация.
Пример. Буквально вчера ковырял вполне свежую модель умной зарядки под брендом camelion. Угадайте, что там за МК?
А вот такой:
http://www.samsung.com/global/business/semiconductor/file/2011/product/2010/2/18/663744um_s3p70f4_rev10.pdf
Ну и как вам такое чудо? Дохуя известное, ага.
А в серьезном железе, типа пром. оборудования, по сей день все те же 8051, авр и пики... и относительно активно стали применять ПЛИСы. Делай выводы, ОП-хуй.
Дык в этом и суть промконтроллеров, что их использует большой бизнес, где и спецы найдутся, и спеки производитель даст.
Ардуина же, при всех попытках, остаётся уделом гиков-любителей. Эдакий линукс - манит первоначальной лёгкостью и культом элиты, но для серьёзных вещей дорогой и слишком ущербный.
Впрочем, те же самые гики могут в своё время попасть в конторы, избавиться от старых профессионалов и начать продвигать продукт своей любви - как и линукс, например.
Так что ниша будет. Унылая, набитая индусами и хохлами, но будет.
STM вполне могла бы заручиться поддержкой рядовых любителей, но там считают, что самые дешёвые чипы/программаторы/девборды и бесплатные либы — более чем достаточный вклад.
Ну ты и толстяк.
Напомни, когда появился проект ардуины? Тот самый ранний, где плата еще на выводных деталях, с которого все началось. А когда массово появились СТМки?
Про вагоны АТ89 в пром. аппаратуре мне даже страшно вспоминать.
В зарядку поставили что-то еще слабее attiny, к тому же без компилятора си и однократно программируемое. Можно было обойтись несколькими триггерами, но с таким контроллером оказалось дешевле. В остальную бытовую технику часто ставят аналогичные микроконтроллеры.
Какие выводы можно сделать? Начать делать махарайки на микроконтроллерах с несколькими десятками байт ОЗУ и писать только на ассемблере, потому что компилятора си не завезли? Конечно это можно, но придется угробить на написание прошивки существенно больше времени.
>>299001
>Ардуина
Ардуина это не микроконтроллер.
>>299003
>АТ89
Это 8051, а не AVR.
Нормальные контроллеры, со своими недостатками и преимуществами.
Что понравилось:
+ Унифицированное ядро и периферия на всё семейство. А не так как в авр, где мега8 и мега328 отличаются возможностями периферии.
+ Сама периферия довольно продвинутая и логичная по сравнению с теми же мега328. Взглянуть хотя бы на таймеры.
+ Есть нормальный дешёвый отладчик.
+ Копеечная цена (ну тут кому как, сейчас многие мк относительно дешёвые)
Не понравилось:
- Новые чипы — новые баги, которые неизвестно когда исправят и исправят ли вообще. Поэтому чтение эрраты мастхэв.
- Широкая конкуренция среди мк на Cortex-M0 делает стм8 практически бессмысленным.
- STM забивает на семейство stm8, т.к. будущее уже явно не за восьмибитниками.
- Периферия кажется специально урезанной (на мой дилетантский взгляд, пусть разбирающиеся в трассировке чипов исправят). Например, определённые режимы захвата можно сделать лишь на одном-двух входах таймера, когда их есть четыре. Что мешало сделать их равноценными кроме маркетингового разделения рынка?
Сам пишу под них код под линуксом, компилирую sdcc, SPL не использую. Пока sdcc генерит неоптимальный код, но для всяких поделок хватает.
DMA есть только в stm8l и нет в stm8s.
Аппаратное умножение лишь 8bit*8bit, а деление — 16bit/16bit.
Ассемблер в стм8 просто образец божественной логичности по сравнению с ассемблером авр в плане мнемоник.
https://pastebin.com/wvZNndQA
https://pastebin.com/DAP3RErQ
Нужно изменить лишь определение подключённых пинов и функции
uint8_t read_data_pins()
void write_data_pins(uint8_t data)
Это ты компилишь в SDCC? Чота после SPL режут глаз конструкции типа
#define PIN_LOW(X) X##_PORT->ODR &= ~X вместо
GPIO_SetBits(LCDPwrPort, LCDPwrPin);
И кстати, драйвер дисплея есть на сцайте СТМ http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm8-embedded-software/stsw-stm8063.html
Написан под STM8S, но после небольшой правки идет спокойно на STM8L
>_delay_ms(1);
Уже плохо. Пока тупит эта задержка не получится делать что-то еще, например опрашивать клавиатуру.
Чтение из дисплея также бесполезно.
>КО КО КО АВР НЕ НУЖНЫ!
>КО КО КО АРДУИНОБЛЯДИ ПИДОРЫ!
>_delay_ms(1);
Я с дисплея не читаю инфу. Только флаг занятости. Мне было заёбисто изучать длительность всех команд всех возможных контроллеров. Тупые задержки в 1мс вроде стоят только при инициализации (ща с телефона пишу). Код не самый элегантный галименький, но работает. И писался с мыслью о простоте переноса на другой мк, нужно лишь исправить низкоуровневые функции дерганья ногами.
А клавиатуру я опрашиваю в прерывании по таймеру, а потом в основном цикле обрабатываю сырые данные о состоянии кнопок (антидребезг, длительность нажатия).
Sdcc далеко не эффективный компилер, коммерческим проигрывает. А после гцц так вообще как убожище. Но, що ма€мо. А вторая проблема с sdcc в том, что там линкер не умеет выкидывать неиспользуемые функции в модуле. Если у тебя есть файл с несколькими функциями и ты из него используешь одну, то остальные тоже будут включены в конечный бинарник. Выход из такого положения - один файл - одна функция олин фюрер.
Ну и ты ещё не видел мой код, со времен авр пишу в порты напрямую через
port_name->odr &= ~gpio_pin;
>Используй _delay_us, как все разумные ардуинобляди, Люк.
Это ж пмздец бессмысленный расход флеша. Когда у тебя задержка в 1мс, то прыжок в функцию задержки и возврат из неё фигня по времени.
Для какого дисплея нужна задержка в миллисекунду? Это же целая вечность.
> Для какого дисплея нужна задержка в миллисекунду? Это же целая вечность.
Ардуинодаун не палится
Это же разовая инициализация при включении.
>Тупые задержки в 1мс вроде стоят только при инициализации
Ну тогда нормально.
>Я с дисплея не читаю инфу. Только флаг занятости.
А это уже нет. Это мало чем отличается от тупой задержки.
Мой вариант:
https://pastebin.com/ZFFhfPCm
https://pastebin.com/KcnZsL9c
Хотя в нем тоже не все нормально.
>>299077
Кроме инициализации, еще при очистке 1,5 мс.
Открой даташит на ST7066. Там есть пунктик, что флаг занятости выставляется не мгновенно, а через некоторое время. >80uS. Ну а мне раз всё равно придётся ждать, то проще сразу 1мс.
Пока я разгребался с этими дисплеями, то насмотрелся всякого говна, перепробовал четыре различных вариантов инициализации (из сети, где у всех всё работало), пока не запустил эту ебалу. И то, иногда при глюках питания контроллер дисплея подвисает и не выходит в рабочий режим до перезапуска питания.
В общем, это самый уебанский дисплей с уебанским протоколом и подключением. И это говнолегаси всё тянется и тянется и никак не сдохнет. Сука, ну добавте вы в контроллер дополнительный spi или i2c, и чтоб никаких "подождите 36,7 мкс" для одной инструкции и пару лет для другой.
> насмотрелся всякого говна,
У меня пока из 10+ штук от всяких факсов/ксероксов, мозг выебал только китайский ноунэйм с али.
Как раз это самый быстрый способ пакетной выдачи в дисплей. Я выплёвываю инфу в дисплей и забываю о нём. А ты, если я правильно понял, выдаёшь на дисплей по одному символу за раз. Подход хороший, но для моей задачи (думаю, и для 99% других) хватает и моего кода, а делать ещё один конечный автомат тогда ояебал.
Маленький хинт: указатели на функции и неизменяемые данные в структуре объявляй как const. Это позволит некоторым компиляторам проделывать дополнительные оптимизации (если умеют).
Какой смысл обновлять дисплей чаще 20...30 раз в секунду? Человек большую частоту обновления не воспримет, а эти ЖКИ и того тормознее. Соответственно нет смысла выводить быстрее чем один символ за 1..2 мс. При таком подходе можно выставлять новые данные на дисплей лишь раз в миллисекунду. Тогда не придется тупить в ожидании готовности и не нужно заботиться об оптимизации.
Я тебе даже больше скажу. На винстаровских дисплеях можно норм обновлять 10 раз/сек, вот только человек так быстро информацию не воспримет. На китайских дешёвых даже 2раза в сек уже боль и наложение. Поэтому у меня дисплей обновляется лишь тогда, когда нужно.
Так GCC потому и нет для STM8, что генерируемый код толст и не влезает. Сложно найти компилятор хуже.
А выполнение самого цикла жрет такты или компилятор в код пихает 10к NOP-ов?
Очевидно, сам цикл тоже жрет такты. Можно посчитать сколько, и выставить вместо 10к такое значение, чтобы было какое-то ровное число. Сам по себе ноп в разных процессорах жрет разное количество тактов, так что надо свериться с докой.
> Любой нормальный код задержки
Как вообще грамотно организовать дилеи? Во время счета таймера останавливается выполнение всего кода, реалтайм катится к хуям. Как быть?
У ардуинодетей есть такая штука, назвали они ее millis().
Осваивается сразу после мигания светодиодом, как раз чтобы в промежутках между вкл и выкл светодиода можно было делать что-то еще.
А вообще тред очень забавный, как и ОП.
Это простейший таймер. Часто целесообразнее использовать программные таймеры, что-то вроде https://github.com/willemt/event-timer
>>299201
Конечные автоматы. Или RTOS, если автоматов не хватает.
>>299209
Если на таких микроконтроллерах как STM8, то единицы микросекунд только нопами наверное. В V-USB вроде как нопами и делали.
>Это простейший таймер. Часто целесообразнее использовать программные таймеры, что-то вроде https://github.com/willemt/event-timer
Не вижу смысла так изгаляться на малопроизводительных мк типа авр и стм8.
>Если на таких микроконтроллерах как STM8, то единицы микросекунд только нопами наверное. В V-USB вроде как нопами и делали.
Двачую.
Конечные автоматы. Вот только обычно их возникает столько, что можно заипаться их писать и разгребать (или это просто я полный быдлокодер). Если по-простому, используется аппаратный таймер для отсчёта промежутков времени, по истечении выставляешь флаг. В основном цикле проверяешь наличие флага и выполняешь/не выполняешь код. Но я всё больше склоняюсь к использованию rtos.
какие дебри? Ассемблер от 6502. Перефирия от STM32. Лучшего для изучения быть не может. А со своим ардуино ты и через 10 лет ничего знать не будешь.
>Не вижу смысла так изгаляться на малопроизводительных мк типа авр и стм8.
Что быстрее - проверить один байт на ноль или сравнить четыре (хотя можно обойтись двумя) байта? Проверка на ноль это одна команда загрузки в регистр и одна команда условного перехода. Сравнение это как минимум 8 загрузок, 4 сравнения и 4 условных перехода.
>4 сравнения и 4 условных перехода
Тут я немного ошибся, это может быть 4 вычитания с переносом и один условный переход.
>V-USB
>HID
>аудио
зачем так сложно? можно просто пердеть в динамик получится примерно тоже самое бит в бит
HID это же пакеты максимум по 64 байта раз в миллисекунду. Какое тут может быть аудио?
Винда для звуковых устройст держит стандартные 44100 и 48000 на 16 бит.
USB Audio имел в виду? Невозможно, требуется ардуина.
либу на асме? не, не стоит. пиши на C. Если что, потом критичные места на asm перепишешь. По учебникам стандартно все: Керниган и Ритчи, С. Прата. Касательно мк - пачка даташитов. Про C на мк, а точнее на stm8 - фиг знает.
Начни писать, а там по ходу дела разберешься
Пиши либу так, чтобы исправив пару строк, она запросто работала на любом контроллере. Например, весь доступ к ресурсам контроллера (чтение статусных регистров, принятие-отправка данных) сделай через макросы или отдельные функции.
Нет. SPL это всего лишь удобный доступ к битовым полям в регистрах, количество и назначение которых в разных микроконтроллерах может сильно отличаться. Таким образом SPL может дать лишь частичную переносимость в пределах микроконтроллеров одной серии.
>>299709
>весь доступ к ресурсам контроллера (чтение статусных регистров, принятие-отправка данных)
Я немного подумал и теперь склонен не согласиться.
1) Работа с I2C может быть сделана по разному — с разной обработкой ошибок (ответа ведомого), с тупыми циклами ожидания отправки, с использованием прерываний вместо тупых циклов или еще как-нибудь. Выбор конкретного способа зависит от назначения всего устройства.
2) Чтение/запись по I2C практически ни чем не отличаются для разных ведомых, а ведомых на одной линии может быть много. Зачем тогда дублировать код?
Получается что пихать работу с I2C непосредственно в "либу для работы STM8 c si7021" нет смысла. В этой либе должны быть лишь функции для вычисления результата по формуле из даташита и кучка дефайнов с адресами и кодами команд si7021.
Всё правильно говоришь. Функции для работы с и2ц должны быть универсальные и в отдельном модуле. А в модуле с кодом для датчика использовать их или создать функции-обёртки для вызова функций обмена по и2ц. Главное сильно не увлекаться, а то выйдет тормознее ардуины.
в 2к17 затачивать код под камень, чтоб прочитать датчик, орнул блядь
Она уже написана. И не мной, я под себя её скорректировал.
// файл драйвер для SI7021 и наверное подобных
#include <i2c.h>
#include <delay.h>
// регистры
#define SI7021_ADDRESS 0x40
#define SI7021_READ_TEMP 0xE0
#define SI7021_READ_RH 0xE5
#define SI7021_READ_ID1_1 0xFA
#define SI7021_READ_ID1_2 0x0F
#define SI7021_READ_ID2_1 0xFc
#define SI7021_READ_ID2_2 0xc9
#define SI7021_READ_FWREV_1 0x84
#define SI7021_READ_FWREV_2 0xB8
#define SI7021_RESET 0xFE
#define SI7021_WRITE_HEATER 0x51
float SI7021_Temperature, SI7021_Humidity;
int SI7021_getData(char Register)
{
int res = 0xFFFF;
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(Register);
i2c_start();
i2c_write((SI7021_ADDRESS << 1) | 0b00000001);
res = i2c_read(0) << 8;
res = res + i2c_read(0);
i2c_stop();
return res;
}
void SI7021_setData(char Register, char Data)
{
// int res = 0xFFFF;
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(Register);
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(Data);
i2c_stop();
//return res;
}
void SI7021_init(void)
{
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(SI7021_RESET);
i2c_stop();
//SI7021_setData(SI7021_WRITE_HEATER, 0b00000111);
//delay_ms(100);
//SI7021_setData(SI7021_WRITE_HEATER, 0b00000001);
}
char SI7021_Calculate(int Delimiter) // процедура чтения байта из датчика
{
char res = 0;
long temp;
long tempLong;
float tempFloat;
float temp1, temp2;
temp1 = SI7021_getData(SI7021_READ_RH);
if (temp1 > 0xFFFE) res = 0;
else res = 1;
//SI7021_Humidity = temp;
temp2 = SI7021_getData(SI7021_READ_TEMP);
if (temp2 > 0xFFFE) res = 0;
else res = 1;
//SI7021_Temperature = temp;
//tempFloat = SI7021_Humidity;
//alueHumi = 125.0outHumi/65536 - 6;
SI7021_Humidity = ((125 temp1) / 0xFFFF) - 6;
if (SI7021_Humidity < 0) SI7021_Humidity = 80 + SI7021_Humidity;
SI7021_Humidity /= Delimiter;
/if (SI7021_Humidity > 99)
{
SI7021_Humidity = 99;
SI7021_setData(SI7021_WRITE_HEATER, 0b00000111);
}
else SI7021_setData(SI7021_WRITE_HEATER, 0b00000001); /
//tempFloat = SI7021_Temperature;
SI7021_Temperature = ((175.72 * temp2) / 0xFFFF) - 46.86;
//= tempFloat;
SI7021_Temperature /= Delimiter;
if (SI7021_Temperature > 99999) SI7021_Temperature = 99999;
res = 1;
return res;
}
Она уже написана. И не мной, я под себя её скорректировал.
// файл драйвер для SI7021 и наверное подобных
#include <i2c.h>
#include <delay.h>
// регистры
#define SI7021_ADDRESS 0x40
#define SI7021_READ_TEMP 0xE0
#define SI7021_READ_RH 0xE5
#define SI7021_READ_ID1_1 0xFA
#define SI7021_READ_ID1_2 0x0F
#define SI7021_READ_ID2_1 0xFc
#define SI7021_READ_ID2_2 0xc9
#define SI7021_READ_FWREV_1 0x84
#define SI7021_READ_FWREV_2 0xB8
#define SI7021_RESET 0xFE
#define SI7021_WRITE_HEATER 0x51
float SI7021_Temperature, SI7021_Humidity;
int SI7021_getData(char Register)
{
int res = 0xFFFF;
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(Register);
i2c_start();
i2c_write((SI7021_ADDRESS << 1) | 0b00000001);
res = i2c_read(0) << 8;
res = res + i2c_read(0);
i2c_stop();
return res;
}
void SI7021_setData(char Register, char Data)
{
// int res = 0xFFFF;
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(Register);
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(Data);
i2c_stop();
//return res;
}
void SI7021_init(void)
{
i2c_start();
i2c_write(SI7021_ADDRESS << 1);
i2c_write(SI7021_RESET);
i2c_stop();
//SI7021_setData(SI7021_WRITE_HEATER, 0b00000111);
//delay_ms(100);
//SI7021_setData(SI7021_WRITE_HEATER, 0b00000001);
}
char SI7021_Calculate(int Delimiter) // процедура чтения байта из датчика
{
char res = 0;
long temp;
long tempLong;
float tempFloat;
float temp1, temp2;
temp1 = SI7021_getData(SI7021_READ_RH);
if (temp1 > 0xFFFE) res = 0;
else res = 1;
//SI7021_Humidity = temp;
temp2 = SI7021_getData(SI7021_READ_TEMP);
if (temp2 > 0xFFFE) res = 0;
else res = 1;
//SI7021_Temperature = temp;
//tempFloat = SI7021_Humidity;
//alueHumi = 125.0outHumi/65536 - 6;
SI7021_Humidity = ((125 temp1) / 0xFFFF) - 6;
if (SI7021_Humidity < 0) SI7021_Humidity = 80 + SI7021_Humidity;
SI7021_Humidity /= Delimiter;
/if (SI7021_Humidity > 99)
{
SI7021_Humidity = 99;
SI7021_setData(SI7021_WRITE_HEATER, 0b00000111);
}
else SI7021_setData(SI7021_WRITE_HEATER, 0b00000001); /
//tempFloat = SI7021_Temperature;
SI7021_Temperature = ((175.72 * temp2) / 0xFFFF) - 46.86;
//= tempFloat;
SI7021_Temperature /= Delimiter;
if (SI7021_Temperature > 99999) SI7021_Temperature = 99999;
res = 1;
return res;
}
>оптимизация, переписать на ассемблере...
>>299817
>float
Я конечно понимаю что на ассемблере есть смысл что-то писать только когда это повысит характеристики устройства в целом, но float все же использовать не стоит. Использование float даже не облегчает написание кода, но зато заметно тормозит и увеличивает размер кода.
>0b00000111
Этого нет в C99 ни даже в C11. Зачем на пустом месте создавать препятствия для использования других компиляторов?
>глобальные переменные, в которые функции возвращают значения.
>SI7021_Calculate при этом всегда возвращает 1
Извините, а в массовом производстве, какая разница, стм8, авр, пик, мсп430 и т.п? В чем СЕРЬЕЗНОСТЬ дешманских лоу-перфомэнс МК? Я бы еще понял, если бы оп создал тред про плис или какой-нибудь монолитный SoC, но тут тред о выборе между шилом и мылом. Да еще в ключе у кого лучше ассемблер, как сэкономить несколько тактов в алгоритме вывода на говнодисплей, и это в конце 2017 года!
Оп, извини еще раз, но сей тред - какой-то сюр и клоунада.
>Этого нет в C99 ни даже в C11. Зачем на пустом месте создавать препятствия для использования других компиляторов?
В крестах 14 есть, так что соси зуй.
>Извините, а в массовом производстве, какая разница, стм8, авр, пик, мсп430 и т.п? В чем СЕРЬЕЗНОСТЬ дешманских лоу-перфомэнс МК? Я бы еще понял, если бы оп создал тред про плис или какой-нибудь монолитный SoC, но тут тред о выборе между шилом и мылом. Да еще в ключе у кого лучше ассемблер, как сэкономить несколько тактов в алгоритме вывода на говнодисплей, и это в конце 2017 года!
Правильно подметил, в массовом производстве важна надежность. Именно поэтому в ЭБУ автомобилей вы нигде (кроме сосницких поделок ) вышеназванные МК не найдете. Там отчего-то автомотив -грейд предпочитают, c509 там, ST10, TriCore'ы. Ну не прет их в средства повышенной опасности разные сосницкие атмеги (как и прочие СТМ32 и в принципе ARM, к слову, потому как ядро у всех микроконтроллерных армов - как правило ванильное IP, то бишь не верифицированное на кучу девяток надежности и нихуя не предназначено для ответственных применений .) ставить со слетающими от малейшей помехи по питанию прошивками.
Вцелом да, тот же STM32 предоставляет огромнейшый диапазон МК: серия L с ультранизким энергопотреблением, M от простых, которые можно считать "8-битниками" семейства ARM, до йоб с DSP и высокоростным АЦП, ну и новинка - серия H на новом техпроцессе 40 нм с 1Мб ОЗУ и 2Мб флеша на борту. STM8, пики точеные и авры дроченые - это вариант для очень больших партий устройств, когда тебе надо наклепать миллион махараек и ты можешь поставить МК на 1 рубль дешевле, сэкономив таким образом 1 млн рублей.
мимо
>Вцелом да, тот же STM32 предоставляет огромнейшый диапазон МК
И все - сосницкое говно, к сожалению, годное лишь для развлекательной аппаратуры. Жаль что армы не позаботились верификацией своего ядра. Архитектура ж годная.
>сосницкие атмеги
Ясно понятно.
http://www.atmel.com/products/microcontrollers/avr/automotive_avr.aspx
http://www.st.com/content/st_com/en/products/microcontrollers/stm8-8-bit-mcus.html?querycriteria=productId=SC1244
Всем похуй на твое аутомотив говно для корыт, никто тут не собирает тракторы с автопилотом или гоночные электромобили.
В автопроме очень большая инерционность. Плюс сюда добавь огромное legacy. Ну и да, зачем что-то менять, когда уже есть рабочий и отлаженный софт. Плюс там закрытость во все поля только приветствуется.
Однако, pic'и, вполне себе успешно использовались. В последнее время и stm8 встречается даже
Я такие применяю http://ic.milandr.ru/products/mikrokontrollery_i_protsessory/1986ve1t/
Если понадобятся радиационно-стойкие, то есть http://www.dsol.ru/data/upload/Описание_процессор_Спутник.-20150119113423.pdf и http://multicore.ru/index.php?id=556
>c509 там, ST10, TriCore'ы.
DSP не применяют?
Ну и вообще велика ли разница под какие микроконтроллеры писать?
Говнокод же, ну. Я там даже не повырезал до конца закомментированное.
Верно подмечено, но мы и не ЭБУ тут пишем, а экранчики со сбором информации по датчикам. Хотя ЭБУ я все же сделаю для своего w124, на АТ128, земля мне пухом, ололо.
> VEMS
Ну в принципе, да. w124 с мотором М102 имеет минимум вмешательства электроники на работу мотора, там механический впрыск. ЭБУ контролирует прогрев и отсечку.
Архив старого сайта MegasquirtAVR с исходниками прошивки надо?
http://forum.cxem.net/applications/core/interface/file/attachment.php?id=346571
Там правда древние сорцы под древний аврстудио с использованием констант старого образца.
Читаю доки, смеюсь над собой. Уже размечатался, если кто-то смог, то почему бы не взять опыт? Воткнуть RS485, на него экран сенсорный, выводить сразу на торпедо и настройки сразу менять. Захотел ехать экономнее - нажал кнопу, захотел ехать веселее - нажал кнопу.
>Читаю доки, смеюсь над собой. Уже размечатался, если кто-то смог, то почему бы не взять опыт? Воткнуть RS485, на него экран сенсорный, выводить сразу на торпедо и настройки сразу менять. Захотел ехать экономнее - нажал кнопу, захотел ехать веселее - нажал кнопу.
Ну ты учти, там довольно ранняя история, еще без зажигания и с онли попарным впрыском. Так, код почитать, посмеяться. Из годноты там для себя калибровочные массивы для разных датчиков нашел. И код обработки дпкв.
Там шаговый для регулировки холостого хода, MAX232 и экран 4х20, конечно посмеяться. Калибровочные массивы это да, это вещь.
Шаговый драйвер кстати если заменить ихний на тридепринтерный DRV8825 то можног кучу ног сэкономить
>Извините, а в массовом производстве, какая разница, стм8, авр, пик, мсп430 и т.п?
Соответствие поставленной задачи способам её реализации. + Цена конечных изделий, что в крупных партиях играет немаловажную роль.
>>299838
Автомотив должен помимо всего проходить сертификацию, не говоря уже о соответствии требованиям нормам и стандартам. Для этого делают специальные серии мк.
Двачаю, братиш.
>>299903
>Автомотив должен помимо всего проходить сертификацию, не говоря уже о соответствии требованиям нормам и стандартам. Для этого делают специальные серии мк.
Спасибо, кэп.
>>299884
>>299883
>>299880
>>299879
>>299878
Вот пока подобные вам дядтлы будут по сотому разу говно в ступе толочь, у меня денег не убудет никогда.
>Вот пока подобные вам дядтлы будут по сотому разу говно в ступе толочь, у меня денег не убудет никогда.
Сидишь такой, оке, хоббийствуешь по тихому, пепелац свой полируешь. А какой-то мудак на сайте с молнией думает, что будет на тебе навариваться.
http://www.voragotech.com/products/VA10820
Как объяснишь это?
>>299838
>c509 там, ST10, TriCore'ы.
Их не на Си программируют что-ли? Или периферия как-то совсем по особому устроена? В чем тогда сложность человеку, натренировавшемуся на других микроконтроллерах, перейти на эти?
>ставить со слетающими от малейшей помехи по питанию прошивками.
То есть портится содержимое ПЗУ, но остальное остается целым? Что подавать чтобы это осуществить? Хочу повторить.
Ха, был один случай c stm32f3, когда от импульсника рядом наводилось на свдио команда ресета. Дебажили долго, повторить в других платах и условиях так и не удалось.
Сейчас стм8 ресеталась так же от буста рядом, но там был косяк разводки, уже пофикшено.
Чтоб хоть раз сбросился или изменился флеш от помех я не встречал, хотя в сигнально грязных платах часто работаю.
Такое впечатление, будто безумие шизика распределилось между анонами в этом треде.
>Как немцам удалось
Ты немец? Или тебе тоже удалось? Тому анону >>299937 удалось хоть что-то. Тебе не кажется, что тот анон делает явно не промышленное оборудование?
И вообще плохой пример. В промышленном оборудовании явно не требуется ставить импульсные преобразователи вплотную к микроконтроллерам, там вообще не целесообразно применять импульсные источники для питания микроконтроллеров.
Также стоит различать внутренние и внешние помехи.
Ну ахуеть, давайте теперь любую мигалку экранировать, ставить фильтры и прочее.
Контроллеры st7 теряли прошивку при проблемах с питанием. Не знаю в чём дело, но таким образом умирал мозг одного водонагревателя.
Ты че блядь, припадочный?
Какой нахуй сименс?
Какие блядь немцы?
Ты хотя бы примерно понимаешь разницу в классах устройств, и применении экранирования в них?
Нет, давай в каждой парашне лепить синфазники по каждой микре, каждой письке по изолированному питальнику и интерфейсу с безбожными adumами, и все ещё и экранами залепим, чтобы на ста гигах - 100dB давало.
Ты блядь хоть немного выкупай, о чем ты пишешь.
>>299947
Промышленное мы лепили, точнее участвовали, но там никаких проблем не было. Да и вообще я говорю, два раза только столкнулся с этим за все время, хотя с 2011 года с стмками работаю вплотную (с 32 только. С восьмыми года три знаком). Чаще всего тысячи других проблем, но из за проблем по питанию только два раза.кстати оба раза оч грубый косяк в разводке. Там любой мк охуел бы
>ЖК-индикатором для управления
Ты понимаешь как происходит управление? У этого индикатора, судя по всему, сегменты подключены напрямую к микроконтроллеру без всяких драйверов. На сегменты ЖКИ нельзя подавать постоянное напряжение, можно подавать только переменное с частотой около 50 Гц, чем и должен заниматься микроконтроллер.
>Можно ли программно тушить индикатор
Для этого нужно перевести в высокоимпедансное состояние выводы микроконтроллера, подключенные к общим выводам ЖКИ.
>Или жк-индикатор будет шунтировать всякие I2C&SPI?
Насколько я помню, ток потребления таких индикаторов от нескольких сотен наноампер до десятков микроампер. Так что ничего зашунтировать он не сможет, но высокоимпедансное состояние выводов мк может оказаться недостаточно высокоимпедансным. Хотя тут я могу ошибаться.
Спасибки. Уже пол часа тужусь понять по ангельски рефернс мануал. Понял, что идея хуевая. Нужно откинуть копыта встроенный ЖКИ и подключить 8002/1602/2004. Тогда освободятся порты и можно будет чего нибудь мутить. Видимо эта плата сделана для демонстрации возможностей управления ЖКИ и совсем не осталось свободных пинов. А я по тупости ее купил повевшись на встроенный индикатор. Надо было eval брать
> Можно ли программно тушить индикатор, попользоваться портами, потушить периферию и вывести результаты на индикатор?
Можно, конечно:
http://sezador.radioscanner.ru/pages/articles/sources/lcdctrl.htm
http://www.st.com/en/embedded-software/stsw-stm32013.html
http://radiokot.ru/articles/26/
https://eewiki.net/display/microcontroller/Basic+LCD+Example+for+Xmega-B1
Одна проблема: «заебёшься» пишется с мягким знаком (особенно если этот индикатор с динамической индикацией). Проще взять микроконтроллер со встроенным ЖКИ-контроллёром (как тот же STM8L152, что стоит в твоём дисковери) или (если хочется сэкономить ножки микроконтроллера) специально обученную микросхему, вроде HT1621.
Зачем ты написал эту стену текста? Я пишу:
> Есть STM8l-Discovery с приделанным ЖК-индикатором для управления которым используются практически все порты контроллера.
Хотел узнать про возможность программного отключения ЖКИ ( ну типа СОМ выводы занулить/в единицу перевести), попользоваться портами и снова врубить ЖКИ. Почитал референс мануал, ответ анона >>300015 и понял, что сморозил глупость.
>поэтому просьба авр-детям и арм-подросткам как минимум постараться не начинать свои срачи
Может ещё и говно есть запретишь?
>>КО КО КО АВР НЕ НУЖНЫ!
>>КО КО КО АРДУИНОБЛЯДИ ПИДОРЫ!
>>_delay_ms(1);
Ха-ха... Тонкая подъёбка - название функции из AVR :-)
>>>_delay_ms(1);
>Ха-ха... Тонкая подъёбка - название функции из AVR :-)
Совсем довн? Может ещё другие слова англиского языка закрепим за авр и ордуино?
окай. в каком компиляторе/ide для stm8 "ис каропки" есть функция с названием _delay_ms?
Соседа зовут Серёжа и он хуесос, тебя тоже зовут Серёжа, значит ты тоже хуесос. Смекаешь?
Мой дилэй пришел из HAL, us delay вообще на таймере. Но всё это не делает тебя меньшим хуесосом.
> если в программе используется delay значит весь код лютое говно ардуинщека
ТЫ СКОЗАЛ?
Чем ты задержки предлагаешь делать?
Не обращай внимания на ребенка, котрый недавно научился пользоваться таймером с прерываниями и теперь пытается его тулить везде для задержек. Подрастет - сам поймет в каких случаях и зачем нужны программные задержки.
я скозал, твёрдо и четко
>задержки делать
нужно уметь в конечные автоматы и таймеры
конечно очень редко нужны spinlock'и
но если у тебя есть такая задача то ты не будешь задавать такие тупые вопросы если не ардуинщег конечно конченый
> нужно уметь в конечные автоматы
Словосочетание модное выучил? Каким хуем конечный автомат тебе даст нужную задержку? Пример приведи, сестра.
"программные задержки" - так говорят только ардунщики или пидоры, настоящие системные программисты это называют спинлоками и стараются не использовать без необходимости
>Каким хуем конечный автомат тебе даст нужную задержку?
если ты этого не понимаешь то немного поешь говна прежде чем спрашивать примеры
нужно прочитать в дадашите про регистры управления и уметь в продвинутое битоёбство, но как может ардуинщек в такое?
>в дадашите про регистры управления
Ну таки здравствуйте, АВРщик приплыл. не референс мануал, не?
Мне обработчик написать надо. Вот я и спрашивал. А пока ты хамил уже сам нашел. Спасибо тебе огроменное, надеюсь сдохнешь от рака яиц. А вы тут и дальше загнивайте и называйте друг друга быдлоардуинщиками, благо сами от них далеко не ушли.
Используй ASM
У меня всегда печёт от этой хуйни. Везде, абсолютно везде найдутся хуева гора просто умники, которые мало того, что не ответят тебе, так еще и обосрут с ног до головы, причем сделают это с таким снисходительным видом, будто великое знание тебе дают.
> всегда печёт от этой хуйни
Не обращай внимания. Посмотри хоть на того же DiHalt-а. Нихуя не зазвездел, отвечает на вопросы, а тут ни одного вменяемого ответа, только траллинг "ардуинщегами". По факту и blink не осилил.
а мне сделайте задержку 10нс
мхахаха
ардуинщиги с их недодевайсами всегда доставляют, что avr что stm8
ага спроси у уважаемых форумчан дихальта
кстати дихальт молодец, да, когдато был ардуинщеком но смог преодолеть
быть не ардуинщегом, это в первую очередь не задавать тупых вопросов, не использовать 8ми битное дерьмо без необходимости, не делать интерфейсные устройства на микроконтролерах
> не использовать 8ми битное дерьмо без необходимости
Везде буду ставить stm32f429zit, мастер. Что бы мы без твоих советов делали.
ну подловил злодей, со своими ибаными гостами
кстати 1986ВЕ1Т заебись выглядит, зачипительный
>Но зачем это нужно если микроконтроллер тянет
вот типичный тупой вопрос ардуинщега
вот нахуя в 1986ВЕ1Т засунули RISC ядро с тактовой частотой до 144 МГц? зачем металлокерамический корпус? зачем диапазон температур от -60 до 125, все тоже самое можно было собрать на ардуине и скочать прошивку от вована
Я не умею такую хуйню творить.
>настоящие системные программисты это называют спинлоками
ардуинщик и пидор тут явно только ты, потому что называешь обычную блокировку процесса тремином, который никакого отношения к этому не имеет и применяется для обозначения флага блокировки в вытесняющих RTOS, конечных автоматах с семаформами и тому подобных структурах управления потоками программы.
Видишь как чувак ужом извивается от avr-овского названия - уже и HAL приплёл для STM8
в викепедии прочитал?
переключи на английский язык и там написано:
the use of such a lock is a kind of busy waiting
то есть спинлок является разновидностью бузивейта
в свою очередь на странице busy_waiting написано:
Spinning can also be used to generate an arbitrary time delay
спины могут использоваться для генерации задержек
почему это именно спинлок?, но ведь такой цикл как правило реализован с постоянной проверкой счетчика или прерывания, конечно это может быть просто пару nop но тогда это спинлок с аппаратным счетчиком циклов, хехе
так что пидор и ардуинщег это только ты
void DelayUs(uint16_t us)
{
TIM4->ARR = us - 1;
HAL_TIM_Base_Start(&htim4);
while ((TIM4->CR1 & TIM_CR1_CEN) != 0);
}
>Spinning can also be used to generate an arbitrary time delay
>can also be used
>can be
Ебать ты воннаби программист НЕардуины, начитался гайдов как диодом поморгать без delay, а как он работает, так и не понял.
Могут быть, не значит что они используюся для реализации delay в той или иной стандартной либе для периферии МК.
avr-libc, в зависимости от значения макроса в заголовочном файле, делает задержки непосредственно на NOPах:
void __builtin_avr_nops (unsigned count)
Insert count NOP instructions. The number of instructions must be a compile-time integer constant.
либо на счетчике с использованием правильно, все тех же NOPов в while цикле, можешь убедиться, заглянув в исходники:
void __builtin_avr_delay_cycles (unsigned long ticks)
Delay execution for ticks cycles. Note that this built-in does not take into account the effect of interrupts that might increase delay time. ticks must be a compile-time integer constant; delays with a variable number of cycles are not supported.
И каким боком это имеет отношение к реализации спинлок задержек с использованием флага блокировки?
Есть нидостаток -- твоя задержка будет сильно заисеть от того, как компилятор раскидает код на асм-инструкции. А ищо накладные расходы на вызов функций. HAL_TIM_Base_Start(&htim4);
>>Ебашь в машинных кодах тогда, манька узнавшая слово ардуинщег.
А почему не на ассемблере? Написанный в машкодах намного быстрее выполняется?
>>300750
Оба мудаки.
Что случится с вашей задержкой, когда мк поймает прерывание, а то и не одно, а то и мегажирное, а? У ардуинобыдла - сразу же полный фейл. У неардуинонебыдла - фейл случится когда прерывание прыгнет в конце - но в любом случае меньший, нежели у ардуинобыдлы.
Правильный подход - запускаем таймер, вешаем прерывание на срабатывание, продолжаем заниматься дальше процессором другими полезными делами,а не жрем лепестричество. Ну и не забываем правильно разрешать-запрещать прерывания, ессно.
Нахуй эти ваши трансляторы-компиляторы хуевы, мне работать надо, а не джать. Вот инструмент, который используют настоящие профи.
Всему есть пределы применения. И если мне нужно лишь подождать 40 мс при инициализации лсд-дисплея, то мне похуй на возникшее прерывание (оно всё равно не больше 200 мкс будет). А дрочить таймер не всегда представляется возможным. У меня он почти всегда тикает и выдаёт прерывание каждую мс, а в этом прерывании я опрашиваю кнопки/вывожу на семисегментник, отмеряю время и выставляю флаги окончания.
> Всему есть пределы применения. И если мне нужно лишь подождать 40 мс при инициализации лсд-дисплея, то мне похуй на возникшее прерывание (оно всё равно не больше 200 мкс будет). А дрочить таймер не всегда представляется возможным. У меня он почти всегда тикает и выдаёт прерывание каждую мс, а в этом прерывании я опрашиваю кнопки/вывожу на семисегментник, отмеряю время и выставляю флаги окончания.
А если тебе нужно прыснуть форсункой в мотор? То хуй там, перельешь - детон, рука дружбы, кровища кишки мотор распидорасило, развернуло, въехал в грузовик, пизда блядь. Если это дело управляет системой АБС/ТЦС- то все еще хуже - передержал тормоз - вместо выравнивания жоповозки - пизда кювет трупы.
>Нахуй эти ваши трансляторы-компиляторы хуевы, мне работать надо, а не джать. Вот инструмент, который используют настоящие профи.
Если убрать школошутку, то ты недалек от истины (пикрил).
На всех машинах того времени при включении машины ты должен каждый раз был руками побитно впердоливать машинными словами в память загрузчик с перфоленты/магнитной ленты/дискет/харда. То есть не "включил комп-винда загрузилась" и даже хуй там "бейсик загрузился". А пришел утром на работу, включил машину, и сидишь такой тумблерами пердолишь байты в память, причем сначала натыкиваешь адрес куда писать, затем тумблером переключаешь на ввод данных, вводишь значение и дальше пишешь.
ну если ты такой практик то
1. бери STM32
2. скачивай кеил, крякай
??? proit
все ардуинщики рано или поздно переходят на это дерьмо, даже я
>прыснул тебе FPGA в лицо
FPGA не выпускаются в automotive исполнении. И никто в здравом уме их не использует - у FPGA оче все хуево с помехозащищенностью - не забываем, что в машине куча электродвигателей разного назначения (вентилятор радиатора, печки, мотор дворников и.т.д., генератор, и, самое главное, системы зажигания и впрыска.
Любой перегрев или помеха, как по питанию так и по выводам - и прошивке пизда.
Там есть некотороя хитрость с и2ц. Что оно нормально работало, нужно прочитать эррату и согласно эррате написать код.
Вот тебе материал для размышлений
https://pastebin.com/sKDzZHER
>FPGA не выпускаются в automotive исполнении
>все хуево с помехозащищенностью
>мотор дворников и.т.д.
>и прошивке пизда
мхаха
да братан это фиаско
>2. скачивай кеил, крякай
А нахуя, если есть arm-gcc-none-eabi под шинду и попенсорсный stlink-gdb? Берешь хоть вижуалстудию, хоть кодблокс, хоть эклипс, хоть вим с емаксом, настраиваешь под себя и хуячишь.
Для начала я бы узнал, какие требования к таймингам, ибо понятия не имею даже о порядках (мс, мкс, нс ?).
Что в таком случае ты предлагаешь делать? Задержки на таймере? Распиши подробно.
К счастью, эти времена прошли. Чем меньше тебе нужно выполнять действий для выполнения задачи — тем лучше.
>> Ебись с установкой и кряканьем кейла.
А потом ебись с кейлом, когда эта штука тебе выделит маленький стек, а твоя гениальная мигалка диодом через изернет ебанётся в корку.
>наиболее адекватные используют ASIC
Хуясик, дятел. Используют они, что бош, что сименс, что AEM, что Motec, что Blitz - промышленные микроконтроллеры. Причем в основном старые проверенные семейства, как правило - это наследие от мотороллы, инфинеона или ST. А хуясики ваши биткоены майнят.
>Уж не потому ли, что дораха
Потому что стандарты
http://docs.cntd.ru/document/1200112783
http://sesamo-project.eu/sites/default/files/downloads/publications/iso-26262-dis-tutorial-2010-final.pdf
http://docs.cntd.ru/document/1200112783
Как и написано в реф манауле. Что за вопрос? Поступил на ногу фронт(спад), в регистр CCR записалось текщее значение из CNTR.
Завтра доберусь до нее.
Тот девайс уже закончен, и2ц не стал реализовывать, а отладки под рукой нет проверить
STлинком китайским. Потом шьёшь его в Jlink, обнуляешь свои термометры на атмегах и не размазываешься по всем тредам.
Я мамкин борцун за правду и правильность.
Я давно хочу накупить в qfn like корпусе стм32, но пока запас в LQFP48 не израсходовал.
Куэфэн сука паять проще и удобнее, чем выводняк, и компактнее
Точно так же я могу сфотографировать свою видеокарту и написать: "завидуйте, STM32-дауны!!".
Микроконтроллер тоже готовое изделие, или ты хочешь сказать что микроконтроллер требуется как-то дорабатывать? Видеокарта имеет не меньшее отношение к радиотехнике, чем микроконтроллер. Видеокарта, например, быстрее БПФ или свертку считает.
Итак, залогинился и выхожу из ридонли. Есть датчик влажности HTS221. Эта тварь работает по SPI и по I2C. Какой стул выбрать? Хочу скрестить его с STM8S003F3U6TR на малюсенькой платке и хуярить данные по UART-у по витой паре метра на 4. Кстати. Приемопередатчики RS-485 нужно ставить или так потянет?
Выше писали(мне), и2ц на s003 работает криво и с костылями. Листни тред на пару десятков постов
да, должен на 4 метра завестись без проблем.
ну, если че, еще можешь max232 с двух сторон витухи прихуячить, чтобы уровни повыше были. или вообще хоть на полевиках согласовывай
Ты такой классный, все тян хотят от тебя детей.
>>301052
И2ц удобен, когда у тебя есть несколько устройств на этой шине. В остальных случаях спи всегда проще как протокол. Длинные провода на юарт должны работать, хотя сам не тестировал. Скорость только выставить пониже, например 9600. А по хорошему следовало б поставить терминаторы и защиту от звона на концах линии передачи. Например, небольшие резисторы и супрессоры, поищи в сети как это делается.
непереживай майнеры полезли
думаеш по лету почему такой облом с видюшками случился?
каждый дауненок решал что он бог крипто всякой хуйни...
этож хайп - https://youtu.be/PFuHj5RbKds
Википедия пишет:
>Радиотехника — наука, изучающая электромагнитные колебания и волны радиодиапазона, методы генерации, усиления, преобразования, излучения и приёма, а также применение их для передачи информации, часть электротехники, включающая в себя технику радиопередачи и радиоприёма, обработку сигналов, проектирование и изготовление радиоаппаратуры.
Кое-что из этого определения подходит для микроконтроллеров, но это же подходит и для видеокарт. Однако попробуй сделать всю цифровую обработку в SDR приемнике на STM32, а на видеокарте это делается запросто. Вот и получается, что видеокарты имеют большее отношение к радиоприему и радиопередаче, чем микроконтроллеры.
Определение с википедии разумеется не истина, но в любом случае радиоприем и радиопередача имеют большее отношение к радиотехнике, чем мигание светодиодом на микроконтроллере.
Начнем с того хуесосина, что у тебя каша в голове, потмоу что ты не различаешь MCU, MPU, GPU и SOC. Нахуя ты приплел сюда свой высер про радиотехнику из википедии, вообще не ясно, потому что разработка цифровых устройств и их компонентов это электротехника.
>цифровую обработку в SDR приемнике
>видеокарты имеют большее отношение к радиоприему и радиопередаче
>радиоприем и радиопередача имеют большее отношение к радиотехнике, чем мигание светодиодом на микроконтроллере.
С этого я так орал, что чуть портки не обосрал. Ты совсем поехавший? Какое отношение имеет радиопередача к GPU видеокарты, а уебище? Она лишь обрабатывает принятый сигнал, с этим STM32 легко справится, вот первая же ссылка с гугла: https://www.youtube.com/watch?v=8EPFWKVx2Dk
Бля у меня просто нет слов чтоб такому ебанату что-то толковое ответить, могу лишь посоветовать никогда не заниматься радиотехникой/электротехникой, иди лучше пивасика с друзяшками попей в парке или в дотку несколько каток сыграй.
Неожидано, встретить адеквата в треде про STM8 где обычно радиозадроты байтоебы.
RTOS на STM8 существует?
А как же выяснение петушков за видимокарты и радиотехнику? не говоря уже о том, что термин радиолюбитель сейчас использовать некорректно
Существует
>термин радиолюбитель сейчас использовать некорректно
Кто-то в треде до тебя писал про радиолюбителей?
>С этого я так орал
>проиграл
Что это означает? Уже не в первый раз такое замечаю, это откуда-то из /b/?
>вот первая же ссылка с гугла:
Плохой пример. Судя по видео там полоса 20...30 кГц. С такой полосой даже WFM демодулировать не получится. При этом можно на FPGA за те же деньги сделать куда больше.
Так и про ARM-тред тоже можно сказать. Всё таки хоть что-то есть, хоть какие-то крупицы инфы.
> хоть какие-то крупицы инфы.
Формат имиджборд не предназначен для таких дел. Мне лень перечитывать треды на 2000+ постов. Даже открывать их не хочется, лис охуевает и по паре минут подвисает. Если бы ОПы новых тредов не ленились, а первым постом делали бы выжимку предыдущих тредов, то еще нормально было бы.
ПыСы. И бамплимит сделать в 500 постов, чтоб не разрастался тред до состояния нечитаемости.
Все-таки смог нагуглить это.
>Что это означает? Уже не в первый раз такое замечаю, это откуда-то из /b/?
Да, из /b/, дедуля. Заходи туда почаще.
Есть два стула для измерения переменного тока. Один шунт точеный, а другой чип Аллегро дроченый. На чем лучше и проще замутить? Как измерить переменный ток контроллером, каждые 5нс замерять и высчитывать среднее?
Мега Герц.
1/5нс = 200МГц. Как ты подключишь такой АЦП к STM8? И сколько такой АЦП будет стоить?
Чо вы тут такие серьезные? Шутканул слегка, - пол треда ответов. Я уже определился для себя, куплю аллегры и не буду париться с развязками и прочей хуергой.
Такая платка 50р вышла
>Но вот надобности в нем, похоже, все меньше и меньше.
Да хуй там, современные блоки работают исключительно по адаптивным алгоритмам , которые даже не руками писались, а переносились компиляцией из какого-нибудь тамошнего сименско-бошевского аналога simulink. И по этой причине нихуя не настраиваются. А у них плата по цене, сопоставимой+- с январем (плюс у них наконец-то годный чел из украины наконец-то сделал норм цивильную плату
https://rusefi.com//forum/viewtopic.php?f=4&t=1215&sid=bf3d72c74e9d7eb711e7902e67e7b10e
).
Другая проблема, что в современных тачках там уже все по CAN рулится причем с взаимодействием с абс, коробкой-автоматом и прочими систеами, а с этим у них пока конь не особо валялся.
цивильные и недорогие платы -- это очень хорошо. также, как и число цилиндров больше 4.
когда я интересовался темой, про rusefi как-то совсем не слышно было. смотрел в сторону megasquirt и его авр адаптации, но как ни крутил намного проще выходило взять тот же январь. Сейчас тоже проблем с этим нет. Куча дешевого авто есть, скоторго можно снять весь комплект. В ближайшее время даже приоры в утилизацию пойдут - при желании можно выцепить.
Еще нужны двойные карты для lpg топлива, например, с переключением выхода, естественно, чтобы не плодить количество блоков на машинах с гбо.
По поводу can: тут да, здесь сложнее. Надо снифать шину, писать логи. Все это на разных машинах и в разных условиях.
Блядь, почему я не родился на 10 лет раньше.. Без механики нихуя не получается допереть что и как в этом ёбаном коде, сколько раз пытался и нихуя не понимаю.
Я тоже не вкуриваю.
Есть вариант собрать на коленке какой-нибудь спектрум или тут где-то рядом был тред "Homebrew Computers thread". Есть варианты, где все мигает и светится, адреса отображаются
>На всех машинах того времени при включении машины ты должен каждый раз был руками побитно впердоливать машинными словами в память загрузчик с перфоленты/магнитной ленты/дискет/харда.
Вот кому ты пиздишь, а?
>Есть вариант собрать на коленке какой-нибудь спектрум или тут где-то рядом был тред "Homebrew Computers thread". Есть варианты, где все мигает и светится, адреса отображаются
Альтаир 8800 чтоле?
Не выйдет
Охуенно. Прикинь, на этом компе Ритчи Си выдумывал, на котором тут Антоны пытаются свои горе-прошивки писать.
если бы Деннис знал бы что появится быдло-интел и придётся скачивать кеил и крякать то он бы наверно забил бы и не стал выдумывать Си
Вроде бы почти все первые UNIX-ы были проприетарными. Так что не надо тут.
И кто тебя заставляет пользоваться кейлом вообще.
>ну кейл это как следующая ступень деградации ардуинщика
То ли дело махараечный GCC на пару с каким-то там опенсосным драйвером стлинка под венду.
Я тут распиаренным говно-sdcc на пару с наколеночным stm8flash работаю. И да, мейкфайлы сам пишу просто правлю шаблон, написанный давно
В то время как всё просвещенное человечество течёт от HAL и пользуется Кейлом и EWARM, дебсы продолжают жрать говно и гордиться своей элитарностью.
Всё провсещённое человечество пишет digitalWrite(Pisos_PIN, HIGH);
У меня нет денег на покупку этих кейлов и эвармов которые тоже говно, подскажи, сколько стоит индивидуальная лицензия с правом использования в коммерческих целях?
При том, что создавался для юниксов, которые были огорожены не хуже кейла.
>>301673
>>301672
Но для STM8 нет gcc.
>>301680
А я взял https://github.com/ObKo/stm32-cmake и CLion. Как IDE, кейл уступает даже эклипсу. Но тред то не про STM32.
До 32 Мб кода бесплатно, насчёт коммерческого только не уверен. Можешь задать этот вопрос им на сайте.
Эх, когда уже люди начнут понимать, какое преимущество потребителям даёт opensource недостатки тоже есть, не спорю
Подсаживаясь на проприетарный продукт, ты добровольно отдаёшь себя во власть производителя проприетарщины. Это и кабальная лицензия, и конские цены на софт предвижу кукареки о том, что профи может позволить себе купить этот софт. ога, пару к$, так я тебе и поверил. Используя пиратщину ты не наёбываешь никого, кроме себя, т.к. теперь ты зависишь не только от производителя, но и от крякателя. А завтра в твой любимый кейл встроят невзламываемую защиту с такими анальными средствами её проверки, что тебе придётся каждый раз делать отпечаток сетчатки и ануса. Единственное, что сдерживает проприетарщиков от этого -- наличие альтернатив. И чем их больше, тем более качественный продукт старается выпустить каждый производитель.
Нравится тебе жрать что даёт кейл или иар — да на здоровье. Петушню свою только не разводи, ибо писатели на HAL это те же тупые ардуинщики, возомнившие себя богами ко-ко-ко, я пишу под 32-х битные серьёзные контроллеры, ко-ко-ко, не детская ордуина, а сами даже мануал на чип не читали. Достаточно зайти на любой профильный форум и посмотреть, какие вопросы задают эти "профи". А потом с гордостью строчат статьи "Осваиваем хуйня-нейм с нуля. Курс для нубов. Урок 1: Дрочим ножкой". А в самой статье в лучшем случае пересказ первых трёх-четырёх страниц референс мануала.
Ну и по поводу проприетарщины. Есть такая фирма Silicon Labs. Есть у неё несколько семейств микроконтроллеров и IDE для работы с ними, основанная на эклипс -- Simplicity Studio. Есть даже официальная версия под линукс. Скачиваем, запускаем — не работает. Шедеврально.
Альтера Квартус. Самобытное ide, написанное на Qt. Нормально устанавливается и запускается, вот только есть небольшой момент — вместо кириллицы выдим кракозяблы в интерфейсе. Найс. Они даже не думают, что их поделиями могут бользоваться люди с локалью, отличной от en_US.
А есть куча производителей, пишущих софт на жабе, но работающий только под windows.
Atmel Studio очень ок, тащемта!
Вся проблема опенсорщины в том, что она юзабельна чуть менее чем никак. Особенно все эти эклипсоклоны.
Алсо, все эти HAL достаточно сильно отвязаны от железа.
Да вы заебали, какой нахуй ХАЛ у СТМ8? Тут только стандартиш либрари и пиздец.
Девиз попенсорца: Не нравится? — DIY!
>HAL
Проигрываю с дебилов с отрицаниями. Я скозал хал нинужон, и все тут. Вот же говноглоты.
С себя проецируешь?
st.com
Ты вообще видел, что тут тред об стм8? Какие нах стм32, это совсем другое семейство контроллеров. Чип у тебя какой? В гугле вводишь полное название чипа, например, stm32f103c8, переходишь на сайт st.com, проверяешь, что находишь на странице нужного чипа, переходишь к секции документации и там находишь RM0008
Не знаю, как у других, но у ст все эти спл и халы лишь очередная обёртка над регистрами, которая отвязана от чипа чуть менее, чем никак. Единственное их преимущество в том, что не нужно заморачиваться с очерёдностью записи в регистры.
>>301697
>Альтера Квартус.
Кириллица не работает лишь в старых версиях, которые впрочем приходится сейчас использовать для воронежских ПЛИС.
>пишущих софт на жабе, но работающий только под windows.
В КТЦ электроника ухитрились написать синтезатор (для серии 5578) на питоне, причем так, что он работает только под линуксом.
>>301767
Низкоуровневая часть HAL - безусловно. Но в высокоуровневой части все-таки не совсем так.
Quartus Prime version 15.1.1. Lite Edition. А всё потому, что эти надмозги при запуске кватруса принудительно выставляют LC_CTYPE="en_US". Я это грязно хакнул на ru_RU.UTF-8, квартус запустился без кракозябл. Может чёи сломал, ибо я так ничего в нём не налабал ни разу.
Написать софт под одну платформу как нефиг ссать, я так со своими наколеночными поделками всегда делаю. Но ведь есть разница между недоучкой и сириус бузинесс компани?
>Единственное их преимущество в том, что не нужно заморачиваться с очерёдностью записи в регистры.
Ну да, поэтому все расписывают инициализацию связанной периферии поштучно, хотя можно запихать в одну строку включение сразу всего нужного.
>хотя можно запихать в одну строку включение сразу всего нужного
Можно, а можно поштучно. Какая разница?
>поэтому все расписывают инициализацию связанной периферии поштучно, хотя можно запихать в одну строку включение сразу всего нужного.
Ебанашка хоть видел, какой ассемблерный код генерируется??? Ты погляди, там интересно...
Короче, с инициализацией GPIO всё ясно - просто записываем значения в регистры DDR, ODR, CR1, CR2, а как быть с тактированием? Я просто собезъянничал и скопировал из SPLовских фуннкций и у меня не взлетело - контроллер просто зависал. И в результате я не понял, как эта хуита работает. Как правильно инициализировать клок? В какой очередности записывать параметры в регистры?
Что и требовалось доказать. "Альтфаки", едва осилившие описания регистров в RM, отправляют читать RM. Что я там увиже? Конкретно про инициализацию клока? Там есть диаграмма инициализации HSE, а мне перед этим надо сбросить все параметры по умолчанию, чтобы не от XXX отталкиваться, а от какого-то известного состояния. Просто по очереди все регистры сбрасывать в reset state не получится - контроллер перезагрузится. Алсо пикрил - наглый пиздеж. Регистры какого-то хуя сохраняют свое текущее значение и если у меня была программа, где я поставил делитель HSI 1, то после перепрошивки контроллер все равно работает на HSI/1. Если у меня были настроены GPIO, то они сохраняют свои настройки просле перепрошивки и после resetа.
>Что и требовалось доказать. "Альтфаки", едва осилившие описания регистров в RM, отправляют читать RM.
Ткнуть в документацию мог любой анон, даже не державший в руках эти STM8.
>то они сохраняют свои настройки просле перепрошивки и после resetа.
Какого именно резета? Подачи сигнала на соответствующий вывод микроконтроллера или сброса счетчика команд через отладчик?
Если в документации нет всего необходимого и тем более если она врет, то зачем вообще такие микроконтроллеры нужны? Не лучше ли взять микроконтроллеры с нормальной документацией в таком случае?
Нормальные это какие? Чтобы и цена не кусалась и энергопотребление было небольшим. MSP430?
Давай, научи нас.
алсо хули ты тут делаешь тогда, умник? если у тебя есть необходимость самоутверждаться за счет других - у меня для тебя плохие новости.
Переключал клок на внешний кварц на 8s003, никаких проблем не было. Всё делал по референс мануалу. Вот тебе код для затравки
enum ClockSource {CLK_HSI = 0xE1, CLK_HSE = 0xB4, CLK_LSI = 0xD2};
void CLK_select(enum ClockSource clk_source)
{
// uint32_t loop = 0xFFFFF;
CLK->CKDIVR = 0x00; // Set F_CPU = 16MHz
if (clk_source == CLK->CMSR)
{return;}
LCD_Clear();
LCD_SetXY(0,0);
LCD_PrintString("No Ext Clock");
/ Switch to external clock. Manual mode /
CLK->SWR = clk_source;
while (!(CLK->SWCR & CLK_SWCR_SWIF))
{
// insert here code to exit if waiting too long
// if (loop > 0)
// {loop--;}
// else
// {break;}
}
CLK->SWCR &= ~CLK_SWCR_SWIF;
CLK->SWCR |= CLK_SWCR_SWEN;
}
Переключал клок на внешний кварц на 8s003, никаких проблем не было. Всё делал по референс мануалу. Вот тебе код для затравки
enum ClockSource {CLK_HSI = 0xE1, CLK_HSE = 0xB4, CLK_LSI = 0xD2};
void CLK_select(enum ClockSource clk_source)
{
// uint32_t loop = 0xFFFFF;
CLK->CKDIVR = 0x00; // Set F_CPU = 16MHz
if (clk_source == CLK->CMSR)
{return;}
LCD_Clear();
LCD_SetXY(0,0);
LCD_PrintString("No Ext Clock");
/ Switch to external clock. Manual mode /
CLK->SWR = clk_source;
while (!(CLK->SWCR & CLK_SWCR_SWIF))
{
// insert here code to exit if waiting too long
// if (loop > 0)
// {loop--;}
// else
// {break;}
}
CLK->SWCR &= ~CLK_SWCR_SWIF;
CLK->SWCR |= CLK_SWCR_SWEN;
}
С другой стороны, были проблемы с выключением функции CCO.
А какой у тебя чип мы должны догадаться? Ты вообще в курсе, что семейства S и L отличаются?
Тогда возможен баг. Я у себя никогда ресет не выводил, обычно работал от внутреннего генератора. Лишь в одном проекте потребовалось использовать кварц (код приводил выше), и всё переключалось как надо.
Очень часто проверял делитель клока (при тактировании от HSI) таким образом:
CLK->CKDIVR = 0x00; // Set F_CPU = 16MHz
Смотрим что светоид мигает. Комментируем эту строку, перепрошиваемся -- светодиод моргает медленней. Чип s003.
Причем, что примечательно, этот косяк сохраняется И при работе с SPLна случай если я идиот, и при работе напрямую с регистрами. Тащемта не просто так в SPL есть функция DeInit на всей периферии.
Ну и простенький тестовый код для проверки скинь.
ресет на кнопке висит. проинициализируй GPIO и после ресета прочитай значения регистров. запиши в eeprom флаг, по которому и будет производиться инициализация (чтобы она проводилась один раз) и отправь значения по uart. может быть это мои 12 чипов, на которых я пробовал, оказались бракованные.
Сделал 3 сброса кнопкой на ноге ресета. В еепром ничего не сохранял, ибо с ней у меня были проблемы. Вот результаты:
01 02 03 04 Reset value (stm8s.h)
ICKR = 0x13 0x13 0x13 0x13 | 0x01
ECKR = 0x00 0x00 0x00 0x00 | 0x00
RESERVED = 0x00 0x00 0x00 0x00 | -x--
CMSR = 0xE1 0xE1 0xE1 0xE1 | 0xE1
SWR = 0xE1 0xE1 0xE1 0xE1 | 0xE1
SWCR = 0x00 0x00 0x00 0x00 | 0x00
CKDIVR = 0x18 0x18 0x18 0x18 | 0x18
PCKENR1 = 0xFF 0xFF 0xFF 0xFF | 0xFF
CSSR = 0x00 0x00 0x00 0x00 | 0x00
CCOR = 0x00 0x00 0x00 0x00 | 0x00
PCKENR2 = 0xFF 0xFF 0xFF 0xFF | 0xFF
RESERVED1 = 0x00 0x00 0x00 0x00 | -x--
HSITRIMR = 0x00 0x00 0x00 0x00 | 0x00
SWIMCCR = 0x00 0x00 0x00 0x00 | 0x00
Initialization complete.
А вот кусочек кода:
void main(void)
{
// UART TX pin
GPIOD->ODR = 0x00;
GPIOD->DDR |= GPIO_PIN_5;
GPIOD->CR1 |= GPIO_PIN_5;
GPIOD->CR2 |= GPIO_PIN_5;
for (uint8_t i = 0; i < sizeof(clk_regs_values); i++)
{
clk_regs_values = ((uint8_t )(clk_start +i));
}
// Disable clock prescaler. F_CPU = 16 MHz
CLK->CKDIVR = 0x00;
UART1_init();
uart_tx_byte('\n');
for (uint8_t i = 0; i < sizeof(clk_regs_names)/sizeof(clk_regs_names[0]); i++)
{
sprintf(out_str, "%-s 0x%02X\n", clk_regs_names, clk_regs_values);
uart_tx_string(out_str);
}
uart_tx_string("Initialization complete.\n");
while(1)
{
}
}
Сделал 3 сброса кнопкой на ноге ресета. В еепром ничего не сохранял, ибо с ней у меня были проблемы. Вот результаты:
01 02 03 04 Reset value (stm8s.h)
ICKR = 0x13 0x13 0x13 0x13 | 0x01
ECKR = 0x00 0x00 0x00 0x00 | 0x00
RESERVED = 0x00 0x00 0x00 0x00 | -x--
CMSR = 0xE1 0xE1 0xE1 0xE1 | 0xE1
SWR = 0xE1 0xE1 0xE1 0xE1 | 0xE1
SWCR = 0x00 0x00 0x00 0x00 | 0x00
CKDIVR = 0x18 0x18 0x18 0x18 | 0x18
PCKENR1 = 0xFF 0xFF 0xFF 0xFF | 0xFF
CSSR = 0x00 0x00 0x00 0x00 | 0x00
CCOR = 0x00 0x00 0x00 0x00 | 0x00
PCKENR2 = 0xFF 0xFF 0xFF 0xFF | 0xFF
RESERVED1 = 0x00 0x00 0x00 0x00 | -x--
HSITRIMR = 0x00 0x00 0x00 0x00 | 0x00
SWIMCCR = 0x00 0x00 0x00 0x00 | 0x00
Initialization complete.
А вот кусочек кода:
void main(void)
{
// UART TX pin
GPIOD->ODR = 0x00;
GPIOD->DDR |= GPIO_PIN_5;
GPIOD->CR1 |= GPIO_PIN_5;
GPIOD->CR2 |= GPIO_PIN_5;
for (uint8_t i = 0; i < sizeof(clk_regs_values); i++)
{
clk_regs_values = ((uint8_t )(clk_start +i));
}
// Disable clock prescaler. F_CPU = 16 MHz
CLK->CKDIVR = 0x00;
UART1_init();
uart_tx_byte('\n');
for (uint8_t i = 0; i < sizeof(clk_regs_names)/sizeof(clk_regs_names[0]); i++)
{
sprintf(out_str, "%-s 0x%02X\n", clk_regs_names, clk_regs_values);
uart_tx_string(out_str);
}
uart_tx_string("Initialization complete.\n");
while(1)
{
}
}
Блядь, сука ебучая. Форматирование (пробелами, пробелами, блядь!) по пизде, охуеть.
https://pastebin.com/LCZSafxs
https://pastebin.com/vW0TP8dR
Чип 8s003k3 на плате discovery
Скорее всего нет. Но ты сравни результаты и отпишись здесь. Я думаю, заметной будет разница между кварцем и внутренним rc
Решыл навести порядок в своем говнокоде. Поставил git, doxygen. Либы хранить локально или тоже закинуть в облако?
>Решыл навести порядок в своем говнокоде. Поставил git, doxygen.
>doxygen
>порядок в своем говнокоде
>Поставил
Ну ты артист!
>Ну ты артист!
Чому? Реально устроил пиздец на ноуте. Каждый раз начинал свое говнописательство копированием каталога со стандартной либой, немного говнокода, попробовал, забил, забыл. Хочу наконец навести порядок. Хранить на гитхабе на случай атомной войны и смерти хдд. Правда уже лососнул с шаблоном проекта в SVDT+Cosmic, я уже заебался искать где там пути прописываются, при билде лезут кучи ошибок про ненайденный файл.
Тоже хочу попробовать вкатиться в серьезное портабл железо, но, конечно, не в барахло типа стм8.
В серьезных и дорогих девайсах из одной сферы деятельности, которые я имею возможность ковырять, часто используют мк freescale'овской HC08/HCS08 архитектуры.
https://www.nxp.com/docs/en/reference-manual/HCS08RMV1.pdf
Более конкретно, имею такие чипы:
https://www.nxp.com/docs/en/data-sheet/MC9S08JM60.pdf
Есть ли тут те, кто работал с таким?
Какие подводные камни, обоснованная критика, преимущества/недостатки МК этой архитектуры?
Реквестую любую годную инфу.
Литературу (рус/англ), годные недорогие девборды, программаторы, инфу по средам разработки и т.д.
>серьезное портабл железо
Трудно догадаться что ты под этим понимаешь, но непонятно почему это для тебя именно восьмибитные микроконтроллеры, а не кортексы, 16-битные микроконтроллеры, CPLD и даже просто любые маложручие микросхемы.
>не в барахло типа стм8.
>HC08/HCS08 архитектуры.
По классификации предложенной >>299838 это такое же барахло. А этот >>298987 анон считает что в HC08 слишком много всего напихано, чтобы они были подходящими для серьезного железа, они вообще восьмибитные а не четырехбитные.
>преимущества/недостатки МК этой архитектуры?
Если пишешь на Си, то какая разница до системы команд микроконтроллера?
>Трудно догадаться что ты под этим понимаешь
Переносная спец. измериловка. Причем, дорогая и made in EU.
>почему это для тебя именно восьмибитные микроконтроллеры, а не кортексы, 16-битные микроконтроллеры, CPLD и даже просто любые маложручие микросхемы.
В данном случае оно не зашкварено китайцами, стоит не абы где. В Китае это семейство не встретишь, используется только в EU и USA аппаратуре.
>По классификации предложенной...
>Микроконтроллеры семейства HC08 имеют архитектуру неймановского типа, тактовую частоту на шине 8МГц и полнофункциональную систему команд. Передовая технология производства Flash-памяти позволила компании Motorola одной из первых предложить Flash-микроконтроллеры для работы в автомобильном температурном диапазоне. Наличие режима "монитор" впервые обеспечило разработчиков возможностью вести отладку конечного приложения в системе без использования дорогостоящих внутрисхемных эмуляторов.
>>303226
>>303257
Это вы тут китайское ширпотребное барахло обсуждаете. Я вам принес редкий случай, когда оно нетронуто китайцами и используется только белыми людьми в дорогом и серьезном железе. И стОят такие мк, как у меня, недешево, загуглите.
Стм-боги, пилю прохладную
сам я далек от железа, все мои знания о технике закончились лабами по с++, поэтому заранее не бейте нуба ногами
Недавно затеял сделать что-то типа дешевого осциллографа, для проверки монитора на ШИМ (в том числе и высокочастотного). Первая идея была взять фотоэлемент из калькулятора и просто подвести контакты на микрофон в ноут, записать wavку и смотреть уже ее. Но потом сильно забоялся за свою звуковую карту (мало ли спалю от "супервысокого" напряжения фотоэлемента), да и частота дискретизации в 44 кгц не сильно радовала.
Следующая идея была в поиске дешевого внешнего и мощного АЦП и само собой я нагуглил... адруинку. Внутри у них АЦП слабенький (около 15 кгц, что меньше аудиокарты в ноуте), но можно, как я понял, подключать внешний на 30 МГц, например этот: TDA8708A. Да и вообще я как-то загорелся темой адруино: крутая штука даже в отрыве от моих потребностей, все довольно интересно и захватывающе, даже не понял, почему меня эта тема раньше обходила стороной.
Уже было хотел бежать заказывать nano, начал смотреть параллельно примеры и что-то как-то не особо понравилось их какое-то неявное влияние: например вместо main, я должен использовать setup и loop, сразу думал, что это чисто аппаратная потребность, но вроде не все так плохо, где-то в закромах оказвается есть main, в котором явно вызывается, setup и loop в бесконечном цикле, но ребзя, разве это нормально, когда вхолостую напрягаем бесполезностью все 16 МГц? И эту стратегию оффициально поддерживают, не думаю, что это хорошо. И как-то случайно я наткнулся в интернете на...
STM32. И тут я удивился: если взять плату, например STM32F103C8T6, то она по спекам 72МГц, вместо жалких 16, 20 кб sramа, вместо двух, ДЖВА АЦП, которые еще и по 1 МГц примерно, вроде как обещают еще и ЦАП, которого нет в адруино вообще, ну и плюс мелкие плюшечки как контроллер DMA и градусник. И все это счастье за 2 бакса на али, ну и плюс программатор (внутри которых, что бы вы подумали? - stm, как говорят) 3 доллара, но это ж дешевле всяких nano, одни из самых дешевых адруин. И плюс они не навязывают, как я понял, эти "эффективные" бесконечные циклы. Теперь не понимаю: чем адруины так популярны, если они дороже, а ттх хуже?
Но поскольку я нуб в stm (да и вообще в бегающих электронах), у меня такие вопросы:
1) Какую именно выбрать плату по вольтажу? 3,6 или 5 и что от этого зависит, и смоги ли я питать что-то через пины выше этого вольтажа? и вообще что это значит?
2) Что мне брать кроме платы (например STM32F103C8T6, и ей подобной), и программатора, чтоб я мог сразу начать пользоваться платой как белый человек?
3) Зависит ли выбор переферии от вольтажа конкретно это платы?
4) Можно ли к этой плате подключить внешний ацп на 30 МГц? например тот же TDA8708A? или для stm своя перифирия? или вообще нельзя?
5) Что будет, если я подам на входной пин большой вольтаж? сгорит нахер вся моя плата? а какие ограничения по силе тока? то есть если на входной пин я подам 1в, и ток 1А, то что, заискриться? А что будет с моим юсб портом на ноуте? он тоже накроется или есть какая-то защита?
6) Какие возможности по прерываваниям? то есть я вот не хочу писать бесконечные циклы, как мне предлагает адруино, но понимаю, что реагировать на внешние сигналы он должен. В большом x86 брате для этого есть прерывания - тут точно так же или другие костыли?
Заранее спасибо, надеюсь, адекватному сообществу stm на дваче
Стм-боги, пилю прохладную
сам я далек от железа, все мои знания о технике закончились лабами по с++, поэтому заранее не бейте нуба ногами
Недавно затеял сделать что-то типа дешевого осциллографа, для проверки монитора на ШИМ (в том числе и высокочастотного). Первая идея была взять фотоэлемент из калькулятора и просто подвести контакты на микрофон в ноут, записать wavку и смотреть уже ее. Но потом сильно забоялся за свою звуковую карту (мало ли спалю от "супервысокого" напряжения фотоэлемента), да и частота дискретизации в 44 кгц не сильно радовала.
Следующая идея была в поиске дешевого внешнего и мощного АЦП и само собой я нагуглил... адруинку. Внутри у них АЦП слабенький (около 15 кгц, что меньше аудиокарты в ноуте), но можно, как я понял, подключать внешний на 30 МГц, например этот: TDA8708A. Да и вообще я как-то загорелся темой адруино: крутая штука даже в отрыве от моих потребностей, все довольно интересно и захватывающе, даже не понял, почему меня эта тема раньше обходила стороной.
Уже было хотел бежать заказывать nano, начал смотреть параллельно примеры и что-то как-то не особо понравилось их какое-то неявное влияние: например вместо main, я должен использовать setup и loop, сразу думал, что это чисто аппаратная потребность, но вроде не все так плохо, где-то в закромах оказвается есть main, в котором явно вызывается, setup и loop в бесконечном цикле, но ребзя, разве это нормально, когда вхолостую напрягаем бесполезностью все 16 МГц? И эту стратегию оффициально поддерживают, не думаю, что это хорошо. И как-то случайно я наткнулся в интернете на...
STM32. И тут я удивился: если взять плату, например STM32F103C8T6, то она по спекам 72МГц, вместо жалких 16, 20 кб sramа, вместо двух, ДЖВА АЦП, которые еще и по 1 МГц примерно, вроде как обещают еще и ЦАП, которого нет в адруино вообще, ну и плюс мелкие плюшечки как контроллер DMA и градусник. И все это счастье за 2 бакса на али, ну и плюс программатор (внутри которых, что бы вы подумали? - stm, как говорят) 3 доллара, но это ж дешевле всяких nano, одни из самых дешевых адруин. И плюс они не навязывают, как я понял, эти "эффективные" бесконечные циклы. Теперь не понимаю: чем адруины так популярны, если они дороже, а ттх хуже?
Но поскольку я нуб в stm (да и вообще в бегающих электронах), у меня такие вопросы:
1) Какую именно выбрать плату по вольтажу? 3,6 или 5 и что от этого зависит, и смоги ли я питать что-то через пины выше этого вольтажа? и вообще что это значит?
2) Что мне брать кроме платы (например STM32F103C8T6, и ей подобной), и программатора, чтоб я мог сразу начать пользоваться платой как белый человек?
3) Зависит ли выбор переферии от вольтажа конкретно это платы?
4) Можно ли к этой плате подключить внешний ацп на 30 МГц? например тот же TDA8708A? или для stm своя перифирия? или вообще нельзя?
5) Что будет, если я подам на входной пин большой вольтаж? сгорит нахер вся моя плата? а какие ограничения по силе тока? то есть если на входной пин я подам 1в, и ток 1А, то что, заискриться? А что будет с моим юсб портом на ноуте? он тоже накроется или есть какая-то защита?
6) Какие возможности по прерываваниям? то есть я вот не хочу писать бесконечные циклы, как мне предлагает адруино, но понимаю, что реагировать на внешние сигналы он должен. В большом x86 брате для этого есть прерывания - тут точно так же или другие костыли?
Заранее спасибо, надеюсь, адекватному сообществу stm на дваче
6) так он всё равно должен крутиться в бесконечном цикле и ждать сигнала прерывания. только в самом цикле никаких команд не будет
>Переносная спец. измериловка.
Будто характеристики этой измериловки будут существенно зависеть от микроконтроллера. Тем более что если более-менее вменяемо писать на Си, то все элементарно переносится на другой микроконтроллер.
>оно не зашкварено китайцами
Китайцы много чего используют, что с того? Резисторы например используют, теперь резисторы не использовать?
>Микроконтроллеры семейства HC08...
И к чему это? i8080 тоже один из первых в своем в своем роде был, теперь то что?
>В Китае это семейство не встретишь, используется только в EU и USA аппаратуре.
Точно так же китайцы много чего практически не используют. Хотя бы силабовские кортексы, а ты выбрал практически те же STM8.
>Первая идея была взять фотоэлемент из калькулятора
Фотоэлементы нелинейные и полоса пропускания у них может быть мизерная. И вообще зачем фотоэлемент? Может ты про оптроны не знаешь?
>но можно, как я понял, подключать внешний на 30 МГц
Не знаю что следует называть ардуиной, но обычно этим называют отладки с AVR. К микроконтроллерам AVR и STM32 такие АЦП не подключить. В микроконтроллерах вообще обычно нет средств для подключения таких АЦП напрямую.
1) Микроконтроллер все равно питается от 3,3 В. На платах обычно ставят стабилизатор.
2) Для мигания светодиодом этого хватит, большее все равно не осилишь.
3) см. 1. Нет, не зависит.
4) Можно, но не напрямую.
5) Многие выводы допускают подачу 5 В.
>то есть если на входной пин я подам 1в, и ток 1А
Иди читать в школьном учебнике по физике про закон Ома.
6) В AVR (ардуине) тоже есть прерывания.
Вся затея идиотская. Просто найди готовую конструкцию и повтори. Например DSO203.
>>303308
Не совсем так. На кортексах можно использовать __WFI() и __WFE()
1) Вольтаж зависит не от платы, а от МК (некоторые пины у 3.3в МК совместимы с 5в). На самих платах стоит стаб с 5 на 3.3 и запаяны гребенки на оба напряжения.
2) Датчики, дисплеи, моторы, все что тебе интересно и на что хватит бюджета.
3) Как писалось выше - зависит от МК, если вход расчитанный на 3.3в и используется не как open-drain, его легко убить сигналом 5в.
4) Очевидно что микросхему с каким-либо цифровым выходом можно подключить абсолютно к любому МК, если ног хватит.
5) Тут все будет зависеть от длительности импульса и силы тока - может только логика пина отгореть, а может и вся микруха по пизде пойти.
6) Прерывания есть и в AVR (это то, что недалекие называют ардуинами), просто их использование ограничено убогой надстройкой над С для ардуино среды и говеными либами.
Я б советовал эти 4 микрухи взять:
STM32F103C8T6 - хороший выбор, если тебе нужны часы реального времени (с внешним питанием) и USB.
STM32F030C8T6 - нету USB и питания для часов, зато больше таймеров и цена в 2 раза ниже.
STM32F030F4P6 - минимальная обвязка, есть все необходимые интерфейсы для простых задач, стоит пздц дешево.
STM32F103RGT6 - 16шт 12-битных АЦП на 3 канала, 14 (!) независимых таймеров, 1024kB флеша и 96kB оперативы.
У самых простых STM32 частота АЦП 14-16 МГц, у специализированных на АЦП (F303 например) - 72МГц и выше, время семплирования задаешь сам в зависимости от сопротивления.
>В микроконтроллерах вообще обычно нет средств для подключения таких АЦП напрямую.
Цифру к цифре нельзя подрубить - вот это кек канешн.
http://www.stanson.ch/index.php?page=proj&proj=USB-oscope
>2) Что мне брать кроме платы
DS3231 - часы реального времени с температурной компенсацией (бери плату на которой запаяна еще и внешняя память - разница в цене маленькая). СТМовские часы имеют некоторые нюансы в виде отсутствия сохранения календаря при отключении питания МК (сохраняется только время) + они сильно спешат/отстают если неправильно подобраны емкости для часового кварца (китацы лепят какие попало на свои платы) и при этом все равно требуют калибровку с записью коррекции ppm в соответствующие регистры.
SI7021 - датчик температуры и влажности. Сравнивал BME280, SI7021, HTU21D, DS18B20 и NTC3950: SI7021 был ближе всего по точности к BME280 и он имеет большой плюс в виде мембраны (Kapton KPPD-1/8), предоставляющей степень защиты IP67 и выступающей в роли сглаживающего фильтра (не будет скачков от малейшего дуновения ветерка при частом измерении). Поэтому если не нужно мерять атмосферное давление (а обычно оно нахуй не нужно), то возьми таких.
LCD дисплей 128x64 с контроллером ST7920, его можно подключать по SPI - это огромный плюс. Такие, кстати, стоят на панельках для ramps 3д-принтеров.
Если не хочешь бугуртить от непонимания, почему криво работает передача по UART/SPI/I2C купи самый дешевый китайский клон анализатора Saleae Logic, он меня не раз выручал от подрыва жеппы.
>4) Очевидно что микросхему с каким-либо цифровым выходом можно подключить абсолютно к любому МК, если ног хватит.
Только работать оно возможно не будет, а так можно и в 220 В напрямую подключать.
>У самых простых STM32 частота АЦП 14-16 МГц, у специализированных на АЦП (F303 например) - 72МГц
Это не так. Для STM32F103 - 1 MSPS, для STM32F303 - 5 MSPS. Наверное самые быстрые АЦП в микроконтроллерах у NXP, так в LPC4370 АЦП с частотой дискретизации 80 мГц.
>>303338
Как ты получишь частоту дискретизации 30 МГц?
>>303343
>что-то типа дешевого осциллографа
Часы реального времени, датчик влажности и слишком мелкий для осциллографа дисплей.
Безусловно, все это необходимо для осциллографа.
>Только работать оно возможно не будет
Почему? Приведи хоть один пример, когда одно простое устройство с цифровым интерфесом не будет работать с другим.
>Как ты получишь частоту дискретизации 30 МГц?
Алло проснись, речь шла о том будет работать или нет, в статье написано, что в схеме он работает на 12 МГц из-за ссаного пика, с stm32 можно и на 30 запускать спокойно.
>Это не так. Для STM32F103 - 1 MSPS, для STM32F303 - 5 MSPS
Он вроде говорил о тактировании АЦП периферии, частота семплирования будет зависеть от времени семплирования, которое задается в циклах (начиная с 1.5 цикла) + время преобразования 12 циклов. А так да, в MSPS это около 1 и 5.
>Алло проснись, речь шла о том будет работать или нет, в статье написано, что в схеме он работает на 12 МГц из-за ссаного пика, с stm32 можно и на 30 запускать спокойно.
Ну рассказывай тогда как это сделать. Сколько тактов требует одна пересылка ПДП?
>>303352
>Он вроде говорил о тактировании АЦП периферии
Это немного странно в контексте АЦП, т.к. частота самого микроконтроллера для осциллографа не столь важна.
>Фотоэлементы нелинейные и полоса пропускания у них может быть мизерная.
>>303327
>Может ты про оптроны не знаешь?
Не знаю, почитал - какая-то ебала для передачи энергии через свет. А для меня зачем?
что значит нелинейные? может? от чего зависит?
>>303327
>К микроконтроллерам AVR и STM32 такие АЦП не подключить
http://arduino.ru/forum/programmirovanie/parallelnyi-atsp-i-arduino - вот тут люди прикручивают, вроде
>>303327
>1) Микроконтроллер все равно питается от 3,3 В. На платах обычно ставят стабилизатор.
так и в чем разница у них? могу любой брать и все будет работать одинаково? зачем тогда разные вообще делать?
>>303327
>4) Можно, но не напрямую.
а как?
>>303327
>5) Многие выводы допускают подачу 5 В.
а выше? вдруг я где-то ошибусь и влетит 15 В?
>>303327
>Иди читать в школьном учебнике по физике про закон Ома.
почитал. не понял подвоха. Вроде один вольт и один ампер никак друг другу не противоречит. Че там читать-то? подсчитать что один Ом получится или что?
Я просто у мамы дурачок, паяльник в жизни не держал, проявите милосердие
>Фотоэлементы нелинейные и полоса пропускания у них может быть мизерная.
что значит нелинейные? может мизерная? а отчего это "может" зависит?
>1) Вольтаж зависит не от платы, а от МК (некоторые пины у 3.3в МК совместимы с 5в). На самих платах стоит стаб с 5 на 3.3 и запаяны гребенки на оба напряжения.
что за гребенки? пишите будто общаетесь с дебилом, пожалуйста. И все равно не ясно: в чем их отличие? ведь не просто так делали две разные версии: 3В и 5В? В двух версиях на вход на пины можно подавать одинаковое напряжение? а выдают тоже одинаковое?
>>303333
>3) Как писалось выше - зависит от МК, если вход расчитанный на 3.3в и используется не как open-drain, его легко убить сигналом 5в.
а, таки если я куплю микруху на 3.3В, то на пин подавать лучше не больше 3.3? я правильно понял? а выход с пина какой будет?
>>303333
>4) Очевидно что микросхему с каким-либо цифровым выходом можно подключить абсолютно к любому МК, если ног хватит.
Выше писали, что нет, так что пока что не очевидно(
>>303333
> а может и вся микруха по пизде пойти
а если плата была подключена к юнайтед секси бойс? она тоже прогневается и сгорит или мой ноут в любом случае в безопасности?
>>303333
>У самых простых STM32 частота АЦП 14-16 МГц, у специализированных на АЦП (F303 например) - 72МГц и выше, время семплирования задаешь сам в зависимости от сопротивления.
а можно спеки, чтоб было видно, что аж на 72МГц ацп? а то не нашел, и как-то звучит уххх, аж ноги подкашиваются?
> анализатора Saleae Logic
что за анализатор? что делает и для чего? как спасал?
попроще, на пальцах, для аутистов, пожалуйста
>почитал. не понял подвоха. Вроде один вольт и один ампер никак друг другу не противоречит. Че там читать-то? подсчитать что один Ом получится или что?
Ну ептваймать. Где вас таких делают то? Как ты вкачаешь 1 ампер в сотню килоом? Ты бы для справки почитал параметры входов у контроллера. А лучше почитай что такое вольт и что такое ампер, как они друг с другом кореллируют через ом и почему блять нельзя вкачать силу тока больше, чем положено. А вообще настоятельно рекомендую забыть про контроллеры на пару месяцев и поинтересоваться в ньюфаготреде с чего тебе, инвалиду микроцефалу, начать. Возможно это просто блажь и ты не то что не хочешь, а даже неспособен заниматься электроникой. мне колу и большую картошку, да поживее
>Как ты вкачаешь 1 ампер в сотню килоом?
откуда эти цифры? там же один Ом получается>>303372
>Ты бы для справки почитал параметры входов у контроллера
я ж спрашивал где почитать про ограничение на пины
>>303372
>А лучше почитай что такое вольт и что такое ампер
на вики почитал
>>303372
>как они друг с другом кореллируют через ом
u=ir, про это?
>>303372
>почему блять нельзя вкачать силу тока больше, чем положено
и почему? можно же ответить, я думаю, чем писать стены с негодованием
>>303372
>инвалиду микроцефалу
какой токсичный( самоутверждаешься что ли?
вот было бы намного продуктивнее, если бы вместо простыни негатива и ручья текста написать объяснение
на это сообщение тоже будешь гиперкомпенсировать?
1) Штырьки на плате будут 5В и 3.3В, чтоб ты мог питать любые датчики если что.
3) Да, лучше больше 3.3 не подавать (вообще есть нюансы в виде диапазона напряжения для питания около вольта, например у F030 2.4-3.6, и пределы для GPIO, у того же F030 4В). Выход с пина будет 3.3.
4) Любую приблуду со стандартными интерфейсами (I2C, SPI, UART, 1-Wire, PWM) ты сможешь подключить к чему угодно, у чего хватит ног для этого, даже если там не будет аппаратной поддержки этих интерфесов. С нестандартными цифровыми интерфейсами типа параллельных шын данных с кучей ног дела обстоят так же - ты просто считываешь/передаешь импульсы по таймингу МК либо подключенного устройства (если частота позволяет).
>сгорит или мой ноут в любом случае в безопасности?
Смотря что произойдет, если нужна 100% безопасность (например твое устройство работает напрямую с 220 и МК запитан через импульсный блок питания) - ставь гальваническую развязку. От сильной статики точно не защитит, если нету отвода заряда. Кароч защиту USB нужно самому делать.
>а можно спеки, чтоб было видно, что аж на 72МГц ацп?
104 стр, первая строка колонки ADC clock frequency. Но это частота самого блока АЦП, при 12-битной точности ты получишь максимум 5.14 MSPS, при 8-битной 9 MSPS. MSPS = Fadc / (Tconv + Tsample). Время преобразованя вроде 12 циклов, а время семплирования сам задаешь для определенного входного сопротивления (все это есть в даташите).
http://www.st.com/content/ccc/resource/technical/document/datasheet/f2/1f/e1/41/ef/59/4d/50/DM00058181.pdf/files/DM00058181.pdf/jcr:content/translations/en.DM00058181.pdf
С помощью него ты можешь мониторить что у тебя там реально передается (частота, длительность импульсов, вывод передаваемых данных в разных форматах типа Hex, ASCII и т.д.). В дешевых китайских только цифра, есть еще и с аналоговыми входами, но они уже значительно дороже стоят, про оригинальные анализаторы этой фирмы я вообще молчу, но софт бесплатный и прекрасно работает с китайскими поделками.
>а выше? вдруг я где-то ошибусь и влетит 15 В?
Ну сгорит, чего еще ожидать, просто возьми за правило смотреть в раздел даташита с предельными значениями для МК и не выходить за их пределы, потому что даже если не сгорит, то все равно внутри что-то перегрется и перестанет работать как надо.
>возьми за правило смотреть в раздел даташита с предельными значениями для МК
а там только по вольтажу ограничение? или есть еще по силе тока?
а вообще: можно пример такого даташита с утыканием носа в нужное место? желательно на stm32
>Вроде один вольт и один ампер никак друг другу не противоречит. Че там читать-то? подсчитать что один Ом получится или что?
ну почти, тебе нужно не сопротивление а мощность (P=I*U), потроха микросхемы преобразуют избыток мощности в тепло, из-за чего она греется и чем больше мощность, тем сильнее греется, пока что-то не расплавится внутри.
типа 1 Вт это много? про это тоже в даташите можно почитать?
а при чем тогда закон Ома и откуда сотни кОм - сверху анон писал? или это тролль?
Да, и по току тоже, вообще по всему, что тебе нужно знать, чтоб не убить микросхему.
В даташите целый раздел Electrical characteristics на 20 страниц с кучей подразделов для всей начинки (стр 66-69 - АЦП, к примеру), стр 42-43 - абсолютные пределы.
http://www.st.com/content/ccc/resource/technical/document/datasheet/a4/5d/0b/0e/87/c4/4d/71/DM00088500.pdf/files/DM00088500.pdf/jcr:content/translations/en.DM00088500.pdf
>>303381
Ты совсем поехавший или как? Я тебе даже формулу написал там и объяснил что значат переменные.
>про это тоже в даташите можно почитать?
достаточно знать максимальные напряжения и токи для питания (вроде нельзя пропускать в общей сумме больше 100 с чем-то mA через большинство МК), ацп и gpio. можешь перемножить их и получишь мощность, если тебе так интересно
>Время преобразованя вроде 12 циклов, а время семплирования сам задаешь для определенного входного сопротивления (все это есть в даташите).
Давай, ты сможешь построить логическую цепочку, я верю в тебя.
хоспаде какие токсичные. Типа в первый день вы все понимали
Может я не понимаю что это за это такое, зато я точно знаю сколько кусочков мяса в гамбургере и сколько разбавлено моей кончи в твоем соусе
Ну а чего ты хотел с такими глупыми вопросами, если совсем нихуя не знаешь и хочешь разобраться в таких тонкостях - садись читай книги/статьи/гайды по stm32 и cortex. А лучше начни с 8-битных МК, тех же AVR (без ардуино хуйни), по ним уже все разжевано десяток лет, есть ответы на все вопросы, вкатиться проще простого, их можно изучать тупо по даташиту, он описывает весь механизм работы МК лучше любой статьи.
ЗАДАЕТ ВОПРОСЫ ПО МК
@
ОТВЕЧАЮТ
@
ЗАДАЕТ ЕЩЕ ВОПРОСЫ И СПРАШИВАЕТ ЕСТЬ ЛИ ОТВЕТЫ В ДАТАШИТЕ
@
ОТВЕЧАЮТ ЧТО В ДАТАШИТЕ ЕСТЬ ОТВЕТЫ НА ВСЕ ВОПРОСЫ
@
НАЧИНАЕТ ЗАДАВАТЬ ТУПЫЕ ВОПРОСЫ
@
ОТВЕЧАЮТ УЖЕ ССЫЛАЯСЬ НА ДАТАШИТ
@
ПРОДОЛЖАЕТ ЗАДАВАТЬ ВОПРОСЫ ОТВЕТЫ НА КОТОРЫЕ ЕСТЬ В ДАТАШИТЕ
@
ПОДРОБНО ОТВЕЧАЮТ И ПРИВОДЯТ ФОРМУЛУ
@
НЕ МОЖЕТ ПОНЯТЬ ФОРМУЛУ С 2-Я АРИФМЕТИЧЕСКИМИ ДЕЙСТВИЯМИ
@
ХОСПАДЕ КАКИЕ ТОКСИЧНЫЕ
и чем фотоэлемент плох?
завтра двойная порция кончи в соус, видит Аллах - я не хотел
точнее, некоторые реально стараются объяснить, отвечают, но почему-то только ты пытаются гиперкомпенсировать свой маленький 29,7486 с погрешностью 0,00002% самоутверждением. Мне тебя не жаль
пытаешься*
Если не вдаваться во всякую экзотику, то все современные цифровые микросхемы легко подключать одну к другой при согласовании:
а) Уровней сигнала (1.2В, 3.3В, 5В)
б) Временны´х характеристик (нарастание фронта/спада, частота сигнала, длительность импульсов)
В случае подключения скоростных АЦП к мк стоит смотреть на согласованность интерфейсов: колчитество ног, управляющие сигналы, протокол обмена данными. Дальше смотришь, можешь ли ты реализовать это на своём мк. Изи же когда немного поваришься в этой теме
Ну я же и говорю, что напрямую считай подключается к чему угодно (при условии достаточного количества ног и соблюдения таймингов, уровень не в счет, потому что преобразователи - херня уровня резисторов), а не как к примеру датчики с аналоговым выходом, которые не подключишь напрямую к МК, у которого нет АЦП блока.
>соблюдения таймингов
Сам же пишешь почему оно может не работать. AVR явно не сможет забирать данные с порта с частотой 30 МГц и с соблюдением таймингов. Это даже всякие STM32 толком не смогут.
>преобразователи - херня уровня резисторов
Я бы так не сказал. Попробуй найти подходящий преобразователь для подключения быстрого (в районе 100 МГц) АЦП с уровнями 1,8 к чему-то с уровнями 3,3В.
>AVR явно не сможет забирать данные с порта с частотой 30 МГц и с соблюдением таймингов. Это даже всякие STM32 толком не смогут.
Тем не менее ту микруху АЦП 32 МГц подключали к АВР без проблем, потому что это частота сэмплирования, забирать же данные по параллельному порту можно и на низкой частоте.
>АЦП 32 МГц
>это частота сэмплирования
>забирать же данные можно и на низкой частоте
Ебанулся там?
>Ебанулся там?
Разве что ты.
https://www.linux-mips.org/~ladis/vino/doc/TDA8708A_5.pdf
>The TDA8708A is an analog input interface for video signal
>processing. It includes a video amplifier with clamp and
>gain control, an 8-bit analog-to-digital converter (ADC)
>with a sampling rate of 32 MHz and an input selector.
Несколькими постами выше были ссылки с подключением этого древнего говна мамонта к АВР и ПИК с тактированием параллельной шины на 16 и 12 МГц
Ну и как ты будешь собирать данные мк с частотой 20МГц при выборке ацп в 32*10^6 выборок/секунду?
Ясен хуй, что это можно сделать при меньшем samplerate
STM32CubeL4 - 1.8Гб Что там внутре? Качать ажно страшно.
не обращай внимания, это псевдоэлиторетроградынитакиекаквсе стм8 задроты, которые не могут в скорость развития технологий
1920x1080, 0:04
Gays!! Я повторил подвиг того чувака и модернизировал драйвер дисплея от STM8S для STM8L. Было трудно но я смог.
А у меня дошли руки заняться давней хотелкой: точное время по всему дому. На подоконнике будет лежать коробок, копить пыль, получать время по GPS и вещать его по радиоканалу на всю квартиру. В 3-4 шт часов будут вкорячены микро приемники с мозгами на тини13, которая будет получать время и дергать внутренности для выставления точного времени. Сейчас у меня уже есть подобный выкидыш, на есп8266, берущий время с интернета, с нтп серверов, но всего у 1 шт часов, развития не получило из-за оверкилла и недостатков еспшки.
Учись, вот что было сделано за вечер:
1) своя мини-библиотека для дисплея на ht1621, практически с нуля (дисплей из телефона с мусорки)
2) полностью свой парсер сообщений с gps модуля (дергает время и дату)
3) передача сообщения с полученным временем по 433 МГц, каждую секунду (свой формат, с контрольной суммой)
на пикче 02 дек потому что в гпс модуле заводская конфа, время утц, его скорректировал +3 в мк, дату не трогал, надо будет поменять таймзону в модуле, но дата не важна, идет только на дисплей
Далее план такой:
1) аналогично написать и отладить код приемника, добавить в пердатчик функцию летнее/зимнее время по кнопке (только щас вспомнил)
2) спаять нормальные макеты, вкорячить приемник в 1 шт часов, протестить 1-2 недели что все стабильно
3) вытравить норм плату, вкорячить пердатчик в норм корпус
МК - атмега88, никаких ордуин
Коды опубликую когда полностью закончу данный прожект, и только в случае если сам буду удовлетворен результатом.
А чего тут такого-то?
Я вчера планировал только на дисплей что-нибудь вывести.
Но процесс ведь творческий же. Вот меня и понесло, до часу ночи пропердолился.
Интерфейс у дисплея достаточно простой. Гпс модуль высирает в порт готовые данные, распарсить одни лишь время-дату - ерунда делов. Трансмиттер - вообще тупой побитовый ногодрыг через одну ногу.
А сегодня походу рождением кода приемника так и не займусь, что-то лениво. В общем, как пойдет. Задавай вопросцы.
Практически стоковая атмел студия (да да, можете обоссать, но мне пох), соот-но, родной гцц
>за 1.5+
Можно подумать, что в Пердуино-треде, после двадцатого бамплимита, собрали микро-федора для унижения кота.
Ну что за бинарное мышление, либо arduino, либо helloworld на stm. Странное у тебя мерило.
Заебись. Заработало. Спасибо.
Код немного причесал, не закоммитил.
Но базово и то что есть заработало почти сразу.
Уляля, нужна кому разводка отладки на стм8с003 для однослойки домашней?
Что сейчас называется ардуиной? Если кто-нибудь портирует ардуинолибы под винду, то станет ли ПК от этого ардуиной, особенно если при этом писать в ардуино "IDE"?
Кто из STM8-бояр может вразумительно рассказать про правильное заполнение тысяч полей в конпиляторе Cosmic? Что значат эти хуиллиарды -i -o ../../?
>лицухой на 32кБ.
эмм. компилятор от космик без ограничений для stm8.
чем мне нравится STVD - ничего не адо настраивать, всё уже сделано, просто добавляешь в проект либы и всё.
> СЛОЖНА
ох лол. открою секрет, есть кривые библиотеки spl, где прямо в h файлах есть названия функций и аргументы к ним для всего, что есть в конкретной либе.
лично мне не понравилась spl из-за того, что она кривая, и чипы stm8 по той же причине легенды о нерабочем i2c не легенды
>эмм. компилятор от космик без ограничений для stm8.
Бля. А я чот по диагонали прочитал, увидел 32кБ. фри компилер. И только после твоего ответа полез вдумчиво читать и дочитал, шо 32кБ для стм32. А я подбираю себе контроллеры с флешем не больше 32кБ. Йоб.
Так, блеать. Ты не можешь разобраться с опциями компилятора или не можешь настроить периферию чипа? Если первое, то зачем они тебе понадобились?
>Если первое
Ага. Ебанное ST в каждом примере или демопроекте по разному прописывает эти опции. Пытаюсь захуярить проект с StdPeriphTemplate, а воно компилироваться не хочет, ругается на всяку хуйню. Хочу замутить чистый шаблон, чтобы просто скопировав и переименовав папку, хуярить дальше.
Ну хз. Там по идее должно быть просто. Смотришь на опции в мейкфайле, читаешь их описание в доке на компилятор. Тебе править нужно только пути. А ещё у стм есть говносайт с комьюнити, поспрашивай там, как тебе правильно добиться цели. Я использую sdcc и самодельный мейкфайл, с космиком дел не имел по тем причнам, с которыми столкнулся ты
>Хочу замутить чистый шаблон, чтобы просто скопировав и переименовав папку, хуярить дальше.
Пошёл ты нахуй, мерзкий недоумок. Всё нормально работает. Проблема в том, что нужно один раз разобраться. ОДИН РАЗ! Разберёшься -- всё у тебя будет. Не разберёшься -- иди нахуй. И я буду рад, что ты туда идёшь, ибо я буду работать в этой сфере, а ты -- нет. Просто потому, что там нужно немного разобраться, а у тебя нет на это потенции... Ты не способен это пройти...
>я буду работать в этой сфере, а ты -- нет
Но я не собираюсь работать в этой сфере. Я хочу на старости лет автоматизировать свой полоумный дом. Поздновато мне перекатываться в программеры.
https://pastebin.com/4MiFwnRS
Сохранить и назвать Makefile (без .txt). Написан для работы с GNU Make, с другими не тестировалось. Рабочий проект представляет собой директорию, в которой находятся поддиректории с сорцами, инклудами, сам Makefile и main.c
+Project_dir
|->inc/
|->src/
|->build/
|->Makefile
`->main.c
В inc/ кладём .h файлы, в src/ -- .c файлы, build/ создастся автоматически при первой сборке. Причём файлы исходников могут лежать в поддиректориях.
Из недостатков -- в системе должен быть установлен sed, который из gnu binutils. Виндузятникам придётся его установить отдельно (или продолжить пользоваться "божественным"фекальным проприетарным иаром).
Могу в принципе скинуть тестовый проект как готовый шаблон, только не знаю куда (архивчик). Спрашивай свои ответы.
Да мне, впринципе, понятно все. подход хороший, но мне пока этого даже с исбытком будет.
ps на sed пофиг, он и так стоит. а то как его называть лишняя инфа.
да, хотел спросить --max-allocs-per-node помогает?
>да, хотел спросить --max-allocs-per-node помогает?
Отожрать память и увеличить время компиляции. Я подбирал так, чтобы в асм-листинге были слова "register assignment is optimal". Можно смело ставить 10000 у меня стоит 100к.
>SPL сильно рекомендую.
Ловите наркомана!
>Ещё плюс SPL — переносимость, чип можно будет поменять на другой из того же семейства (их два — S/A и L) без изменений в коде.
Пиздеж!
Поцчему тред про такие козырные контроллеры не висит в топе, а всплывает раз в пол года из клоаки радача?
потому что при всей своей козырности эти контроллеры представляют собой наивные косячные амбиции STmicro.
Тормозное cisc ядро.
Там нет ,USB, Ethernet, etc. Там нет поддердки внешней памяти.
Там нет GCC, LLVM. Только проприетарное говно и проприетарно,
И кастрат SDCC.
Но в конце концов освоение всё равно проще, чем у АВР. Плюс оче удобно после стм8 вкатываться в стм32 - периферия работает точно так же.
Нету USB у STM8, программно эмулировать если только
Потому что это не ондурино и не стм32
1) Не вижу никакого смысла в этом. Чипы с аппаратным юсб стоят почти по цене тех мег, на которых vusb работал.
2) Насколько я помню, портированием vusb занимался чувак с ником ZiB, и проблема была не в производительности ядра, а в непредсказуемых таймингах из-за конвейера и ширины шины.
Ну так, где проявляется тормознутость cisc ядра stm8?
В том, что на AVR VUSB работает от 8МГц, а на STM8 даже те костыли, которые были написаны, работали при частотах от 16.
просто в силу требуемого количества инструкций.
и на нормальный порт там тупо не хватило частоты и плотности кода.
Звучит разумно, хоть я и не знаком ни с кодом vusb ни с usb -стеком как таковым. Но есть один момент. Как я понимаю, всё это писалось на C. При этом здесь запросто решающую роль могло сыграть способность/неспособность компилятора генерировать эффективный код.
Я считаю, что сравнивать производительность ядер стоит на ассемблерных реализациях и на нескольких задачах.
>, всё это писалось на C.
Почитал бы для начала. Низкоуровневая часть была написана на Ассемблере.
Для деления 32бит числа на 10 с остатком си компилятор генерит код, занимающий 98 байт флеша.
Запилите мне на си/асме функцию деления на 10 с остатком, которая занимала бы меньше места. Т.е. должна вернуть результат + остаток от деления. Цель - сэкономить место во флеше. На быстродействие такого решения - похуй.
В сети можно найти функции БЫСТРОГО деления на 10 с помощью сдвигов и сложений. Занимает оно, к слову, около 200 байт во флеше. Мне нужно наоборот, изврат с минимумом флеша, насколько он будет тормозной - похуй.
>Support for languages other than C is untested
>There is a bug in the handling of volatile in the cbe
>VUSB
>Can be clocked with 12 MHz, 15 MHz, 16 MHz 18 MHz or 20 MHz crystal or from a 12.8 MHz or 16.5 MHz internal RC oscillator.
https://github.com/rikka0w0/STM8-VUSB
12MHz
Да норм там все со скоростью, хотя...
Если там норм со скоростью, что почему таки не сделали нормальный стек USB...
Если даже на AVR реализовали USB с 12 МГц (например, USBASP на древней восьмой меге), то не вижу проблем для STM8.
Да что там авр, я в каком-то ИБП видел USB порт, реализованный на куда более древнем PIC'е, по-моему с такой же частотой.
На AVR сделали стек, который проходит тесты на совместимость, на стм8 - какое-то кастрированное говно.
При том, что делали его этак 3-5 лет.
Это очень странно. Значит, стм8 имеют какие-то серьезные ограничения.
Сам планирую как-нибудь лениво вкатиться в арм, в рамках личного махарайстроя, но пока не решил с чего начинать: с стм8 или младших стм32. Ассемблер дрочить не буду, не вижу смысла, скорее всего предпочту чистый си, как привык на авр.
Не по теме, но.
В рот я ебал, если честно, этот стм8. Серьёзно. Непредсказуемая работа из-за конвейера, как оказалось, усложняет отладку.
Можешь объяснить, в каком месте работа становится непредсказуемой? Как оно усложняет отладку? Ну, мигать с помощью nop-ов может и сложнее, но часто ли это нужно?
И где ты нашел современные, т.е. еще производящиеся, микроконтроллеры без хотя бы двухуровневого конвейера?
Бегло полистал. Это что, тупо перевод официальных файлов с сайта stm? Но нафига он нужен?
>англецким
Расовые пиндосы тоже не понимают, ибо индусами писано, но все равно лучше этого перевода.
>но все равно лучше этого перевода.
Бля, ну чо ты в позу встал? Тебя заставляют штоле ее читать? Человек хоть начать сможет, а дальше и даташиты с референс-манулами будет читать
Начать с этого невозможно. Это не полный Reference Manual в котором около 700 страниц
>Начать с этого невозможно
Ты или траль или интернетный сверхпогроммист 300ккк/сек. Нахуя мне референс-мануал, чтобы первоначально мигнуть светодиодом ШИМ-ом?
ST-Link встроенный в stm8l-discovery может программировать stm8s?
Разумеется может, интерфейсы SWD и SWIM абсолютно одинаковые на всех контроллерах.
>Разумеется может
Оказалось что нет. Шьют только свою серию. L только L. На STM32F4 не видит STM32F1, нужна STM32VL-DISCOVERY. Отака хуйня малята, налутил уже печатку, буду паять st-link.v2
Ты вставил/убрал нужные перемычки и все правильно подключил к SWIM коннектору?
http://we.easyelectronics.ru/STM8/obzor-stm8l-discovery.html
>Здесь у нас обрубок отладчика ST-Link. Прошивать он может только STM8L и STM8S. Для этого его надо отключить от МК на дискавери.
> На STM32F4 не видит STM32F1
Тоже хуйню написал, я со своей отладочной платы STM32F429i-DISCO прошивал F0, F1 и F3 контроллеры без проблем.
>я со своей отладочной платы STM32F429i-DISCO прошивал F0, F1 и F3
А у меня - хуй.
Спаял уже ст-линк, он даже заработал со старта и обновил прошивку. Ща буду пробовать погроммировать все контроллеры.
Ну вот, с клона все заработало, а с 8L, нихуа.
Я вам яростно поморгал светодиодом с помощью контроллера свежезапрограммированного клоном ст-линк. А qfn-печатка так и не завелась. Либо китайца левак прислал, либо я его пережарил феном, либо еще руки не выпрямились для таких мелочей.
>А qfn-печатка так и не завелась
Однако завелась, заменил Vcap с 2,2мкФ на 1мкФ и усё заработало.
Пояните за STM8CubeMX, эта падла нихуя не генерит код?
Более того, stшники им даже не занимаются. Он не обновлялся уже очень долго. Сравни с 32 кубом, который каждый день обновления тянет
Я тут теперь заебывать буду хуже ардуинщега.
1.Альтернативная функция пина врубается только в OPTION BYTE или еще и программно нужно переназначать?
2. При работе с таймерами, порты тоже необходимо конфигурировать или оно само?
>нормальная отладка
Он настолько маленький, что код для него, небось, умещается на одной печатной странице А4. Хуле там отлаживать-то?
>умещается на одной печатной странице А4
Даже если брать в машинных кодах, то на А4 уместится 2,5кБ если без пробелов, а в ебучем stm8s003f3u6tr (размером с мышиный глаз) - 8кБ
Тебя никто не заставляет обмазываться абстрактным говном вместо анального дрочева регистров - на каждый STM есть даташит, читай и ебош свой божественный говнокод. Тем более этот прав >>312704 все уже давно перешли на HAL и радуются жизни, если тебя и в HAL что-то не устраивает, качай LL драйвера от STM и еби себе мозг с ними.
>мда хех...
Что не так? Ты уже HAL написал под стм8? Или с регистрами пердолиться предлагаешь?
>код раздувается и теряет производительность.
Каким образом? Пердолинг с регистрами обернут более читаемой хуйней, как это отражается на производительности?
Да так же как в ардуине, миллион лишних проверок для защиты от дурака, и тому подобное. Жрется лишний флеш, производительность падает в разы, а то и на порядок. Но это проблема всех универсальных библиотек. Алсо, куча подводных камней, например, надо знать и помнить какие таймеры и прочую периферию использует библиотека в своих недрах, т.к. если одновременно попытаться переконфигурировать и использовать их еще и самому, то сам знаешь, какое веселье начнется.
bump же! Почему delay на прерываниях от таймера4 работает, а без прерываний нет?
Сук, оно оказывается работало. Это я с тактированием начудил. Надо покупать осциллограф. Это пиздец. День убить на поиски проблемы неморгания светодиода.
Существует код для stm32, но чёт мне кажется что там необходимо сделать больше чем заменить стандартные библиотеки с одного контроллера на другой.
>Есть какой-нибудь готовый код для этого говна под stm8s?
Пссс, парень, тебе отсыпать кода под stm8s?
Собирался на этой стм-ке замутить датчик влажности с передачей данных по RS-485. Накопал драйвер датчика влажности на сайте ST, охуел от размера и чот приуныл. Не поместится моя задумка в 8кБ кажысь. Ассемблер штоле учить начинать?
1920x1080, 0:05
Всё. Буду перекатываться в stm32. Даже минимальный камень ебет восьмибитник по всем фронтам.
>стм32 совместим с ардуино
WUT? Нахуя мне нужно совмещаться с ардуиной? Сами там сидите в своем говноIDE.
Все совмещаются, и ты совместишься, дурь выйдет, поймешь что экономия времени с библиотеками на все случаи жизни превыше всего, пусть даже с иде в виде блокнота. Ведь ты ж понтовался-кривлялся что будешь пилить сириус дерьмо на стм8, а в итоге с стм32 совместился. Так что это лишь дело времени. Дозревай, мы тебя ждем.
>Ведь ты ж понтовался-кривлялся что будешь пилить сириус дерьмо на стм8
где это я так себя вел?
Ну, вообще говоря, все, кто связываются с стм8, изначально думают как ОП. Потом либо дропают и тайком возвращаются в мир авр, либо перекатываются на стм32.
>Потом либо дропают и тайком возвращаются в мир авр, либо перекатываются на стм32.
Не, ну я не то чтобы совсем дропать. У меня пару десятков восьмибитных камней лежит. Я даже усердно буду пытаться запихнуть связку UART+I2C в 8кБ флеша, зря я штоле ЛУТил плату и паял как не в себя? Просто дальнейшие поделки буду рассчитывать на использование стм32. Ну зачем превозмогать если за даже меньшие деньги получаешь лучший камень? Я правда не знаю, может там страшный HAL пожрет вдвое большую память быстрее чем SPL?
>кто-то тебя заставляет
Я только вкатываюсь. Вернее в сопливом детстве паял МП42 и рисовал печатки цапонлаком и вот спустя n-лет решил встряхнуть старину и вкатиться в контроллеры. Я только и успел раздуплиться с двумя таймерами и тактированием. На UART-е соснул и уже третий день не вдуплю чому он не отправляет букву "хуй" в терминал. Охуеваю от отсутствия русскоязычного сообщества по стм-кам. Везде одни обрывочные примеры, написанные с различным подходом, в космике, иар-е, с использованием SPL, без него, на асме. Пиздец. Пока нашел только вменяемую буржуйскую пдф-ку Starting STM8 Microcontrollers И тут тред только для красоты, шоб було.
>И тут тред только для красоты, шоб було.
Вот кто может пояснить, нахуя конпилятор пихает в контроллер эту хуйню? Байт 200 занято хуй пойми чем.
Ты уверен, что это окажется в памяти микроконтроллера? Может быть ты вообще ELF открыл. Если это все-таки в памяти микроконтроллера, то смотри флаги компилятора.
>>313070
Какой-нибудь intel atom или TMS320 точно также превосходит STM32. Ну и что с того? Или в микроконтроллерах LPC, АЦП имеют намного большую частоту дискретизации, чем во всех STM32. Также в 32-битных микроконтроллерах обычно нет EEPROM.
Микроконтроллер нужно выбирать под задачу, а не потому что один микроконтроллер в чем-то превосходит другой.
>Ты уверен, что это окажется в памяти микроконтроллера?
Это окно PROGRAM MEMORY у STVP. Я так понял, что тут отображается то что пишется в контроллер. Флаги перешерстил и нихуя не нашел какой отключает эту муйню.
>Ну и что с того?
То что при цене равной минимальному stm8s003f, получаем втрое большую частоту, больше памяти и таймеров. Единственно непонятно как высокоуровневые HALы сожрут это преимущество.
>включи генерацию map-файла.
>start 00008080 end 0000814e length 206 segment .const
Это что, константы? Это надо рыть стандартную либу и искать где криворукое мудило прописало пути константами?
По моему это может быть из-за ассертов. Они должны каким-то дефайном отключаться.
>На UART-е соснул и уже третий день не вдуплю чому он не отправляет букву "хуй" в терминал.
Ебать я у мамы долбоеб. Включил ардуиновский монитор порта и неделю нихуя на нем не вижу, грешу на свои кривые недопрограммистские руки, а качнув старый-добрый HyperTerminal прекрасно все увидел. Блядь, как же я ненавижу пердуиновские кривые поделки.
Батюшка, если вы не осилили переключить на нужный порт в пердуино, то я даже и не знаю, как тебя назвать. Ты прям-таки дно пробил.
Переключил, только этот монитор хуй его выводил. Вообще ничего не выводил. Конвертер мигал светодиодами, типа данные шлются, а на компе - хуй.
Поясните еще по UART-у. Пока не вставил задержку после UART1_SendData8, в терминал приходил какой-то хлам. Рандомные символы из строки, выхваченные непонятным образом. Может проверку какого флага надо мутить или и так сойдет?
Сам спросил, сам ответил.
Изучая приложенный к SPL файл помощи, обнаружил в нем флаг ТС (трансмит комплит), вставил цикл с его проверкой и все завертелось шустрее.
Спасибо пацаны!
>И не вздумай вставлять подобный код в прерывания.
А что с ним не так?
>>313335
>Ассерты убрал?
Не нашел ничего подобного. Включаю дебаг, в этой области памяти совсем другие значения. Полазил в настройках компилятора и линковщика, тоже нихуя такого не нашел. Сейчас добавил массив с тестом для UART-а, смотрю он появился в этой области, пути наполовину вытеснились оттуда.
>А что с ним не так?
В прерываниях нежелательно создавать значительные задержки. Если используется несколько прерываний, то такой код может существенно задержать прерывание с меньшим приоритетом. А ведь сама идея прерывания - быстро на что-то среагировать. Например, пока такой код тупит в прерывании, может придти несколько слов по SPI, что получится в итоге?
>Не нашел ничего подобного.
В начале любой функции SPL есть что-то вроде assert_param(какой_то_макрос(параметр)). За assert_param обычно скрывается какой-то макрос, в котором используется __FILE__ для того чтобы ассерт мог выдать имя файла в сообщении об ошибке. У STM8 макрос assert_param вроде бы определен в stm8s_conf.h. Лучше почитай про ассерты, гугл должен знать. Ругаться на криворуких разработчиков SPL в этом случае не надо, ассерты при правильном использовании не создают избыточности и даже могут быть полезными при отладке.
>>313334
Добавлю еще, что:
>Изучая приложенный к SPL файл помощи
Это пиздец. Референс мануал принципиально не читаешь? Как тогда сможешь узнать максимально возможную скорость того же UART-а?
>Референс мануал принципиально не читаешь?
Читаю и то и то. Просто я вкатываться начал неделю назад, вспоминая Бейсик изучашийся на информатике на Robotrone1715 и школьный английский, с которого помню - май нэйм.
Задержки это я просто вставил, чтоб помедленнее
Как российскою мовою его заставить говорить? Типа таких конструкций - "0х950х930х89"?
Если кратко, то нормального способа нет. В стандартах языка Си ничего нет про кодировку исходных файлов. Там вроде бы только набор используемых символов указан, даже про ASCII ничего не написано.
Однако на практике можно использовать однобайтные кодировки, такие как KOI-8, cp1251, cp866 (само собой переключив кодировку в терминале). Но для этого надо убедиться в том, что компилятор использует необходимую кодировку. Например в GCC: https://gcc.gnu.org/onlinedocs/cpp/Character-sets.html
Залез в дебри прерываний. Я правильно понимаю, что этот код в прерывании сам вызывает прерывание пока не отправится весь буфер? Просто в майн.с нет ни строчки кода с такими переменными
>код в прерывании сам вызывает прерывание
Я бы так не говорил, а то возможна путаница. Прерывание срабатывает при опустошении буфера передатчика (судя по всему). Но это же прерывание может быть можно вызвать, установив флаг в каком-то регистре, не дожидаясь окончания передачи.
>Просто в майн.с нет ни строчки кода с такими переменными
Попробовал найти этот пример, но нашлись одни китайцы. Ты китайский пример разбираешь?
Не надо так делать, у китайцев мозги работают иначе, человеческая логика к ним не всегда применима. На гитхабе хватает более нормальных примеров.
>Ты китайский пример разбираешь?
Нет, HyperTerminal_Interrupt из SPL. Примерно понял, после перезагрузки буфер пустой, контроллер сваливается в прерывание и отсылается в UART байт, в конфигурации включено прерывание при опустошении буфера, прерывается и отсылает следующий байт, пока не дойдет до конца массива.
Слажна нахуй. Я не могу так со старта мозги искривить. Хуево на старости лет вкатываться.
ПС. Есть какой-нибудь софт для простого рисования алгоритмов? Лениво в тетрадках черкать тысячи листов пока вдупляю.
Я снова выхожу на связь. Есть датчик влажности со включенным хардварно интерфейсом I2C и запаянный моими кривыми ручонками на плату. Ввиду моих хуевых познаний программирования я кое-как настроил I2C и попытался прочитать в нем регистр WHO_AM_I со значением 0xBC и вывести его в UART. Итак пара вопросов:
1. Я правильно понимаю, что если бы я его криво запаял, то при отсутствии ответа ACK от него, все мои потуги связаться с ним заканчивались бы неизменным значением переменной в которую я пишу значение считанного регистра?
2. Если что-то читается, то в хардварной части можно не ковырять больше и искать ошибки только в софте? Я просто охуенно боюсь его пережать и убить к хуям.
С питанием все в порядке?
Ну и да, обзаведись копеечным лог анализатором, много нервов сэкономит
>С питанием все в порядке?
На дорожках есть. КЗ нет. Проконтролироваль припаянность не могу ввиду ебанутого корпуса.
Вроде работает, когда дыхну на него, меняются данные в регистре. Осталось разобраться со всеми регистрами и запихать это + ModBus в 8кБ
>Читай errata.
Читал. Я там половины не понял. Ввиду хуевого владения С, написал взаимодействие с датчиком посредством записи/чтения по одному байту. Никаких последовательных чтений и хитрожопых вариантов связи не использовал. Вроде работает. Занял этот мой говнокод пока примерно 5кБ флеша. Сейчас раздупляюсь с ModBus и буду пытаться его вкорячить в оставшиеся 3кБ
>Вроде работает
Сговнял по скоряку функцию преобразования двоичного значения в двоично десятичное, вывел в терминал и приуныл. Температуру показывает примерно на 6 градусов меньше реальной, влажность как в пустыне 37-38% При касании пальцем, температура начиная с 24.5 начинает расти и показывать более достоверные данные, а влажность скачет то 31, то 74. В общем показометр сговнял.
> В общем показометр сговнял.
Паrни!!! Проверяйте типы переменных!! Это пиздец, у меня в фунции чтения регистра есть переменная х типа uint8_t, а при чтении младшего и старшего байта, она писалась в переменные x_L&x_H типа int8_t (проебал я u), потом это хитро задвигалось в переменную типа int16_t.
Так вот, стоило изменить тип на правильный и всё захуярило нормально. Влажность правда 41%, но грешу на зиму и отопление. Завтра соберу на пердуине и Si7021 и сверю показания.
ПС. Дякую тобi Б-же, шо я не программист!. Я бы ебанулся на такую работу ходить.
Если у тебя есть спиртовой градусник, то можешь с его помощью точно измерить влажность.
Нету. Вернее есть, но он с рождения показывает температуру на Марсе. Сейчас на нём -7, хотя по ощущениям -30. Все никак не соберусь с духом сваять метеостанцию, которая просто обязана быть у каждого ардуинщика.
Сверил с Si7021. Температура отличается на 0.5 градуса, влажность на 0.7-1.2% Так что, вроде всё нормально.
Nice work.
>у авр непредсказуемое поведение и слет прошивки
Поставил пердуину включать-выключать освещение на стеллаже с рассадой. Двадцать ламп дневного света, тремя группами по очереди. Слетала прошивка при включении второй группы, заменил на стм8 и уже третий год к ней не касаюсь.
На память не скажу . Но это не спасёт от глюков , по тому что сами фьюзы тоже улетают . Лучше убрать AVR8 как не надёжный без 10500 развязок и фильтров . STM8 и дешевле и крепче , ещё и специальный флаг сброса от помех имеет . Конечно в идеале в производстве нужны двухъядерные контроллеры с параллельным исполнением кода , но они дорогие и геморройные .
>>314571
Если у вас даже аврки глючат, то вас уже ничто не спасет. Стм8 в ваших руках будут дохнуть сразу же, при первом же включении, лол. Боюсь представить ваш уровень схемотехники и кода.
>Конечно в идеале в производстве нужны двухъядерные контроллеры с параллельным исполнением кода , но они дорогие и геморройные .
Откуда только таких шизиков берут?
В общем, попробуйте что-нибудь из 8051, судя по всему только они выживут в ваших кривых руках.
При чем тут шизики ? Мы провели тесты >>314576
ололо при чем тут шизики? . Как сделать что бы AVR8 работал четко я знаю . Но для этого нужна себестоимость большая . И с фигали 8051 будет крепче стм8 ? Атмеловский будет точно хреновей , наверное какой-нибудь из древней ракеты и будет крепче , но такой ни кто не продаст.
Если бы вас парила себестоимость, вы бы не использовали ни авр, ни стм. Подумай над этим.
Вы хоть конкурентов изучите для начала.
Нормальная у нас схемотехника и код . Одно дело ардуино подводные поделки работающие на столе в единичном экземпляре . Другое дело серия которая может встречать разные условия эксплуатации и у которой критична себестоимость . Вот я провел тесты на генераторе помех и сделал выводы . Насчет шизиков почему это тогда в аирбэгах , абсе и пр. контроллеры двухъядерные ? Во всем мировом автопроме шизики сидят , и нормальным пацам запрещают атмелку поставить ?
STM копеечные , авр копеечные . Развязка и норм фильтры больше 1000 рушлей . Ну будет конкурент на 20 рушлей дешевле и ни на что не повлияет.
>>314588
Вот кому ты рассказываешь, а? Я держал в руках тонны пром. железа, и знаю что использует тот же сименс и другие топовые конторы в своих девайсах, работающих в действительно жестких условиях помех на разнообразных производствах. В том числе разнообразные приборы безопасности. В том числе и оборудование для работы во взрывоопасной среде. И ты, если такой "продвинутый", то тоже знаешь и видел все это. Но в этом случае получается, что
>Нормальная у нас схемотехника и код
- это пиздишь не кому-нибудь, а сам себе.
Ахаха и конечно там авр8 . Таки жеж ведь факт есть факт , авр без кучи защит дохнет куда быстрее чем стм8 и быстрее чем stm32 , а чемпион пока Kinetis . в серьёзных пром системах на сам контроллер не особо доходят помехи , там гальваничаская развязка и зачастую у цифровых цепей отдельная плата . Чего сравнивать жопу с пальцем ?А ты именно это делаешь .
Ты удивишься, но встречаются и авр, но, конечно же, не авр8.
Алсо, открою тебе страшную тайну: чемпионы по помехоустойчивости - древние автоматы на высокопороговой дубовой ДТЛ и ТТЛ логике, типа совковой 511 серии. Там для ложного срабатывания нужна помеха с нереальным уровнем и током.
Ни какого секрета тут нету , в том что логику углючить сложнее чем контроллер . Чего ты вообще перешёл на личности , не понравились результаты моего теста ? Я покусился на швятый для ардуинщиков авр8 ?
Напротив, 8 битные аврки в евро пром. железе уже лет 8 никто не использует. А вот 8051 и пики - до сих пор. Стм32 встречаются, но только дорогие индастриал серии. При этом, на защитах и экранировании особо не экономят. Делай выводы.
Не представляю себе, кто у вас покупает глючные поделия. По-моему все нормальные предприятия давно подсажены на евро аппаратуру. Нередко даже оплачивают дорогу, проживание и жирный тариф спецов из Германии, особенно на этапах монтажа и пуско-наладки. Как раз таки из-за того, что связываться с отечественным производителем и васянами-спецами - себе дороже выйдет.
Я сам бы конечно , на месте покупателей её не купил . Но блин дело в россиянском менталитете - урвать по больше здесь и сейчас , а не строить порядочный бизнес с качеством и меньшей прибылью.Но по теме то STM8 , как раз хорошо , для дешманных изделий, по тому как он больше издевательств электромагнитных терпит , без нормальной защиты.
Ну как в любой стране третьего мира , белые господа придумают ,поставят и наладят все , а дикари на всем готов шлепают серию . Ура перемога.
Что нового на осьмибитном фронте?
шоб було
Спасибо, анон, выручаешь.
Ебанистически сверхдешевые контроллеры. АВР-дети просто рвут волосы на жеппе.
Это хорошо, но что ты будешь на нем делать? Корпус, печатная плата, батарейка, еще какие-нибудь детали не потребуются? Сколько сэкономишь от стоимости остальных деталей?
А потерять можно время, необходимое на освоение этого микроконтроллера.
Ардуинодети могут сразу проходить мимо, т.к. это не для вас. Эти микроконтроллеры совершенно не годятся для программирования всяких любительских штук, просто потому, что нет таких применений для них. По факту отличие в цене с atmega эфемерное, потому что тратится до ебене матери времени на освоение (хотя по моему мнению STM8 даже проще атмеловских поделий) и паяние. Более того, цена контроллера в единичном устройстве не сильно влияет на итоговую стоимость. Причина проста - время и ручной труд стоят намного дороже всех компонентов вместе взятых. Идём дальше: STM8 это прежде всего промышленный контроллер. Он очень дешёвый и, ко всему прочему, помехоусточивый, что делает его отличным инструментом для устройств, выпускаемых большой серией и работающих в непростых условиях.
В итоге имеем, что атмега - говно мамонта, привет из девяностых; STM8 - отличный контроллер для большой серии ПРОСТЫХ устройств, а STM32 - лучший выбор для радиолюбителей.
Сорян за сумбур - подорвался пердачино от вскукареков местной петушни в тренде. Если надо - приведу в упорядоченный вид и вброшу сюда.
Тебе не кажется, что твои критерии ЭМС односторонние? Ты все смотрел влияние помех на микроконтроллер, а ведь часто важнее наоборот - шумы от самого микроконтроллера.
Да он просто долбоеб. Подвергать не предназначенные для этого мк тесту устойчивости к жестким помехам - идиотизм. Помехоустойчивые версии мк делают в металлизованных корпусах, а-ля военка. Кроме того, есть специальные дорогие индастриал серии, где доработана топология.
Про "стм8 - промышленный мк" вообще ржал в голос. Для копеечных детских игрушек самое оно, да. А всякие сименсы по-прежнему лепят в пром. железо 8051, атмелы и пики (родом из 70х годов, кстати!), армы тоже ставят, но не такое дно как стм8. Короче, пусть клептоман дрочит на свои ширпотребные копеечные стм8 дальше, никому не нужные, кроме китайцев, экономящих каждую копейку.
Господин АСУник ,а может быть вообще киповец или наладчик , сначала разработайте чего-нибудь , пройдите испытания на ЭМС успешно , а потом других жизни учите .
Хорошо ведь на анонимной доске писать, правда? Можно всем ссать в ебало и даже себе, лол, и оставаться дартаньяном комнатным. Ждём ваших промышленных девайсов на 8051 в металлокерамике, а то пока я вижу лишь вскукареки вида
>я не долбоеб, это он долбоеб, а Сименс кукареку
Двачая адеквату
>В каком порядке настраивать регистры?
Включить тактирование таймера.
В любом порядке настроить другие регистры.
Последним поднять бит включения таймера.
Всё.
Есть поделие буржуйского сумрачного гения под названием - термомаслянный котел и температурой масла в контуре - 160С
Есть контроллер управления котлом, созданный еще более сумрачными гениями. Без вменяемой документации и прочих радостей жизни. Имеется только таблица с адресами и значениями модбас-регистров.
Нужно мерять температуры 150-200С и отправлять их по GSM. Не придумал ничего лучше, попытаться написать эмульгатор шести термодатчиков на стм-ке, читать по модбасу данные с контроллера котла и передавать по 1-варе в Кситал. Это законно вообще?
Стой, остановись, не жри гавно!
Поищи у максима микросхемы интерфейсные для термопар и терморезисторов. Есть даже такие, что эмулируют 18б20. Возможно твой кейс
Ох и спасибо Анон, буду изучать как переделать для stm8l152 и прикрутить modbus для опроса котлового контроллера с термопарами.
Для модбаса тоже есть библиотека.
Можно еще взять малинку, usb модем, usb rs485, впс для reverse-ssh и поставить homeassistant.
https://www.home-assistant.io/components/modbus/
А то слать смсочки кситалом в 2к18 тот еще зашквар.
Оптический датчик с выходом не юсб. Как вариант купить китайскую беспроводную мышку за 100р и отреверсить протокол
Тогда берешь обвязку из даташина на сенсор и датащита на камень и:
1. вкуриваешь юсб протокол. Норм описание здесь http://microsin.ru/content/view/1107/44/.
2. вкуриваешь либу юсб на свой камень
3. кодишь прошивку
там написать не могу но суть в том что пиндосы просто захотели сырцы тойотовские пиздануть
а вся статья полное фуфло, прям на первой картинке стрелкой показана qfp sram а выдана за процессор да и в целом показанный блок чуть ли не единственный на рынке который не ломается, не теряет флешь и ставят их с середины 90х по настоящее время
например чё то ни кого не смущает что в ниссанах повально пробивает полевик реле дросселя что вызывает полный газ, или ваговские рейки рулевые с глючным софтом который на 180км\ч может порулить за водятла или вообще залочится
https://www.microchip.com/wwwproducts/en/ATmegaS128
Оказывается можно сделать радиационно-стойкую ардуину. А я и не знал, что такие атмеги существуют. Еще и в металлокерамическом корпусе.
Это вообще к комментариям о низкой живучести атмег.
Тем более что такой ерунды отечественной хватает. И к тому же продают пока еще.
>вот типичный тупой вопрос ардуинщега
Вот типичный ответ STM-дауна, не учитывающего стоимость. Пофиг, что специализированный контроллер или CPLD будет стоить в несколько раз дороже, зато так "правильнее".
Извините, не удержался.
Вот прочитать не могу.
Залипает на самом первом цикле, при проверке бита busy. Хотя при записи - проходит через этот бит и идет по коду дальше.
>при проверке бита busy.
Не знаю как в данном случае, но мне кажется что нужно ждать обнуления бита. А у тебя наоборот.
А ты не пользуешься StdPeriphLib? Меня чота конструкции вида HUI->PIZDA =Dzhigurda ввергают в пучины уныния.
мимонесостоявшийсяардуинщик
>Меня чота конструкции вида HUI->PIZDA =Dzhigurda ввергают в пучины уныния.
>мимонесостоявшийсяардуинщик
Не, мне проще в регистрах разобраться, чем всеми этими залупными библиотеками пользоваться. В которых иногда что-то не работает, и что бы починить - придется лезть в регистры.
Но с регистрами сложнее, за-то один раз и навсегда.
>но мне кажется что нужно ждать обнуления бита. А у тебя наоборот.
Ты был прав. Исправил, заработало. Но после чтения регистра наглухо, залипало в функции. Методом эксперимента, нашел где не хватало задержки, добавил - все заработало как надо.
Вздрочнуть можно.
С подключением. Errata читал или только собираешься?
Начал вникать в суть микроконтроллеров этой Божественной серии. Есть вменяемвя литература по программированию на Ассемблере на них? Хочу писать реактивные программы.
Описание набора команд самого микроконтроллера есть в документации. Описание всяких директив конкретного ассемблера есть в справке к этому ассемблеру.
Какая еще литература тебе требуется? Ну можешь почитать что-нибудь общеобразовательное, о том что такое процессор, какие они бывают, какие у них бывают виды адресации.
>Хочу писать реактивные программы.
Вот это как-то глупо. Что ускорять то будешь? А даже если будет какой-то полезный эффект, то что толку? Эффективнее брать более подходящие под задачи микросхемы.
https://www.youtube.com/watch?v=VYhAGnsnO7w
Говно без задач. Даже специальных применений нет. L серия была бы интересной, если бы не STM32L. Таким образом не имеем вообще никаких преимуществ перед ARM. Дешевизна не аргумент. Если так уж хочется поебаться с дешёвыми МК то бери сразу китайские BJ8P509FNB/FGA за 5 центов штука. Или PADAUK, тут где-то тред был.
Есть в автомобильном исполнении .
Есть на температуры до 150 градусов.
Устойчив к помехам .
В этом смысл STM8.
Но зачем мне 32 битный контроллер, где 8 битного за глаза?
Да какой то тупой мудак киповец кукарекал, кстати нес откровенную ерунду , а мы на работе тестили STM8 на стенде. Так вот они надежные и не дорогие . Под задачи не требующие 100500 интерфейсов и производительности вполне подходят .
Первые МК с которыми познакомился были PICи, но как-то MPLAB да и прочее неуютно было. В универе начальных курсов были атмеги, писали на ассемблере, программировали, работало. Практического применения не нашел. На курсах постарше те же атмеги + IAR, это уже практичнее, но дебага нет.
СТМ8 + IAR - крайне уютная вещь, нормальный дебаг, около года на них побыл, очень полезно для перехода на СТМ32 (по крайней мере мне так показалось)
Ну СТМ32 + IAR думаю и так понятно.
Так к чему я писал этот высер - СТМ8 - крайне приятная в пользовании серия, не слишком увесистые мануалы, интуитивно понятные. Если бы у меня спрашивали что посоветовать новичку - не задумываясь сказал бы СТМ8, наверное самые простые МК с нормальным отладчиком. Вы можете включать светодиоды вообще без кода, просто изменяя значения битов регистров в режиме дебага.
SPL, HAL и прочую индусовщину не использовал, библиотеки только стандартные Си ну и ARM_MATH естественно.
Ну а в целом, хуй вас знает, все МК +- одинаковые, главное чтоб устройство работало надежно
>Если бы у меня спрашивали что посоветовать новичку
Какому именно "новичку"?
Нынче ардуйня дошла до степени, когда даже 5-8 летние дети пишут программы для мк на адаптированном ЛОГО, с красочными визуализациями, и делают роботов.
И тут ты со своими отладчиками, регистрами-хуистрами и байтоебством. Подавляющее большинство новичков выберет именно ардуйню, хоть ты тресни.
>Какому именно "новичку"?
Человеку, который осознает, что "байтоебство" и регистры это базовые знания, без которых стоит идти нахуй в менеджеры.
И да, пожалуй я сформулировал наконец - человеку который хочет уметь программировать оффлайн
>port_name->odr &= ~gpio_pin;
Ха, ну ты и лох. Нормальные люди делают так:
PORTA_Pin1=1;
PORTA_Pin1=0;
для атмеги, преобразующиеся в ассемблерные команды sbi/cbi и выполняющиеся за один такт, и
GPIOA->BSSR=gpio_pin;
GPIOA->BSSR=gpio_pin<<16;
соответственно для СТМок.
Собственно, функции типа GPIO_SetBits(LCDPwrPort, LCDPwrPin); или HAL_WritePin это и делают. Последжняя ещё и проверяет внутри, правильно ли всё с пином. Но, любые функции работают медленнее, чем напрямую работать с пином.
А то что ты написал, или конструкции вроде этой #define PIN_LOW(X) X##_PORT->ODR &= ~X вместо - хуйня для быдлокодеров, и если состояние пинов в порте меняется ещё и в прерывании например, то вы рискуете заработать ещё и глюки.
Палю годноту: освоивший ассемблер (или хотя бы способный прогать без обёрток и HAL) для STM8 и STM32 рискует получить стабильную работу с годной зарплатой.
Двачую.
Правильный ответ - среди LPC есть более древние ядра чем среди STM32. Вот они отличаются, но в среднем там те же кортексы м0/м3/м4, с тем же самым набором команд что в STM32.
Ты бы еще написал что там Си отличается. Ассемблер для STM32 звучит почти как "карандаши для седьмого класса".
>>357930
>>358287
А что, в 2к19 есть люди, которые верят, что смогут родить код лучше, чем получится у современного компилятора, со всеми его оптимизациями? Нынче для МК везде все пишут на Си и его вариациях, не видел чтобы кто-то ебался с ассемблером, ну, кроме студентов, которых до сих пор пытают снятыми с производства 8051, авр-мегой8 и древними пиками.
>в 2к19
Сразу видно тупого человека
А по факту - да, ассемблер нужен. У ядер процессора (если говорить о кортекс да и любых других) есть специфические операции, например перестановки битов, байтов, и прочего, чем компилятор пользоваться просто не умеет, ДА, некоторые ASM команды имеют функции CMSIS, например синхронизация, прерывания, те же битовые реверсы, но собственно и все. Смотри пик.
При этом команд специфических команд АСМа гораздо больше и как воспользоваться той или иной в данном случае решать компетентному разработчику, а не компилятору, ну кроме очевидных решений.
Таким образом, любой, кто говорит "аряря АСМ пережидок прошлого, ряя студенты" - с 95% вероятностью некомпетентное ардуинобыдло которое дальше глубже (не выше, а ниже) Си никогда и не заглядывала. Продукт вашей работы - ГОВНОКОД
Это смотря как программировать. Ассемблер это не обязательно длинные стены текста, в которых можно самому заблудиться. У программы можно сделать чтото типа архитектуры, и довести программирование до копипаст кусков кода, внося небольшие правки, или использовать один и тот же код, для разных нужд, сокращая общий объём всего кода в разы. Это с опытом приходит, в начале пути всё в кучу, вперемешку с говнокодом.
>пытают
Совершенно очевидно, что студентам по соответствующему курсу должны рассказывать о том что такое процессор, какие в них бывают инструкции, виды адресации, организация памяти и прочее. Написание пары лаб на ассемблере в этом случае лишь закрепление полученных теоретических знаний на практике. Тем более что ассемблер для таких микроконтроллеров намного проще чем Си.
>>358314
>можно сделать чтото типа архитектуры
Как ни делай, все равно будет облом при переходе на другую архитектуру. Даже если кортекс M0 поменяешь на M3 или наоборот. Значительных трудностей при переходе не будет только если на макросах сделать подобие форта, но по скорости это явно будет хуже Си. Писать все на ассемблере это невероятно глупо.
>>358310
>ардуинобыдло
Многие СТМ32-дауны ничем не лучше.
>Писать все на ассемблере это невероятно глупо.
Да. Я Си не отвергаю.
но мне незачем заморачиваться этим, я же для себя.
>ардуинобыдло
>Многие СТМ32-дауны ничем не лучше.
Ну, это уже нарицательное, не зависимо от микроконтроллера.
Если человек без SPL/HAL/LL ничего руками сделать не может, как в треде stm32 последние посты (учитывая довольно простую и хорошо описанную архитектуру), то никак иначе как ардуинобыдло его назвать не получится. Дело не в АСМе, Си, библиотеках и прочим, а в том, что они не способны даже сами включить тактирование МК без CubeMX, это печально, товарищи.
>Ну а в целом, хуй вас знает, все МК +- одинаковые, главное чтоб устройство работало надежно
Ну ты сравнил хуй с жопой. Одно дело - атмеги и пики, совсем другое - кортексы на архитектуре ARM, типо STM32.
Ну вот сделаю я тебе, не знаю, регулятор температуры, или какой-то измеритель какой-то там важной величины, ты ведь даже не отличишь, какой МК там стоит, да и зачем тебе это вообще знать? Всегда веселило название на китайских магазинах, например "солдеринг стейшон STM32", это даже смешно ведь, она для пайки только стм32? или при наличии внутри этого процессора она паяет без флюса и припой, или силой мысли?
Это позор такого же уровня как писать на печатной плате свои какие-то данные типа @Petrovich_nihuasebe_devices
Поглядите отзывы у китайцев с фотками, как выглядят платы, рукалицо
>солдеринг стейшон STM32
Ты немного не прав. Разумеется какой именно там микроконтроллер не важно, но важен алгоритм регулировки. Сложилось так, что вроде бы у паяльников на STM32 прошивка заметно лучше. Вот китайцы и пишут на чем оно, чтобы их как-то отличать. Или в случае тестера транзисторов Маркуса, от объема памяти в атмеге зависит количество функций, шрифт, язык.
Но в остальном с тобой согласен. Ладно еще писать что какие-нибудь DSP, у которых еще и байт не из 8 бит, это совсем другое. Но кортекcы только лишь несколько шустрее и периферия более развесистая.
>>358455
>кортексы на архитектуре ARM
Масло масляное. Это название семейства ARM ядер.
>DSP, у которых еще и байт не из 8 бит
Байт везде одинаков. И на Земле, и на Луне он равен 8 бит.
> Но кортекcы только лишь несколько шустрее и периферия более развесистая.
И память побольше.
>Ну вот сделаю я тебе, не знаю, регулятор температуры, или какой-то измеритель какой-то там важной величины, ты ведь даже не отличишь, какой МК там стоит, да и зачем тебе это вообще знать? Всегда веселило название на китайских магазинах, например "солдеринг стейшон STM32", это даже смешно ведь, она для пайки только стм32? или при наличии внутри этого процессора она паяет без флюса и припой, или силой мысли?
Ну не зря же за программирование ARM(STM-8, STM-32) платят намного больше, чем за программирование обычных микроконтроллеров. Они намного мощнее и производительнее.
>Если только применительно к протоколам передачи данных, а не процессорам. Ты хоть википедию почитай, прежде чем писать бред.
Маня обиделась.
https://ru.wikipedia.org/wiki/Байт
Байт (англ. byte) (русское обозначение: байт и Б; международное: B, byte)[1] — единица хранения и обработки цифровой информации; совокупность битов, обрабатываемая компьютером одномоментно. В современных вычислительных системах байт состоит из восьми битов и, соответственно, может принимать одно из 256 (28) различных значений (состояний, кодов).
>А это значит необыкновенные микроконтроллеры?
Да, они на архитектуре ARM, это намного сложнее обычных.
Нужно ли МК и ПЛИС программистам пруфать свой опыт работы проектами на гитхабе?
Нет, только на собеседовании спросят: "Есть два стула..." Ну ты понял. Примерно как недавно у анона, который писал в прикрепленном треде >>358855
И почему вдруг гитхаб а не гитлаб? А может кто-то пользуется кроме гита другими системами контроля версий? Что мешает использовать свой сервер или просто не использовать сервер?
Ну я думал, что стажа в трудовой с релевантным опытом достаточно. Не знал, что для эмбеддеров тоже нужно вести гитхаб.
Меркуриал это хорошо, у него команды более адекватные. Но bitbucket это как-то не очень, периодически радужным раскрашивается.
Into trash it goes. Иронична даже, ведь иконка то у них - мусорная корзина.
Слушайте, ща с новым поделием хочу закатится туда, т.к. дешевизна нужна пиздец и стоит выбор тня848 или стм8
Помню несколько лет назад уебался, что нет нормальной среды, а сейчас чего?
Гуглить впадлу, вдруг анон чего дельного посоветует.
>>358353
Всегда охуевал с количества говна высираемого HAL.
Вполне красиво зато
Написано же.
Древняя пикча ещё с кнопочным телефоном
Купил китайский ST-LINK, а у него Target VCC никуда не распаян. Как дальше жить-то?
Собери сам, могу прислать голую плату
Акромя очевидных даташитов чего есть с литературой по этим микрухам?
Хз, а че к ним надо? Они простые как 2 пальца. Сам вот выучил за тройку дней, считай всю периферию - брал для проекта где его ресурс на 99% используется, рай перфекциониста в общем.
На самом деле даже не хватило - у S003 нет опорника для АЦП, сидишь меряешь попугаи блядь.
В кратце о семействе:
1) Хрупкие, спалил один (правда переполюсовкой, лол, но все же, атмеги держут дай боже).
2) SWIM - уебанский, по факту лучше вообще забыть про совместное использование этой ноги + спец обвяз нужен.
И даже так, чуть что - глючит и не коннектится.
Постоянно рандомные резеты, при подключенном дебагере.
3) Нет вменяемой среды, хотя это для всех МК, окромя AVR свойственно. (Вот ща микрочип запилит поддержку пиков в Atmel Studio и все остальные производители уйдут на невероятно далекий хуй).
Ага конечно запилят, уебанство в сфере IDE для MCU уже давно традиция, AVR уже переносят на уебанский MPLAB X
4) Очень поганая errata. Прям пиздец поганая, на S003 больше половины EXT IRQ могут теряться при одновременной работе прерываний другой периферии.
А что самое пиздатое - при некоторых условиях, прерывание этой периферии срабатывает дважды.
Фикс не планируется.
5) В традициях STM - reference manual писал двачер-корзина, не умеющий понятно выражаться.
6) Вот эти все сука STMовские регистры, которые хуй адекватно поиспользуешь без хуман-леера. А его блядь нет, есть уебищные STDLIB и CUBE, которые блядь еще из-за косяка в регистре не совместимы с между S и L.
Красота.
Хуй знает, они даже для микросерийки на хуй не нужны вот с этим всем. Мне зашло, только по причине, что люблю на чем-то максимально дешевым работать, используя максимум ресурсов.
Считать значение висящего в воздухе аналогового входа? Или подать на него сигнал с генератора бурой ноты?
Сделать блядь любой замер из АЦП, сука блядская даже 8бит точности осилить не может.
Настойка радиолюбительская, на stm8s103f3p6
крепость 90%, со вкусом канифоли
Какой компилятор использовать? Живу на пингине. IDE не использую, в лом разбираться со всей этой хуевертью, мне на всё про всё мейкфайлов хватает, пока.
Какие к ней идут либы, у 32 которую тоже ковыряю, там есть CMSIS, где тупо адреса регистров поименованы и два варианта абстракций с верху с функциями инициализации. Что с этим у восьмёрки?
Поебать на компиляторы, ты же не про или гик, используй те инструменты, которые нужны. А сейчас тебе нужны, те, которым быстро обучится и легко использовать.
> Живу на пингине.
Ну ты уже легких путей не ищешь.
Используй то, что может работать с дебагером и регистрами, что бы мог периферию в ручную запускать (записывать и читать биты прям во время работы).
Я без либ ковыряю, особенно первые разы, что бы разобратся в системе.
Но пижу, STDLIB использовал для GPIO, т.к. там все и так понятно, а свои функции долго писать.
Мне вот этот нравится, там все у него
https://lujji.github.io/blog/bare-metal-programming-stm8/
Компилятор на пингине SDCC,отладка gdb + OpenOCD
Че сказать, один из миллион C51. Это все промышленные контроллеры, когда надо экономить центы и влезать в 99% периферии.
Они тебе не нужны. Если уж на то пошло, то считаю, что для домашнего пользования, ничего кроме AVR и SAM нинужна.
Т.к. цена не так сильно различается, а вот кач-во инструментов решает.
Хотя есть конечно вот такие индивиды >>374704 >>374647
Которым есть не давай - дай попердолится.
Винда нужна для n76e003.
Почему вдруг AVR8 удобен для домашнего использования?
Отладчик джитаг неудобен.
фъюзы неудобно .
>фъюзы неудобно
Да хз, это просто фича, она есть или нет. С одной стороны - хуй тебе динамический конфиг, с другой - да похуй, все равно ты им не пользуешься.
Зато код инициализации уменьшается.
>Почему вдруг AVR8 удобен для домашнего использования
Среда. Не требуется тебе работать в кривом и неудобном говне, типо иаров и кейлов.
Ни в одном из них, нету нормальной подсветки кода.
>Отладчик джитаг неудобен.
Ну он скорее дорог. Вот это действительно недостаток.
Атемль студия же, на базе MVS.
И с чего начинать, будет ли n76e003 достаточно прост для вкатывания.
>Стоит ли в 21 веке изучать mcs51
Для чего? Создание светящихся унитазов - нет и на хуй не нужен.
Если профессиональной разработкой планируешь, не стоит, а обязательно, критически.
>И с чего начинать
Начни с атмелевских, на них больше всего доки в русском сегменте будет.
А так - почитай рефернс мануалы и начинай на том, чьи тебе больше понравились и понятнее оказались.
Стоит заметить, что C51 сейчас нигде нет, это подмножество разномастных процов, которые ПОХОЖИ, но имеют различия в ядре.
Вот второму анону уже говорю - попили тред-репорт, как начнешь.
Интересно на самом деле посмотреть ШО ТАМ У НЮВОТОН.
Да и самого будет мотивация - не прослыть на анонимной борде неосилятором.
Изучай гамигучи .
Потом яростно дрочи .
И так постигнешь дзен написания прошивок под STM32 /
А так то можно особо и не вкатываться сгенерить в кубе инициализации переферии . Ну да получиться гомосятина , но поди прокатит .
>осоветуйте литературу для вкатывальщика
Да нету ее нихуя, блоги, форумы, тематические каналы на ютубе из которых ты до уровня
>Хочется представлять целиком что она делает, а не по отдельным кусочкам
врятли дойдешь. Потому-как "учителя"-мартышки.
Сори, не увидел треда про стм32. Пойду туда.
>>384709
Ну мне по факту "по работе" много и не надо, моих знаний достаточно для поставленной задачи "найди ненужные костыли, выпиши и обсуди с программистом, можно ли их поправить". Но научиться в любом случае хочется, как минимум ещё одна строка в резюме, раз уж мучаюсь с этим. А самый главный минус в том, что у меня самого изделия на руках нет, и я с ним работать не могу, только в самой прошивке в кейле и в кьубМХ вожусь.
>>384714
Потому я и пришёл к бывалому анону в надежде хоть что-то нарыть, литературы ноль, а на ютубе подпивасы за 40 рассказывают, как лампочками с помощью HAL поморгать.
>литературы ноль, а на ютубе подпивасы за 40 рассказывают
Да так оно и есть. Потом "Кситал" на восьмибитках собирают и продают как передовое изделие за 10к+ У меня стойкое ощущение, что в РФ все комьюнити заканчивается на паре ДиХальтов.
>задачи "найди ненужные костыли, выпиши
>у меня самого изделия на руках нет, и я с ним работать не могу
>Обычный инженегр-схемотехник. Что почитать, что поучить с самых нулей?
Ты в курсе, что у тебя работодатель - долбоеб?
Как бы да, по идее в нынешних реалиях, цифру должен программист разводить, меньше геморроя будет.
Но вот схемотехника учить пограмированию, это как пограмиста учить схемотехнике ИИП или Аналоговой схемотехнике.
Выучить то можно, но блядь по хорошему к этому с азов подступать надо и времени занимает не неделю.
По теме, вряд-ли, если ты не имел дело с МК до этого, тебе что либо поможет.
В плане помимо тупого знания структуры, там надо знать "приемы" и типовые проблемы, что чем может быть вызвано.
Иначе можно обозвать тупым куском кода какой нибудь атомарный доступ и словить рандомные резеты раз 2 дня.
Изучать МК это изучить простое ядро в идеале, пописать на нем, побиться головой об стандартные и не очень ошибки, после чего лезть уже в другие.
STM32 не легкая архитектура, с кучей своих личных "приемчиков", которые я сам не знаю ибо с ней работал лишь в целях любительского ознакомления.
Даташиты от ST способствуют путаницу.
Если так хочешь строчку в резюме - я советую поизучать дома PIC, после чего перелезть на современный 8bit и потом уже смотреть на ARM.
Все эти контролеры схемки и пр.
По сути тот кто этим занимается в конторе это типа петуха на зоне .
Самая зашкварная работёнка , кабанчиком надо учиться подскакивать , а не это пидарство задротное изучать .
Макак иди колбек с кнопки напиши и не сри тут.
Да ладно, это же старый добрый PDP11.
На нём при определённой сноровке можно было непосредственно в машинных кодах писать, без ассемблера.
При определенной сноровке ты на чем угодно можешь в машинных кодах писать.
Только считать это каким то неибаца умением - это тоже самое, что таскать кирпичи и угарать над тем какие водители грузовиков дети.
Речь не об умениях, а простоте, логичности и красоте системы команд. По сравненению с другим железом тоого времени.
Сравни с MOS 6502 и Intel 8080. Чуешь силу?
Даже если до этого не видел какой-то подобный процессор, то долго ли прочитать описание системы команд и начать писать на ассемблере?
И разве gcc для него нет? Или каких-то инструкций не хватает?
>И разве gcc для него нет?
На нём зародился язык Си.
Вот тут каноническая история языка Си - https://www.lysator.liu.se/c/chistory.ps
Нет, потому, что я не изучал эти МК и честно говоря не собираюсь. Это какое то бесполезное нерд-хобби, оно мне абсолютно неинтересно.
Вот этот прав >>384783
Проц это просто проц - прочитал даташит и начал писать, просто сраный инструмент, но даже тут люди начинают столбить кумиров и искать "силу".
Я хуй знает, ты же не восхищаешься ручками пассатиж ? Тебе могут они нравиться, ты можешь обсудить у кого лучше, но блядь нахуй мне выяснять ручки каких пассатиж 1920х годов лучше?
Интересуют прежде всего сложение, вычитание, умножение и деление. Но тригонометрия и корни тоже не помещают. И желательно чтобы лицензия была демократичной.
На чем?
А лицензия статически линковать позволяет? И там же наверняка завязано на другие библиотки, в итоге придётся тянуть за собой половину glibc. А хочется странного - маленькую компактную платформонезависимую библиотеку. Не беда если она будет неоптимизированная и медленная, главное минимализм.
Неспешно ожидается информация о программной реализации IEEE754. Ладно, бог с ней, с тригонометрией - есть хотя бы компактная реализация на Си операций сложения, вычитания, умножения и деления? Разве я многого прошу?
Тебе выше отвечали. Такие вещи входят в состав стандартной библиотеки. glibc, newlib и прочие. Зачем делать это вне стандартной библиотеки? Разве только в виде задания какому-то студенту.
Причем сомневаюсь, что там на сложение/вычитание будет много кода, максимум десяток макросов. Или ты макросы вручную раскрыть не сможешь?
>>385803
Но он про числа с плавающей запятой.
>То-то везде по плису и кортексу напихано,
Везде пихают PIC и AVR.
> а не 8051,
Их уже не выпускают... Они старые.
>ти и стм.
Что за "ти"?
Ты отвечаешь на сообщение 17-ого года.
>Их уже не выпускают... Они старые.
Из относительно современного и часто использующегося в любительских целях есть nRF24 (nRF24LU1 и другие) и CY7C68013A.
>Что за "ти"?
Возможно он имел в виду 16-битные MSP430 от texas instruments. Однако у них есть много других микроконтроллеров, процессоров и DSP.
>Причем сомневаюсь, что там на сложение/вычитание будет много кода, максимум десяток макросов.
Сложение гуглится легко.
https://codereview.stackexchange.com/questions/139020/addition-of-two-ieee754-32bit-single-precision-floating-point-numbers-in-c
>Их уже не выпускают... Они старые.
Лол, это первый проц в мире по массовости и кол-ву выпускаемых и разрабатываемых устройств.
>Везде пихают PIC и AVR
Не везде. АВР в малосерийке или дорогом оборудовании, где цена комплектухи не важна.
По пикам хз, я их не видел, но как писал анон - у микрочипа 1ое место по объему.
>>385948
Вот 430 довольно популярные, от многих слышал признания в любви к ним. Думаю вот сам попробовать.
>Сложение гуглится легко.
И похоже что это мусор, ибо:
> your case will fail with number 1 = 1.9375 and number2 = 1.9375. in this case mantissa for both numbers is 7864320. output sum is 1.875 which is wrong
А вообще весёлые вы ребята - кто-то использует микроконтроллеры с математическим сопроцессором и не слышал о проблемах связанных с плавающей запятой, а кто-то использует копеечные примитивные чипы и ему нафиг не нужны вычисления с плавающей запятой.
А кто то использует копеечные чипы и умножает значения на несколько порядков, что бы избавиться от дробной доли.
> умножает значения на несколько порядков, что бы избавиться от дробной доли.
И это самый эффективный способ. И точность не теряется. Но не всегда такой способ подходит. Он чертовски хорош, но не универсален.
>О каких ты проблемах?
Удачи тебе считать флоты в контролле какого двигателя и еще чего "стандартными" методами.
Но я не утвержда, что проблема не надуманная. Есть куча способов обойти необходимость арифметики с float.
Естественно, что при вычисления с фиксированной запятой будут эффективнее, но речь шла о реализации IEEE 754. Ты утверждаешь, что IEEE 754 не нужно в принципе если нет аппаратной поддержки? Может и так, но это не относится к обсуждаемому вопросу.
Или ты утверждаешь, что в стандартных библиотеках вычисления реализованы ну очень неоптимально? Ну тогда давай, ткни пальцем в замеры разных софтовых реализаций IEEE 754.
схоронил
>А если MIPS, то значит "обыкновенные" и соответственно более "простые"?
Ну а сам то как думаешь?
Значит писать программы на брейнфаке для брейнфак-процессора будет еще проще, потому что команд еще меньше и они совсем простые.
Где ты мог встречать такие высказывания, учитывая то, что такого семейства микроконтроллеров как STM-8, просто не существует?
Может STM8 отдаленно похож на 6502, но различия начинаются уже с регистров процессора - у STM8 индексные регистры (X и Y) по 16 бит, а у 6502 только по 8.
>Из-за него не известно время выполнения инструкций?
Нет, не известно не из-за него, а из-за того что в документации все это дело не расписано. Конвейер есть и в AVR, только двухступенчатый. Ну и прерывания не будешь же запрещать.
>Ну и прерывания не будешь же запрещать.
Ну обычно так то кол-вом циклов интересуются именно для прерываний или каком-то очень узком, частовызываемом участке кода, где важна не разовая скорость, а средняя.
>Although the decode and/or execute stage of some instructions may take a different number of cycles, a simplified convention providing a good match with reality,
Листая документацию по диагонали, я это так понял, что все-таки нет. По этим сведениям можно посчитать только приблизительно.
От целей.
Вообще как сказать, если твоя программа позволяет тебе сидеть по 500мкс и нихуя не делать, значит тебе и не нужно, а программа простейшая, т.к. иначе ты бы насосал уже сам.
А если нужно, то уже от целей.
Если нужны не точные, длительные задержки - диспетчеризация.
Если нужны точные и быстрые, я кооперативный таймер делаю, это несколько заебно, но оно редко где нужно, обычно в эмуляции интерфейсов софтом каким.
Про точные и долгие не скажу ибо никогда не требовалось, там надо думать.
Вообще, обычно таймеры планируют с молоду, в простом приложении можно и на хардварных все сделать, че им простаивать.
И к слову ИМХО, с длительными задержками как с GOTO, скорее всего у тебя с архитектурной точки зрения что то не-то, раз тебе требуются они.
Вот всё по полочкам разложил, прояснил мозги. Благодарствую!
>системы от Матюшова
Кусок референс мануала криво переведенный. Никакого разбора там нет. С гугл транслейт можно 10 таких книг по ст написать.
Извращенцы, решил вкатиться в погроммирование ваших контроллеров и соснул на этапе установки IDE. Есть для него чего-нибудь отличное от Cosmic_und_STVD? У меня эта ебала впала в грех требования лицензии, хотя я ей ее подсунул и Cosmic ее схомячил. А после установки STVD пошла жара. Я уже ебанулся нахуй. А хотел под кофиек нервосетки покодить на йоба-дешевых контроллерах
Моя срака раскалена до предела. Погуглив эту фичу у космика я понял, что меня спасет только полная переустановка винды. На такое я идти не собираюсь и поэтому пришлось мутить магию со встроенным гипервизором, ставить в гости вин7 и ставить космик туда. Теперь вот ебусь через шару. Где такое, блядь, видано?
Не пользуйся этим говном.
Ставь IAR. Он пустой почти, но не будет ебать мозги и летает.
Писать код можешь в другой студии.
Вообще, для вката СТМ8 не самые лучшие мк.
PONESLAS'
Для таймерв GPIO надо настраивать как в STM32 или нет? Чота я по примерам не вкурил
Тем что закатывальщику нужны максимально юзерфрендли гайды. С СМИШНЫми рисунками и картинками.
А не какая то херня, еще и стороняя. Я например даже в душе не ебал до недавнего времени, что ассемблеры бывают разные под один проц. Всегда вставки писал на языке вендора.
>закатывальщику
Да я "закатываюсь" уже шестой год в вялотекущем режиме. Только начал не с того конца (с стм32)
Анчоусы, меня унижает TIM4 в STM8S003F3U. Просто задоминировал нахуй. Делаю на нем задержки как написано в откуда-то скачаной книжице, а он нихуя не работает нормально. Пришлось delay спиздить из примеров для STM8L. Нука погроммисты 30000ккк/фсек, поясните в чем дело?
*обведенная красным конструкция хуй работат. Пришлось ставить проверку как с примера:
while(us--) {
while((TIM4->SR1 & TIM4_SR1_UIF) == 0);
TIM4_ClearFlag(TIM4_FLAG_UPDATE);
};
>>404979
СИНХРОННЫЙ DELAY
@
ЧЕРЕЗ ТАЙМЕР
Нехуй работать через SPL.
Я как то писал и напишу еще раз, из базовой периферии, таймеры - самая ебанутая и задроченная хуйня в STMах, что 8, что 32.
Если ты будешь их через спл изучать - ты соснешь. Изучай через регистры, я не ебу как эта хуйня работает через СПЛ.
Ну либо изучай как работает СПЛ, что в принципе одно и тоже.
>Делишь 1 на тактовую частоту. Ваш кэп.
Но ведь там конвейер, предварительная выборка команд, вот это вот всё, не?
А симулятор тебе на что?
Ну, сделай цикл с 16 или 32-бит переменной, и если этого мало, то в нем такой же цикл. Количество итераций для необходимой задержки подбери экспериментально. В чем проблема-то? Отцы так делали, и ты сделай. Тем более что особая прецизионность тебе явно не нужна.
Итак. Репортирую о силе вкатывания. На данный момент разобрался с GPIO, тактированием, таймерами и всяким PWM. Краем глаза коснулся ADC, но тут кончился флеш у stm8s003. 8кБ ушло на тактирование, таймер с 3 каналами PWM, кучу из 20-ти if-ов и TIM4 в качестве счетчика задержек. Это у меня говнокод такой и надо вкатываться в ассемблер или COSMIC чудит? Я только собрался погрузиться в пучины interrupt-ов
Выключил ли ты ассерты (если используешь SPL)? Уровень оптимизации менял? Без SPL пробовал?
8кБ это конечно маловато, хотя многое влезет. Смысла от STM8 в домашних поделках не много, вкатывался бы ты лучше с кортексов.
>вкатываться в ассемблер
Если это для настройки периферии, то сомнительно что будут какие-то улучшения от ассемблера. Настройка периферии это простая запись констант в регистры, там нечего оптимизировать. Хотя чего там вкатываться в ассемблер, за пару дней все можно освоить.
От человека зависит. Проблема может быть только в возможном отсутствии годных учебников. Если учебники отсутствуют, то стоит начать с 8080, AVR или еще чего-нибудь.
>стоит начать с 8080
Да пролистывал по диагонали для 286/386/486 процессора. Чота сильно заумно. Может начать с ассемблера под ARM?
>для 286/386/486 процессора.
8080 на порядки проще, он вообще мало чего имеет общего с этими. Не нравится 8080, можно с AVR начать или 6502. Тут главное не особенности конкретного процессора, а учебник по общим принципам.
>с ассемблера под ARM?
Он немного сложнее. Также по нему тоже наверное не найдешь учебник для начинающих. И вообще их много разных.
Самое главное что требуется понимать - не нужно трогать руками ассемблер, за крайне редкими исключениями.
Я тут нашёл пару книг по ассемблеру от Acorn Archimedes, проще него ARM вряд ли будет. Впрочем, Acorn даже тут предлагает C/C++ и частично ASM для оптимизации.
http://www.riscos.com/support/developers/asm/
http://www.computinghistory.org.uk/cgi/archive.pl?type=Books&platform=Acorn Archimedes
Ещё MOS 6502 или Motorola 68000 можно посмотреть, это относительно простые процессоры, дальше начинается пиздец.
https://www.americanradiohistory.com/UK/Bernards-And-Babani/Bernards/BP184-An-Introduction-to-68000-Assembly-Language.pdf
Открывать ТОРом или через кеш Гугла.
Если бы добавил что в СНЕ, было бы оправдано да.
Но ты не сказал. А так да, дедовским лучше - код короче, проще, не задействует железо, которого мало.
>>405219
Не наебись как я.
Запись в ADC.EN включает питание ADC.
Что бы совершить конверсию, надо записать еще раз.
PS говнокод и ассемблер. Поставь иар.
>>405233
АРМ ассемблер очень сложный. Относительно других. Это больше ассемблер x86, чем всяких МК.
Говнокод. Специально поглядел сколько занимают древние поделия, всякие контроллеры печек, аналоговые датчики, контроллеры паялки,что-то с индикаторами, нигде больше 2кБ не было занято. IAR.
Не несите хуйни про ассемблер, если вы не знаете зачем он вам, значит он и не нужен. Хотите светодиоды, датчики-хуятчики, простые и сложные изделия, вам для всего этого более чем достаточно обычного си и компиляторных INLINE или intrinsic функций.
>>405243
Не открывал, но наверняка это не слишком хорошо пойдет для начала. Лучше взять что-то более общее по микропроцессорам, чтобы излагалось в таком виде: "Стек это..., используется он для того-то. В разных процессорах встречаются вот такие варианты организации стека, а в рассматриваемом процессоре применен вот этот вариант. Инструкции за это отвечают вот такие, которые работают вот так". А в твоих книгах, судя по их названиям, могут сразу писать особенности конкретных процессоров.
>>405259
>нигде больше 2кБ не было занято. IAR.
Наверняка у него не отключены ассерты.
Про ассемблер все верно, но если так хочется осилить ассемблер, то пусть изучает, много времени не отнимет и во вред не пойдет.
>>405261
В большинстве случаев так называют простые макросы вроде
>#define __NOP() __ASM volatile ("nop")
То есть просто вставляется в код одна отдельно взятая инструкция. Есть варианты чуть посложнее, с аргументами, значения которых передаются в регистры, которые использует инструкция.
Используются intrinsic, например, для того чтобы отправить микроконтроллер в спящий режим. Также бывает используется для примитивов синхронизации, но это уже сделали во всяких ОС. А еще для SIMD используют.
Короче все это тоже не нужно в 99% случаев.
Таймеру можно найти более полезное применение, чем реализовывать унылую задержку. Ну, если он у тебя не используется, то задействуй, конечно. Но ты же сам спросил про NOPы, тебе и ответили.
Для честного освещения ситуации.
Когда мой пердак раскалился до пары тысяч градусов от скачков к компиляции в гипервизорной машине и заливке скомпилированного из хоста, я написал наигневнейшее письмо в COSMIC и отхуесосил их насколько позволил гуглопереводчик. Как ни странно, парни ответили на следующий день, запросили вывод ipcofig /ALL и прислали файл лицензии с которым все заработало. Ебать, как мне стало стыдно за мою несдержанность. Я просто заебался подбирать английские слова извинений и оправдываться.
>Лучше взять что-то более общее по микропроцессорам, чтобы излагалось в таком виде:
Ну тогда ему вот это нужно:
Joseph D. Dumas II. Computer Architecture: Fundamentals and Principles of Computer Design. — CRC Press, 2005. — ISBN 978-0-8493-2749-0.
David A. Patterson, John L. Hennessy. Computer Architecture: A Quantitative Approach, 5th Edition. — Morgan Kaufmann, 2011. — 856 p. — ISBN 012383872X. (англ.)
Дэвид Харрис, Сара Харрис. Цифровая схемотехника и архитектура компьютера, 2-е издание, перевод командой компаний и университетов России, Украины, США и Великобритании, Morgan Kaufman,2013
Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. СПб.: Питер, 2014, ISBN 978-5-496-00337-7
Так вроде с 2016 года COSMIC бесплатен для STM8 c подачки ST, о какой лицензии идет речь вообще?
Один хуй надо запрашивать лицензию и указывать не местоположение менеджеру лицензий FlexLM
И снова здравствуйте. Требую пояснений.
Дано:
0. Переменная xuy==0;
1. Прерывание меняет состояние переменной с "0" на "1" и обратно.
2. Если xuy == 1, то выполняем действие №1 и ждем в цикле вида while(xuy) пока при следующем прерывании xuy не станет равной "0" и цикл закончится и начнется выполняться действие №2
Так вот, какого-то хуя из цикла не выходит и действие №2 не выполняется. Какого?
Костыль.
Скорее всего написано криво.
Компилятор должен в коллграфе прерывания видеть изменение.
НЕ ПОЛЬЗУЕЙТЕСЬ ВОЛАТАЙЛАМИ БЕЗ КРАЙНЕЙ НА ТО НЕОБХОДИМОСТИ.
Пиздец, как я нажрался говна уебанов, которые КАЖДУЮ БЛЯДЬ ПЕРМЕННУЮ КАЖДУЮ СУКА, ДАЖЕ АРГУМЕНТЫ ФУНКЦИЙ ДЕЛАЛИ ВОЛАТИЛЬНЫМИ.
Просто пиздец, не будь таким анон.
Что в стандарте блядь прописано? Стандарте чего, компиляторов на 8битный контроллер?
Че ты несешь блядь?
Переменная явно изменяется, там не должен требоваться волатайл.
>C code style
Пожалуйста, не грузи меня. Я тут только во вкус погроммирования входить начал. Всё будет, но не сразу.
Const - не изменяется вообще, у тебя в гарвардской архитектуре const может в ROM валятся и не то, что его изменение, даже его чтение может отличаться от RAM.
Volatile - может изменятся не явно, способом о котором компилятор вообще ничего не подозревает. Например (наверно единственный пример) регистры IO. Это противоположность const.
Но регистры IO прописаны волатильными еще в заголовочнике МК, а о прерываниях компилятор обязан знать.
То, с чем столкнулся вопрошающий - некий побочный эффект проявляющийся на маленьких программах.
Вообще тут нужен человек хорошо понимающий компиляцию С, а я мимохуй. Пойду отпишусь в /pr/c
В STM8 ладно еще, чисто теоретически и если исходники состоят из одного файла, компилятор может разобраться где прерывание. Но если прерывание и остальной код в разных .с файлах, которые компилируются в разные объектники? А для армов у компилятора еще меньше шансов разобраться где прерывание, ведь для того чтобы увидеть таблицу прерываний, линкер должен собрать все объектники. Даже просто оптимизации при линковке появились в компиляторах относительно недавно, включаются только дополнительным флагом и до сих пор работают так себе.
Размер программы тут не при чем, линкер не занимается такой фигней, как нафантазировал >>405471
>>405525
>в гарвардской архитектуре
Если речь про STM8, то у них единое адресное пространство. И где ты константу увидел?
Не про STM8, но все же.
http://www.keil.com/support/man/docs/armclang_intro/armclang_intro_chr1385110934192.htm
Я не силен в этом. Но компилятор ведет т.н. Call Graphs, где отслеживает "варианты" развития событий. И производит оптимизацию учитывая их.
Как по твоему он будет обеспечивать реентернабельность функций, если не будет полной информации что и где используется?
А реентернабельность в С гарантируется как раз тем самым стандартом. (вроде бы)
>если прерывание и остальной код в разных .с файлах
А у тебя тогда переменная будет торчать наружу и будет считай volatile. Ну разве что, ты ее через пять жоп и по арифметике указателей не получил. Но тут сам себе злобный буратино.
>Размер программы тут не при чем, линкер не занимается такой фигней, как нафантазировал >>405471
Современные компиляторы имеют средства и производят компиляцию между объектными файлами. Это можно запретить настройками. (Про ГЦЦ не скажу, пиковский ака хайтечевский XCx умеет и думаю все подобные IAR\Keil тоже).
Пруф http://www.htsoft.com/news/070309_Whitepaper-OmniscientCodeGeneration_FINAL.pdf
И два пика.
>>405534
>И где ты константу увидел?
Константу увидел не я.
>Если речь про STM8, то у них единое адресное пространство.
Я про общий случай.
>http://www.keil.com/support/man/docs/armclang_intro/armclang_intro_chr1385110934192.htm
Принято. Ну видимо компилятор компилятору рознь.
Давай для начала разделять компилятор и линкер. Если объяснять совсем "на пальцах", то компилятор создает объектные файлы, в которых каждой функции уже соответствует последовательность ассемблерных инструкций. А линкер смотрит какие функции не вызываются вообще ниоткуда (твой Call Graph) и компонует результат в бинарник.
>Но компилятор ведет т.н. Call Graphs, где отслеживает "варианты" развития событий. И производит оптимизацию учитывая их.
Для этого линкеру не требуется менять последовательности инструкций, которые выдал компилятор в объектные файлы.
>Как по твоему он будет обеспечивать реентернабельность функций
Глобальные переменные тут не при чем. А гарантируется за счет того что все необходимое сохраняется в стеке. Функции достаточно хранить локальные переменные в стеке или в регистрах и восстанавливать состояние регистров (и то не всех, а про которые договорились заранее) после себя.
>А у тебя тогда переменная будет торчать наружу и будет считай volatile.
Каким образом она будет торчать? В отдельном компилируемом .c файле не будет никаких намеков, на то что эта переменная используется в других файлах. В одном файле переменную объявил, а в другом прописал ее как extern. Такие переменные для компилятора ничем не будут отличаться от других.
>Принято. Ну видимо компилятор компилятору рознь.
Это для всех так. Хотя есть вероятность того что я ошибаюсь, но этого все равно достаточно чтобы везде в таких случаях писать volatile. Потому что иначе все будет напрочь ломаться при смене компилятора или его флагов.
Все так, кроме того, что ты проигнорил
>Современные компиляторы имеют средства и производят компиляцию между объектными файлам
На чем собственно и строилась вся аргументация.
Фигня эта оптимизация, в gcc оно отдельным флагом включается и толком ничего не делает. От других компиляторов не стоит ожидать ничего принципиально иного.
Кстати, следуя логике о том что глобальные переменные должны обрабатываться с учетом прерываний именно таким образом, в си должно быть ключевое слово, указывающее компилятору что конкретная функция это отдельный поток (при использовании ОС). Но такого вроде бы нигде нет. А поскольку нет, то не надо фантазировать относительно аналогичных функций для микроконтроллерных компиляторов.
>>http://www.keil.com/support/man/docs/armclang_intro/armclang_intro_chr1385110934192.htm
>Принято. Ну видимо компилятор компилятору рознь.
>и думаю все подобные IAR\Keil тоже
По ссылке как раз про кейл, который на LLVM и в котором есть LTO.
Ну вообще то в любом МК из мною видимых ты пишешь ключевое слово у функции прерывания.
И эти ключевые слова используются просто для размещения кода прерывания в нужном месте. Конечно оно может использоваться оптимизации, но поскольку такого не наблюдается для многопоточности в ОС, то и тут не стоит ничего такого ожидать.
>в любом МК из мною видимых
Для армов такого нет, у них прерывания от остальных функций отличаются только тем, что из их адресов составляется таблица векторов NVIC, которая помещается в начало флешки.
>которая помещается в начало флешки.
Забыл на всякий случай упомянуть, что делается это не специальными директивами компилятора, а вручную и разными способами.
А еще начиная с Cortex-M3 таблицу прерываний можно поместить в ОЗУ и менять на ходу.
Это так.
Слышал одну историю на просторах интернета, что в рентген-аппарат нужно было установить микропроцессор. Модные-молодежные крафтовые стм32 и аврки дохли один за другим от наводок, и только 8051 смогли в нём работать, пришлось нанимать петровича из нии, чтобы он написал для него прошивку на ассемблере.
>использующие delay_ms() для задержек везде где только можно.
Позволь поинтересоваться, а что по твоему надо использовать для задержек вместо delay_ms()?
delay_ms() это просто функция, которая для задержки времени использует или инкремент(тогда это гавняная задержка) или аппаратный таймер(тогда это задержка точно отмеряет время).
И я не вижу ничего плохого в том, чтобы её использовать, всем советую так делать.
Кулстори твое кулсторное.
В 8051 уже давно сотни килобайт ПЗУ и килобайты ОЗУ, туда можно вполне себе запиздярить RTOS и писать на человеческих абстракциях.
Другое дело, что эти 8051 могут дохнуть по тем же причинам что и STM32.
И срач вообще - двачерский, дебильный, твой.
Устойчивость к наводкам проблема не архитектуры, а техпроцесса и частот.
Во всяком промышленном дерьме ебошат 51 и ПИК потому что под них кодовая база у вендора ебанистическая, а перформанса там особо не нужно. Все.
То что дебичи не смогли экранировать нормально МК в рентген аппарате - проблема дебичей, а не мк.
Хули может вообще релейные компьютеры делать?
На хуй ты приплетаешь архитектуру и живучесть к наводкам ?
8051 выпускают 100500 производителей по разным технологиям и живучесть будет разная соответственно .
Дома разобрал simens LOGO какой то , и там внутри был ARM от ST.
Видимо они забыли спросить у дрочащих на: 8051, АВР и пик.
>В 8051 уже давно сотни килобайт ПЗУ и килобайты ОЗУ
Хочешь сказать, что в этой статье напиздели??
https://ru.wikipedia.org/wiki/Intel_8051
>Шина адреса — 16-битная адресная шина. Возможность доступа к 216 адресам памяти, то есть 64 кБ адресное пространство в ОЗУ и ПЗУ
>Давно Сименс
В душе не ебу, но там нет микроконтроллера от ST. Возможно чипы выпускаются на мощностях ST, но там не стоит ширпотреб stm8/stm32 и ты пиздобол, раз пишешь подобное
Вот смотрите сертификаты SIL и ASIL , которые определяют вероятность глюка МК .
Так вот у STM -32 sil-2 У stm8A ASIL-B
Это конечно не самые надёжные чипы , ну так те же ST предлагают SPC5 c ASIL-D .
Другие производителе тоже имеют линейки высоконадежных контроллеров . Но это не всякие АВРКИ и древние пики , А контроллеры с аппаратными блоками для детектирования ошибок.
Иди на хуй петушина, у меня эта хуёвина спизженная дома лежит , и там стоит контроллер ST . Сименс то плк долго выпусках и в разных вариантах.
> дома лежит
>Телефон Нокия3310, фотоаппараты религия запрещает иметь, и ваще, идите все нахуй
Слился, петушок?
Давай я дойду и если скину фотку с сименсом на контреллере ST /
То ты садишься на бутылку и скидываешь это сюда.
То что на контроллере написано сименс, не значит что это не STM32. Ага?
>>416535
https://www.silabs.com/documents/public/data-sheets/C8051F58x-59x.pdf
Хуякс. В вики блядь описан 8051 интеловский, дефолтный, то чем сейчас является С51 - это небо и земля.
Этой хуйни к слову 1MIPS per 1MHz, это очень круто для этого ядра. Т.к. по дефолту там вроде 0.1MIPS per 1MHz
>То ты садишься на бутылку
А если не контроллер АРМ от СТ, то ты с пруфами и без лубриканта засовываешь ЛОГО себе в очко?
Ок, давай тогда блупил хотя бы.
>Это тред реальных дешёвых рабочих лошадок
У тех, что дешевые, всего 8 кб флеша. Это очень мало для задач, которые делают мк в 2к20 году. Их что, на ассемблере нужно программировать?
Я лучше дальше буду прогать атмеги и стм32 на сишечке, как человек.
мимо зумер
заказчик не одобрит stm32 за 100р там, куда можно впихнуть stm8 за 20 а еще они умеют в 5в питание
Заказчик не одобрит выполение разрабом проги за 6 месяцев на stm8, если на stm32 он может сделать прогу за 2 месяца.
С чего бы на стм32 будет намного быстрее делаться, чем на стм8? В обоих случаях одинаковая (почти) сишечка или цпп.
Потому что на СТМ32 куда больше инструментов, IDE, фреймворков и примеров, чем на СТМ8, куда больше размер пзу и озу и вычислительной мощности и быстродействия.
В СТМ32 сгенерил проект в кубике, используешь HAL, чтобы быстро сделать то, что тебе нужно, накидал копипасты с гитхаба, чуток подправил и готово.
В СТМ8 ты будешь читать даташиты и байтить регистры, потом самостоятельно с нуля писать код для всего, а потом еще долго его рефакторить, чтобы уместиться по объему озу, пзу и быстродействию.
>Если по-простому, используется аппаратный таймер для отсчёта промежутков времени, по истечении выставляешь флаг. В основном цикле проверяешь наличие флага и выполняешь/не выполняешь код.
>Но я всё больше склоняюсь к использованию rtos.
rtos тоже использует аппаратный таймер и делает тоже самое.
Окей, что выберет заказчик - чтобы неразбирающийся зумер за месяц другой сделал программу для STM32 по быстрому с помощью кубика и HALа, или чтобы разбирающийся кузьмич писал прошивку для STM8 пол-года, читая даташиты и разбираясь с регистрами?
Хуяк, хуяк и в продакшен? Если это серия в 10к штук, то разница в цене даст приличную сумму.
Да и по сложности STM8 на порядок ниже, регистров у STM8 на порядок меньше, я уже практически все наизусть их выучил
И после того, и после этого ещё рефакторинг.
>В СТМ32 сгенерил проект в кубике
>используешь HAL, чтобы быстро сделать то
Только для стм32 все равно придется читать даташиты, причем не менее усердно, а даже более. Разумеется это если делать что-то сложнее мигалки, иначе ардуина будет вне конкуренции.
И что тебя так зацепили все эти регистры? Обычно вся эта аппаратная ерунда - меньшая часть программы, причем намного более простая.
>чтобы уместиться по объему озу, пзу и быстродействию.
Про это уже было >>428240 Если не хватит, то в чем проблема взять что-то с большим объемом памяти?
>>428614
Твой кузьмич пол года разбирался с одними регистрами и только пару недель писал основную логику программы? Ну всякое бывает, но как-то странно.
>Только для стм32 все равно придется читать даташиты, причем не менее усердно, а даже более.
А... а как же HAL? Библиотека HAL берет всю низкоуровневую часть на себя и тебе даже не придется видеть регистры.
>И что тебя так зацепили все эти регистры? Обычно вся эта аппаратная ерунда - меньшая часть программы, причем намного более простая.
Да, меньшая, но разбираться с даташитами и понять, как они работают, занимает намного больше времени. У СТМ32 даташит референс мануал почти на 1000 страниц, задолбаешься его читать и вникать в суть работы регистров.
>У СТМ32 даташит референс мануал почти на 1000 страниц
Только нужно сравнивать с стм8. Даташит, кстати, для стм32 тоже необходимо изучать, по крайней мере местами.
>задолбаешься его читать и вникать в суть работы регистров.
Допустим часть в которой расписаны битики в регистрах можно будет не читать, но остальное тоже пропустишь?
>Допустим часть в которой расписаны битики в регистрах можно будет не читать, но остальное тоже пропустишь?
Да.
В документации на HAL все расписано.
>>429183
Если речь про доксигеновскую хрень, то там указано назначение функций, структур, констант, а также возможные значения аргументов для функций. Однако не указаны допустимые комбинации значений аргументов, по вполне понятным причинам. Конечно есть еще куб, но писалось же про хал, а не куб, да и все равно с кубом будет во многом аналогично.
Олсо, атмеги менее всего заменяемая деталь, за год выдал не больше 5ти штук.
Пики хз для чего, но чего-то очень массового, т.е. дешёвого оборудование. Олсо, СТМ32 для совсем говно-фонариков и ир-стробов, которые делаюца тысячами в неделю.
Олсо, используют ардуины нано или майкро на антеннах, но хз какова их функция.
Шизу какую-то написал, меги8 сняты с производства. Вы там как в 90х из древних неликвидов вперемешку с современными компонентами махарайки лепите?
То что РФ бензоколонка это лапша на уши либерастов. А на самом деле существует производство компонентов где лепят большинство аналогов, просто всё в тени. А ты говоришь Китай.
Где тогда бешеный экономический рост спровоцированный реверс-инженирингом, где все эти компоненты и почему их совершенно не видно?
Очень. Infenion, ныне отдельная компания. SAC16 серия, Tricor и т.д.
Ну предположу, что не совок и уже за пиратство могут выебать.
Вообще саундс лайк пиздеж, т.к. многие интересные компоненты, особенно питальниковые, требуют спецтехнологий, а не только специфичный рисунок кристалла.
А пиратят там 555ые таймеры какие и прочую базовую хуйню.
Если выебут, то что на пизженой комплектухе собирать и куда продавать? Таймеры и линстабы еще совки срисовали, это вневременные детали и всем похуй кто их производит.
Я тебе факты говорю. Оборудование спроектировано под атмеги и пока поставки комплектующих есть, менять не будут.
Махарайки? GaN или GaAs блок апконвертары, твёрдотельные бустеры, твёрдотельные усилители для Ц, Ку, Ка, Икс диапазоны.
Это ВЧ техника, специфически управляемая. Вот если бы ты там ваял ЭБУ для автотранспорта и спецтехники, ПЛК, блоки автоматики для климатических систем и т.д. с атмежками сразу бы стало не по пути. Пошли бы в ход инфенионы, моторолы, ренесасы и т.д.
>Пошли бы в ход инфенионы, моторолы, ренесасы и т.д.
они более надёжные? почему они предпочтительней?
Ну вот просто пример из жизни. Дизельный двигатель WEP10 производства камминс, между пятым и четвертым цилиндром к блоку цилиндров привинчен ЭБУ, сделан он на FPCB намертво приклееной к листам алюминия 2,5 мм, в середине теплоотводящее шасси, все хором, силовая часть питания форсунок, все. Стоит 32-ух битная моторола на BGA, и ей все похуй, что в 30 мм от нее грохочет и вибрирует двигатель, вспышки в цилиндрах и вибрация, температура под сотку. Ей просто похуй полмиллиона километров и больше. Классическая схема, GPT отдельный, флэшка, епром. Америка, камминс любят комплектные решения-эбу мотора прямо к мотору и привинчен, ЭБУ робота прямо к коробке и привинчено. Жар, вибрация, высоковольтная секция форсунок все похуй. Инфенионы, моторолы, ренесасы, ST-шки, OKI, фрискалы. Все что угодно только не атмеги, пики, зилоги, интелы. Ну не вижу я их там где жара, вибрации, ватчдог и пересчет кс каждые 10 минут.
не потому ли это, что они тупо дешевле,чем 32-битные авры в a исполнении?
Шизу пишешь. Простые атмеги и не предназначены для automotive апликаций. Под эти цели идут специальные отдельные серии МК. Так у каждого производителя. Есть ширпотреб, есть medical и industrial-грейд, есть automotive, есть оборонка и авиаспейс.
>>429779
И что там на атмегах сделано, индикация циферок и управление с кнопочек? Для этих целей любой ширпотребный мк сгодится.
Пример из жизни: я поставил махарайку с Atmega128 в авто, экран, кнопочки, отображения показаний датчиков, все жела. При -10 экран и МК работали норм. При -15 вырубался TFT 4,3" экран, причем SSD1963 контроллер-память экрана работает, а сама матрица уже нет. При -16...-18 не включалась At128.
>Atmega128
Может быть ты просто поставил атмегу с рабочим температурным диапазоном от 0 градусов?
Более того, существуют радиационно-стойкие атмеги. Они тоже для ширпотреба?
>>429779
>Оборудование спроектировано под атмеги и пока поставки комплектующих есть, менять не будут.
Вот именно. А есть оборудование спроектированное под 133 серию или 54xx, которое тоже производят понемногу. И что теперь?
Больной ты шизик, лишь бы приплести. Специально даже написал еще про 54xx серию, лишь бы совок не приплетали.
>И что там на атмегах сделано
Ты так долго смотрел свой код, что читать разучился? Хайниксы и другие контролируют интерфейсы(кнопочки и лэн), атмеги контролируют плты конверсии, усиления и пр.: сами сигналы, для которых прибор сделан.
От куда ты знаешь? Может быть не включалась залупа которая её питает?
У меня все ATmegи на -10...-15, экран не справлялся, замерзал. Не контроллер матрицы, а сама матрица TFT не могла работать ниже -15. Ты чем вообще читаешь? Жопой?
>атмеги контролируют плты конверсии, усиления и пр
Шиз, атмеги - тормозные 8 битные мк с посредственной периферией. Более-менее полноценно контролировать что-либо из перечисленного они могут лишь по интерфейсам типа i2c от внешней периферии, читая и управляя ей.
С чего это шиза? Ты дальше сам же и подтвердил мои слова, что идут отдельные, специальные серии мк. Там выше чувак напирал на то что раз у него в свч военной аппаратуре стоят атмеги, значит это ух какие МК. Перечитай тред повыше.
>экран не справлялся, замерзал.
И что с того? От ноунейма с али можно ожидать что угодно. Даже если у тебя не ноунейм, то была ли там заявлена работа на минусе? И вообще, что ты хотел от матрицы без подогрева?
>Ты чем вообще читаешь? Жопой?
Я хотя бы не жопой думаю. Ты сам писал:
>При -16...-18 не включалась At128.
На что я и написал, про то что не стоило ждать иного от атмеги с температурным диапазоном от 0 и выше. В таком случае вообще что угодно можно было ожидать.
>У меня все ATmegи на -10...-15
Что? у них по даташиту от -40 до 85 для Industrial и до 105 для Extended. А для Commercial от 0 до 70 градусов.
На тебя скрина военной радейки с атмегой нет. Я его проебал.
1. Ассемблер охуенный, все четко, как на x86. Даже есть команды переноса память-память, умножение и деление. Регистров мало, но первые 256 байт можно почти как регистры использовать, там один байт адреса в команде.
2. Не понимаю, нахуя экономить таймеры, если их дохуя. Tim1, tim2 понятно что для генерации сигналов, но tim4 же внутренний, а также iwdg и wwdg есть.
Я сделал arr= 250, предделитель на 250 кГц и получил прерывание каждую мс.
В счётчике всегда количество мкс, если умножить на 4.
Потому, что таймеры в ST делал мудак. Во всяком случае руководство...
По сравнению с другими ядрами они очень упоротые. Понимаю что фарш, но пиздец же, если хочешь какой шим хитровыебаный, с выводом на ногу и циклическим отсчетом туда-сюда, можно ненароком охуеть.
А по поводу экономии, нуууу... Сейчас кто то по дедовскому еще пишет - каждому функциональному блоку по таймеру?
Все вроде уже либо на RTOS, либо на его упрощенных аналогах.
Программный таймер попросту гибче.
Если ШИМ не используешь активно, там обычно один как системный уходит и 1-2 на какую эмуляцию интерфейса программную.
Все. Хватает везде.
А обслуживать каждую кнопку по своему хардварному таймеру это попросту неудобно, не гибко и не переносимо.
>Ставь IAR. Он пустой почти, но не будет ебать мозги и летает.
>Писать код можешь в другой студии.
IAR платный, а космик бесплатный.
>STM8
Под него нет бесплатных IDE/компиляторов.
Сosmic - лицензия всего на год, IAR -на 30 дней и ограничение в 8 кб. Поэтому не вижу преимуществ STM8 перед STM32 и АВР, для которых есть бесплатные инструменты разработки.
Ну вообщем еще есть IAR, бесконечная лицуха на 8 кб.
Сколько там максимальный объем флеша у стм8 контроллеров? 128 кб?
За сколько дней напишешь прошивку на асме объмом хотя бы в 50 кб?
>За сколько дней напишешь прошивку на асме объмом хотя бы в 50 кб?
Смотря как писать. Макросами можно как следует обложиться, сделав какую-нибудь вариацию форта, а из-за низкой эффективности такого дела памяти потребуется прилично. Это конечно бессмысленно, но тем не менее.
мимопроходил
>прошивку на асме объмом хотя бы в 50 кб
Это как вообще? Ты хотя бы те же 8 кб на асме родить пробовал? Я еще готов поверить в 1 кб, но озвученные объемы на асме - тебя же в дурку увезут после такого мазохизма.
мимо2
>объмом хотя бы в 50 кб?
Нахуя мне писать 50кБ если нужный мне функционал укладывается в 12кБ например? Целые ОС пишут на асме и не кряхтят. Колибри например.
>Целые ОС пишут на асме и не кряхтят. Колибри например.
Речь шла про код в одно рыло. Такие вещи пишутся не в одиночку.
>свободных С-компиляторов
>пик
Если ты не про пик32, который MIPS, то когда это оно появилось? Если ты про SDCC, то это ерунда, а не компилятор, тем более что оно и с STM8 как-то работает.
ARM GCC, AVR GCC. Про пик не знаю, но раз MPLAB бесплатная там тоже есть си-компилятор.
Как человек который изучал pic16 в универе как первый контроллер, сообщаю что mplab бесплатный и там только ассемблер.
Си по лицензии и кажется идёт отдельным приложением.
По крайней мере так было в 14 году.
>ый контроллер, сообщаю что mplab бесплатный и там только ассемблер.
>Си по лицензии и кажется идёт отдельным приложением.
>По крайней мере так было в 14 году.
За 6 лет многое могло поменятся.
Лол нихуя не поменялось.
Пик - уебищные МК для дедов, которые пишут 25 лет и выдают перлы вроде:
- Да я в вашем С хреново разбираюсь.
- С Медленный.
И т.п.
Которые пишут все в глобальной области видимости, write-only монолитное приложение, без каких либо попыток абстрагирования.
А когда отъезжают от стекломоя - заказчик выкидывает все нахуй, ибо другой дед уже не может в этом разобраться.
MPLAB - уебищное кривое говно с интерфейсом из молодости этих дедов. Эмуляцией скорости работы windows 95, отсутствием "РАБОТАЮЩЕЙ" подсветки синтаксиса и пачкой ебанутых багов, которые не фиксят уже под 15 лет, что бы было с чем поебаться на старости лет.
Работал только с 8 битками.
Старый компилятор (С18)- СТАРЫЙ, поддерживает лишь С89, считай не имеет статического анализатора. Но компилирует годно и компактно.
Новый компилятор (ХС8) - (ему уже больеш 10 лет вроде лол) - условно бесплатный, но оптимизация ток в платной версии.
Поддерживает С99 НО ПРОЕБАЛ ВСЮ ОБРАТНУЮ СОВМЕСТИМОСТЬ С СТАРЫМ КОМПИЛЯТОРОМ.
Имеет кучу багов, которые никто не фиксит годами. Может начать выдавать нерабочий код в одном месте, после изменения в другом не связаном.
Отказывается собирать проекты, у которых остается мало памяти (не реально задействовать больше 70-80% ОЗУ\ПЗУ).
Выдает более жирный код чем старый (С18) компилятор лол, т.к. не умеет использовать все возможности ядра, серьезно, часть инструкций не используется. Микропидоры говорят, что будет выдавать более компактный и быстрый один хуй, но по факту более жирный и медленный.
Аналог кодогенератора (КубеМХ) выдает не рабочий код, библиотеки недописаны даже на половину.
Короче никогда, никогда никогда никогда не беритесь за МК микрочипа, это те еще уебки и гандоны.
Атмель писечку поймали и издеваются над ней, прекрасную атмель студию забросили, от ГЦЦ ушли ... мрази ебучие.
>уебищные МК
Чувак, нет уебищных мк. Хватит делить мир на черное и белое, когда все вокруг серое. В массовом производстве играют решающую роль два критерия: дешевизна и функционал. Производительность в большинстве случаев - вообще дело десятое. И если какие-нибудь самые дешевые OTP мк от PADAUK устраивают по функционалу, то будут использовать их.
Да причем тут скорость? Где ты вообще это вычитал? Весь пост про удобство разработчика.
>функционал
При чем тут этот математический термин?
>Производительность
Ну как бы пики (и я не про те которые MIPS) по производительности не хуже атмег.
мимопроходил
>единоразово родить и отладить код
Привет, ты охуел?
А поддерживать кто будет?
А платить бабки, за то, что из-за кривых инструментов разработка затянулась раза в полтора?
Откуда вы вылезаете такие?
Рыночек порешал, братиш. Не нравится - пиздуешь на мороз и берут нового лоха для колупания нонейм китайских МК с з/п как у кассира.
Зачем колупать китайские МК с з/п как у кассира, если можно колупать европейские/американские МК с з/п, как у синьор-программиста?
>Итак, иар и космик слиты, SPL настроен, литература изучается и ко мне уже идёт из Поднебесной программатор.
Зачем тебе какой-то программатор из Поднебесной, если стм8 шьется тем же ст-линком за 200 рублей?
>Это тред реальных дешёвых рабочих лошадок, поэтому просьба авр-детям и арм-подросткам как минимум постараться не начинать свои срачи.
Лол, насколько я знаю, из бесплатных, неограниченых по времени Си-компиляторов для стм8 есть только иар и космик с ограничением на размер кода до 8 кб. Т.е. по сути они могут конкурировать разве что с ат-тиньками. С авр по мощнее типо атмег и иксмег сравнивать стм8 с 8 кб программ глупо, арм - вообще мхех, они в сотни и тысячи раз мощнее.
Хохол, ты что-ли? РФ - это сверхдержава, которая и свои микропроцессоры и ПК рни с полным циклом производит, и АЭС по всему миру строит, и атомные ледоходы и много чего еще, не путай со своей свинарнией, вот она да, страна третьего мира.
Что дядя скажет - то и будешь колупать. Не можешь, не согласен с чем-то - скатертью дорога. Программисты ныне - расходный материал.
>Программисты ныне - расходный материал.
А кто тогда "не расходный материал"? Схемотехники? Проектировщики ПЛИС?
А ещё самолетная держава. И всё это для того чтобы пыня мог воровать.
Ты же понимаешь, что это не так. Ненависть к Украине это исключительно пропаганда, до 2014 все были друзьями.
Кабанчики.
Понимаю, но бесит, когда хохлы, которые сами живут в вымирающей укруанде с отрицательным ввп называют сверхдержаву Россию "страной третьего мира".
>Тут не STM осваивать надо, а базовые штуки вроде тактирования и мультиплексирования. Ну и протокол дисплея — как данные принимает, как сбрасывается, какой формат.
Не надо там ничего осваивать, просто находишь в интернете библиотеку дисплея и подключаешь в свой проект.
Читать даташит и писать самому драйвер дисплея - это последнее дело, только есть у тебя какой-то дюже редкий дисплей и на него не найти либы.
>И где ты нашел современные, т.е. еще производящиеся, микроконтроллеры без хотя бы двухуровневого конвейера?
Даже Путин на Валдае назвал РФ стремящейся стать супер державой. О сверх и речи быть не может.
Меньше транзисторов потенциально может закончится высокой суоростью выполнения как в случае с некоторыми старыми процессорами.
Ну и меньшим энергопотреблением
А чем скотоублюдия отличается от абхазии днр или другого недогосударства? Самому не смешно то?
Такие же как у 103, но флеш на 100 записей.
Когда искал себе, 003 были 25$ за 100 штук на Али, потом нашел 103 за 27$ и купил их. Так и не запаял ни одной пока.
К 8ми битному процику можно подключть юсб 20 или микросд? Или к 16 битному? Или уже тупо шины шире должны быть для такого а у этой ебалы в современности никакого хранилища кроме своего не будет?
Я имею в виду по серьезнее 8 битники, есть и на 40 пинов и тому подобное. О шинах нихуя не знаю, но микросд это единственный приемлимый носитель сейчас ведь? Еще и маленький.
Потребление у 8ми битника сейчас какое и с чем сравнимо? Есть энергожфыективнее что то а то подозреваю их на 64 нанометрах клепают.
Да и да.
Ни первое ни 2е не обязывает тебя иметь какую то пропускную способность.
SD вообще статик-клок (вроде).Оно имеет легаси режим через обычный SPI.
USB просто требует раз в определенное не очень большое время отвечать что еще живой. Остальное регулируется выбранным режимом.
Софтварный усб делали на attiny85 (вроде). Серьезные 8битки обычно имеют хардварный физ и канальный уровень.
Иди на хуй с хохлами пидар .
Я знаю , что в России многие микросхемы с длинным сроком поставки их возят с европейских складов .
Говорит это о низком объёме и разнообразии производства.
Иди на хуй с хохлами пидар.
Посоны, хочу вкусить всю прелесть асм 8051 и ИНДУСТРИАЛЬНО-ПРОМЫШЛЕННОЙ разработки девайсов. Какой МК взять для этих целей?
Я хочу устройство получить, которое отзывчивое а не крутит андроид или какую то ебалу в фоне например. Если 8 бит для всего достаточно то почему нет.
Однако на дисплей уже особо ним ничего не выведешь.
Нет.
>Пик - уебищные МК для дедов
Ну хуй знает, некоторые свои поделия даже в серию иногда уходят делаю именно на пиках. Очень устойчивый контроллер в плане ЭМС, если правильно питание развести. Пишу в коммерческой иде не скажу какой, но лицуха досталась бесплатно на Си, никакого батхёрта.
>писать самому драйвер дисплея - это последнее дело
Ну хуй знает, мне, например, проще свой с нуля сделать, если не на раз, зато потом ты можешь его допиливать, как хочешь. Вопрос времени, вот в чём дело...
>Однако на дисплей уже особо ним ничего не выведешь.
HMI в помощь, типа Nextion. Знаю, что лютый костыль, но иногда очень помогает.
RTOS возможен для любого микропроцессора, у которого есть хотя бы один вектор прерывания.
>Когда искал себе, 003 были 25$ за 100 штук на Али, потом нашел 103 за 27$ и купил их
Разница в цене между 003 и 103 ~2 раза. Ты купил перемаркер и радуешься. Я на западном форуме читал, что 003 - это отбраковка, чипы с дефектами в области прог флеша, типа повышенный ток утечки у ячеек и потому гораздо меньшая надежность, повышенные шансы отказа из-за повреждения данных. Назначение 003 - неответственный одноразовый ширпотреб уровня говорящих хомяков.
Типа экран с ещё одним готовым контролёром в качестве GPU?
Просто чтобы поддержать диалог расскажу.
Недавно выбирал между 1,2 vs 3,4. Судя по их видео, скорость чтения изображения с флешки не очень, а если просто рисовать линии то вроде нормально.
Я решил что лучше поставить контроллер побыстрее, может картинку удастся хотя бы за секунду вывести.
Ты ржош, братан, да? Я так-то не очень пердуинщиков люблю...
Потренироваться в программировании на ассемблере ты можешь и в симуляторе.
А если брать, то можно CY7C68013A, хотя бы логический анализатор можно будет сделать.
Как собрать орион128? С чего, так сказать, начать?
>хотя бы Орион128 собрать
Больной ублюдок. Нахуя? Почему просто не вкатится сразу в микроконтроллеры? Может еще "ЮТ-88" предложишь собрать?
Я думаю все такие советчики сами начинали под строгим контролем по преподавателя или с пошаговым руководством, или на форуме типа радиокот а то время, когда это все бурно развивалось и любой мог сразу получить ответы на любые вопросы.
Иначе такого ЧСВ по отношению к новичкам бы не было.
Разумеется, начинали с ардуинке или AVR.
Что там такого можно понять? Собираешь все вместе и оно работает. Даже если вдруг не заработает, то все равно внутрь ВМ80А с паяльником не залезешь, а внешне это почти тот же микроконтроллер, только проще. Ну будет память и контроллеры прерываний и ПДП снаружи, но это мелочи.
Если бы ты предлагал написать весь код процессора под FPGA самостоятельно, то твой аргумент еще можно было понять. Или самостоятельно разработать схему на 155-ой серии, если извращенец.
почему ардуинке? Думаю многие с пик16 и 8051 начинали.
А вотначать со сборки Орион128 вполне не плохой способ вкатиться.
Спасибо! Добра! :3
Да как бы тебе сказать...
В принципе, опыт и с МК, и просто с электроникой у меня есть. Просто никогда не сталкивался с 8051. А интересно ж, пиздец.
>интересно ж, пиздец.
А зачем именно 8051? Изучай сразу 8080, например, раз в старину тянет. Купи суровую советскую учебную "ардуину" из 80х и играйся.
https://www.youtube.com/watch?v=BDgbdrYG_hg
https://red-innovations.su/index/photos_c/kr580.html
Вот.
Это что за дрыгатели и генераторы, рядом с которыми "монитор обычного стационарного ПК мерцает полосами, а подключенный к нему системник постоянно зависает и перезагружается? И любой УКВ приемник ловит лишь бррр-бррр-бррр-пшшш на любой частоте"? Как эту залупу вообще могли выпустить на рынок? Ты точно не путаешь двигатель и установку для испытаний на стойкость к спец. воздействиям? Потоками заряженных частиц в соседнем помещении на эти же процессоры не светят?
Тепловозы-электровозы вполне себе катаются, двигаемые моторчиками на те самые дохуя кВт, с реостатным и цифровым управлением, в тепловозах с электропередачей и генератор соответствующей мощности имеется, а в кабинах стоят КВ и УКВ радивы и чувствуют себя отлично.
> Как эту залупу вообще могли выпустить на рынок?
Сертифицировали залупу для работы в пром. зонах, где как бы подразумевается использование помехоустойчивого оборудования.
При таких уровнях излучений, она должна стоять в экранированном помещении, а персонал к ней можно подпускать только в экранирующих костюмах и то ненадолго, какие тогда там могут быть бытовые пеки с полосящими мониторами и зависающими системниками?
>какие тогда там могут быть бытовые пеки с полосящими мониторами и зависающими
Такие, будто не в РФ живешь. На что денег хватило, то и поставили, а потом бегают с горящей жопой.
> При таких уровнях излучений
И, кстати, для выключения монитора надо не так уж и много. На испытаниях наблюдал таковое при напряженности поля всего-лишь 10 В/м.
> Именно В/м? Какая частота?
Да, В/м. Точно не помню, но что-то в диапазоне 750-800 МГц было. Моник был какой-то топовый по тем временам жк NEC (~13-15лет назад), стоящий в консоли.
>случай c stm32f3, когда от импульсника рядом наводилось на свдио команда ресета
Просто ресет не должен висеть в воздухе, надо подтягивать его конденсатором и резистором.
Отзывчивость заключается твоем умении писать код и прорабатывать архитектуру.
Если тебе ее требуется компенсировать хардкоженьем всего и вся в 8битах - это говно не меньшее чем поделия из КОУЗИ МИТИНГА.
Смысл в том, что даже для серийного устройства зачастую легче взять подороже камень, но более фаршированный.
Тайм ту маркет пиздец важнее, пары процентов стоимости, если у тебя не миллионы устройств.
А для домашних поделий он в 1000 раз важнее блядь. Толку от твоего велосипеда, который никогда не поедет?
Написание супероптимальных велосипедов на 8 битах может быть безумно дольше. А скиллы полученные от этого очень бесполезные, ну толку с того, что ты преисполнишься осознания проприетарного протокола работы с какой то микрой? Оно вообще ничем не поможет, это бесполезные, труднодоставаемые и фрустрирующие знания.
К тому же, если ты не пытаешься писать что то очень нагруженного, всяких драйверов TFT и Ethernet, то тебе вообще поебать на производительность, оно и там и там должно легко запуститься.
Но при 32 битах ты учишь сложный современный МК, а в 8 старое простецкое говно.
Это не сложнее, но бесполезнее.
Короче 10, 20 раз подумай. Лучше 100. Пока ерохи будут запускать коптеры на ардуино и получать опыт в архитектуре приложения, ты имеешь шансы ебать и оптимизировать байты в драйвере, чей цикл занимает 0.1% процессорного времени.
>>437266
Я хуево выразился. Сами МК - охуенные, простые, годные, понятные, с охуенной документацией.
Компиблядор уебищный, саппорт уебищный, IDE родная уебищная, мертвая инфраструктура которая только еще более тухнет со временем.
>>437306
Это скорее как законченное устройство, которое работает как дисплей и пользовательский ввод.
Но некстион он просто конченное устройство, но вариантов за вменяемую цену нет.
Если попробуешь, сможешь насладиться охуенными проприетарными форматами, IDE не умеющей в поиск по тексту, прекрасному скриптовому языку, тонной багов и китайским говном.
>>437450
Нет не надо. Надо понимать архитектуру приложения. Каждый эмбедед дебил понимает архитектуру железки, но пишет райтонли говно, которое сам перестает понимать через неделю.
Писать на встраиваемках с высоким уровнем абстракции, но не проебывая в отклике вот что действительно сложно.
Отзывчивость заключается твоем умении писать код и прорабатывать архитектуру.
Если тебе ее требуется компенсировать хардкоженьем всего и вся в 8битах - это говно не меньшее чем поделия из КОУЗИ МИТИНГА.
Смысл в том, что даже для серийного устройства зачастую легче взять подороже камень, но более фаршированный.
Тайм ту маркет пиздец важнее, пары процентов стоимости, если у тебя не миллионы устройств.
А для домашних поделий он в 1000 раз важнее блядь. Толку от твоего велосипеда, который никогда не поедет?
Написание супероптимальных велосипедов на 8 битах может быть безумно дольше. А скиллы полученные от этого очень бесполезные, ну толку с того, что ты преисполнишься осознания проприетарного протокола работы с какой то микрой? Оно вообще ничем не поможет, это бесполезные, труднодоставаемые и фрустрирующие знания.
К тому же, если ты не пытаешься писать что то очень нагруженного, всяких драйверов TFT и Ethernet, то тебе вообще поебать на производительность, оно и там и там должно легко запуститься.
Но при 32 битах ты учишь сложный современный МК, а в 8 старое простецкое говно.
Это не сложнее, но бесполезнее.
Короче 10, 20 раз подумай. Лучше 100. Пока ерохи будут запускать коптеры на ардуино и получать опыт в архитектуре приложения, ты имеешь шансы ебать и оптимизировать байты в драйвере, чей цикл занимает 0.1% процессорного времени.
>>437266
Я хуево выразился. Сами МК - охуенные, простые, годные, понятные, с охуенной документацией.
Компиблядор уебищный, саппорт уебищный, IDE родная уебищная, мертвая инфраструктура которая только еще более тухнет со временем.
>>437306
Это скорее как законченное устройство, которое работает как дисплей и пользовательский ввод.
Но некстион он просто конченное устройство, но вариантов за вменяемую цену нет.
Если попробуешь, сможешь насладиться охуенными проприетарными форматами, IDE не умеющей в поиск по тексту, прекрасному скриптовому языку, тонной багов и китайским говном.
>>437450
Нет не надо. Надо понимать архитектуру приложения. Каждый эмбедед дебил понимает архитектуру железки, но пишет райтонли говно, которое сам перестает понимать через неделю.
Писать на встраиваемках с высоким уровнем абстракции, но не проебывая в отклике вот что действительно сложно.
>Но при 32 битах ты учишь сложный современный МК, а в 8 старое простецкое говно.
Если, как ты говоришь, 8-битные мк такое говно, почему тогда многие производители до сих пор их выпускают(и не планируют прекращать выпуск в обозримом будущем) 8-битных мк разных семейств и архитектур и они используются в новых разработках?
>Пока ерохи будут запускать коптеры на ардуино
Ардуионо-платы построены на 8-битках, вообще-то.
Потому, что дохуя девайсов имеют многотысячные тиражи и это влияет.
Потому, что по соотношению цена\потребление им еще нет равных.
Потому, что под 8б у разработчиков устройств частенько есть многолетние наработки и они просто копипастят модульную хуйню.
Я выше писал, если тебе не поприколу косплеить промышленного разработчика - то смысла этим заниматься на дому нет.
Из 32б легко перекатиться в 8б при нужде, а вот наоборот не очень, т.к. в первом случае ты просто не используешь часть знаний, а во втором необходимо их приобретать.
Тот же СТМ8 охуительно похож на обрезанный СТМ32.
>Ардуионо-платы построены на 8-битках, вообще-то.
Ардуино - кроссплатформенный фреймворк, который таки начался и имеет наибольшую популярность на АВР, да, так сложилось.
Но там выбрали 8б по другим причинам, в частности потому, что AVR в те года был самым популярной DIY архитектурой.
> Сами МК - охуенные, простые, годные, понятные, с охуенной документацией.
Вот только у PIC архитектура уёбищная, ограниченная, с банками этими.
У MSP430 лучше архитектура и набор команд, он как PDP-11.
Ну банки это наследие олдскула, ничто не мешает C51 иметь банки, являясь при этом самым массовым эмбеддед ядром до сих пор.
>Из 32б легко перекатиться в 8б при нужде, а вот наоборот не очень, т.к. в первом случае ты просто не используешь часть знаний, а во втором необходимо их приобретать.
В твоем предложении кроется утверждение, что 32-битные микроконтроллеры включают в себя 8-битные, но оно не верно.
8-битные микроконтроллеры включают в себя множество архитектур, которые очень отличаются от 32-битных микроконтроллеров, и для их понимания и работы с ними требуется ничуть не меньше знаний и усилий, чем для работы с 32-битными.
Более того, 32-битные микроконтроллеры тоже есть разных архитектур: ARM, AVR32, PIC32, и работая с одним 32-битным мк понадобится некоторое время, чтобы перейти на работу с 32-битным мк другой архитектуры.
Ты сейчас начинаешь душнить, мол а вот там регистры по другому называются, а там уарт по другому включается. Да похеру же.
Это частности в которых начинаешь разбираешься на ходу в определенный момент.
Под переходом 8\32 или 32\8 я имею ввиду скорее некую среднюю сложность периферии и самого ядра.
Кину претензию в ответ, у тебя неверное предположение, что смена архитектуры это какое-то серьезное обучение и объем знаний.
Да... возможно для ТРУ МАСТЕР потребуются годы, что бы все заковырки найти. Но что бы просто начать писать что то прикладное - единицы дней.
Джва чая. У меня переход был именно в том сложен, что я как правильно всю переферию включить на STM32 не знал как, а потом просто свои старые Сишные библиотеки подключал и радовался.
Да, когда пишешь на языке высокого уровня то всю работу с архитектурой они берут на себя, потому что они кросплатформенные. Это на ассемблере самому нужно работать с архитектурой и набором команд.
Но даже если пишешь на языке высокого уровня все равно нужно понимать, как устроена и работает архитектура мк, пусть и не настоклько глубоко, как при программировании на ассемблере.
>У MSP430
Как с доставаемостью камней? Что со средой разработки?
Валяется несколько LaunchPad-ов с времён, когда их по $4,99 продавали...
>умении писать код и прорабатывать архитектуру.
>опыт в архитектуре приложения
>Каждый эмбедед дебил понимает архитектуру железки, но пишет райтонли говно, которое сам перестает понимать через неделю.
>Писать на встраиваемках с высоким уровнем абстракции, но не проебывая в отклике вот что действительно сложно.
Как научиться писать архитектуру ПО с высоким уровнем абстракции? Пикрил книжка подойдет?
мимо эмбеддер, пишу говно, которое перестаю понимать через неделю
Хуй знает, я сам не умею, спрашивал много где, в ответ - гробовая тишина.
эта книжка для детей, но для ембеддед их нет, возьми для начала чистый код чтоли
Без работы в команде сложно понять, что люди способны не понимать очевидные для тебя алгоритмы и подходы, только объясняя им конкретные куски кода, понимаешь, что надо комментировать и как разбивать на методы. Самому я хзз как этому научиться
А вообще, привинти кодестайл к своему редактору, это улучшит ситацию
Ебать ты!
>что то очень нагруженного, всяких драйверов TFT и Ethernet
Ебать! Драйвер TFT работает так: запуск, функции рисования. Драйвер Ethernet работает так: запуск, функции приёма/передачи, оболочка под обработку входящих/исходящих. Там из сложного только функцианал с регистрами и сбои самих чипов сетевых.
>Пока ерохи будут запускать коптеры на ардуино
ЭТО 8 БИТ! Там уже давно ardupilot работает и только настройки требует, но тем не менее Misson Planner работает через задницу! Алё!
> но пишет райтонли говно, которое сам перестает понимать через неделю.
Комментарии оставлять надо! Алё, ёпта!
Берешь и пишешь. Каждую новую фичу в функцию. Все функции привязываешь к своему объекту, объекты плодишь через наследие и пользуешь их через их имена. В результате получаешь не, допустим, ILI9341_DrawFillRect(sX, eX, sY, eY, Color) + ILI9341_PutString("Button1", X, Y, Color, Scale) + TSC2068_ReadCoords(), а Button.Draw(X, Y, "Button1") + ButtonPressed = Buttons.Read();
Ну охуенный парень залетел.
>thernet работает так: запуск, функции приёма/передачи, оболочка под обработку входящих/исходящих
Дану? Че напишешь TCP\IP стек и драйвер MAC\PHY периферии под него?
Мне пришлось как то ошибочку искать в вендорских, там даже захардкоженный и только IP стэк это конечный автомат на 5 тысяч строк.
Пиздец, функцию приема\передачи напиши....
>ЭТО 8 БИТ! Там уже давно ardupilot работает и только настройки требует, но тем не менее Misson Planner работает через задницу! Алё!
И что? Разговор был о том, что он хочет ебать байты, а есть готовые либы кроссплатформенные.
Или ты тут сравниваешь запуск ArduinoSdelatZaebis с написанием собственных дров?
>Комментарии оставлять надо! Алё, ёпта!
Кек. А ты ничего больше 10к строк не писал?
>Че напишешь TCP\IP стек и драйвер MAC\PHY периферии под него?
Ты чипы с встроенным стэком не использовал? W5000? W5500?
>есть готовые либы кроссплатформенные
Которые говно и тайм-ту-маркет хоть и ускоряют, но потом требуют доработок. Сталкивался.
>Кек. А ты ничего больше 10к строк не писал?
Писал. И писал так, чтобы даже без комментариев было понятно что и куда. Каждый субмодуль в свой файл, каждую библиотеку по своим .h
>Которые говно и тайм-ту-маркет хоть и ускоряют, но потом требуют доработок. Сталкивался.
Конечно же. Но в этом и смысл, ебя байты ты имеешь огромные шансы ебать те байты которые как раз не будут требовать доработки.
Причем опыт на это довольно слабо влияет.
Есть хорошее правило - оптимизация только уже работающего кода и только после профилирования.
>И писал так, чтобы даже без комментариев было понятно что и куда.
This. Обилие комментариев слабо влияет на читаемость и поддерживаемость кода, а в долгостройных проектах или на поддержке еще и вредит.
>Ты чипы с встроенным стэком не использовал? W5000? W5500?
Блин ну можно так то и малину с линуксом поставить, там вообще - поставил ngnix - вот и вебморда.
Ты как то тут сманеврировал не туда, разговор был про еблю байтиков в 8б мк, а ты приплел чипы с встроенными стеками.
Смысл тебе оптимизировать и ебать 8б было, если в устройство добавляется хуйня, которая сжирает весь выигранный запас стоимости и еще сверху накидывает.
>Смысл тебе оптимизировать и ебать 8б было, если в устройство добавляется хуйня, которая сжирает весь выигранный запас стоимости и еще сверху накидывает.
Ты не туда воюешь! Я тебе писал про то, что нахуй кроссплатформенные библиотеки, которые говно.
>стоимости сверху накидывает
Стоимость человека-часа для написания стека выше, чем стоимость готового модуля W5500 в 2$ в розницу.
ъх... было бы можно прошивать его без стлинка... а так, зачем, если есть аврки(но не всегда они лучше, но не всегда стм8 сильно дешевле намного более лучшего стм32)
>было бы можно прошивать его без стлинка
Это не совсем так, во многих есть встроенный бутлоадер.
Только у тебя шиза. ST-Link стоит копейки, заодно получишь отладку. Однако что ты такое делаешь, что для тебя критична цена микроконтроллера? Весьма вероятно что даже батарейка и корпус для устройства с микроконтроллером будут стоить в несколько раз дороже микроконтроллера, а ведь там еще какие-то детали будут. Если ты не делаешь серии на много тысяч штук, то разница в стоимости совершенно несущественная.
СТЛинк сука стоит 500рублей, на алике 200.
Ебучий PicKit4 - от 5 ТЫСЯЧ блядь.
Но нет, зачем мне платить 200 рублей за ебучий жтаг, я с бутлодером лучше поебусь, мне времени не жалко, в консолечку себе байтики попердолю... ухх весело!
прошивку на стлинк давно уже расшифровали и слили, собери сам
>ты хочешь связать свою профессию с встраиваемкой
Хуяиваемкой, маня.
Кто тебе сказал, что в 2к21 кто-то использует 8-битники? 8-битники сейчас это или легаси говно(вроде avr и 8051), или чипы, которые встраивают в говорящих сабак и дилдаки(вроде того же stm8).
В новых более менее серьезных разработках(которые сложнее говорящих собак и дилдаков) используются сейчас онли ARM(а подчас и x86), в 2к21 эмбед и arm это уже слова синонимы.
А если ты хочешь прогать 8-битники на ассемблере и си, то тебе надо вернуться на 20-30 лет назад.
>от 5 ТЫСЯЧ блядь.
Ты щас так говоришь, как будто ты работаешь за 30к и 5 тысяч для тебя это огромные ДЕНЬЖИЩИ.
>8-битники сейчас это или легаси говно(вроде avr и 8051), или чипы, которые встраивают в говорящих сабак и дилдаки(вроде того же stm8).
Ардуино-боги орошают тебя золотой мочей, а ты и не против!!
>Как научиться писать архитектуру ПО с высоким уровнем абстракции?
Самый быстрый - написать самому проект 100к строк на джаве. Джава для таких навыков очень полезна, потому что там обычно архитектурная астронавтика, на уровень выше, чем надо. Сначала пишешь на джаве фабрики абстрактных фабрик и энтерпрайз левел физзбаз ( https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition ), а потом выкидываешь 99% всего этого из головы, и опускаешься обратно до своего уровня с пониманием где какие абстракции нужны.
ИМХО немного разное все же. На тех языках ты в любом случае должен и обязан абстрагироваться. Просто потому, что за императивный код или даже костыль тебя выебут.
В встраиваемках в абстракциях лишь 1 смысл - читаемость. И есть доебени моментов, где надо понимать, что вот тут лучше ебануть императивщину и это будет гораздо лучше и быстрее чем насрать даже зиро-кост классами.
>В встраиваемках в абстракциях лишь 1 смысл - читаемость.
Чтобы это понять, тебе надо написать миллион классов на джаве. Просто потому, что тогда у тебя любая функция больше 100 строк длиной будет вызывать зуд и желание отрефакторить, а идентификторы вроде ikntp41 - желание уебать в лицо автору.
>>451983
>>451962
Что вы под "высоким уровнем абстракции" понимаете? ООП? Чистая императивщина - это асм. Тот же си во встраиваемках - в большей степени процедурный подход, чем императивщина.
>Чтобы это понять
Ява не нужна. И далеко ходить не нужно - достаточно изучить исходный код ардуино-библиотек.
Хз, я от обратного пришел. Когда долго соло пишешь на пурси большие вещи (20-30к строк) и уже в процессе начинаешь охуевать это поддерживать, очень хорошо понимаешь как оно нужно.
И декомпозиция и абстрагирование и SOLID и KISSы(хотя нет) и все все все это.
В итоге в более высокие языки - врываешь с ноги, зная чего от них хочешь, а не наоборот - пытаясь примостить то, что дают.
>>451988
Арудино библиотеки это как раз обратная сторона.
Я понял такую вещь - универсализация зло, легче насрать кастомными классами, требующимися в конкретном проекте, но предельно малыми и узкими, чем ебенить универсальное переносимое говно.
Оно в любом случае не будет универсальным и переносимым без вьеба огромного кол-ва времени.
Это копия, сохраненная 30 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.