Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Отвлекитесь, эмбеддеры! Отвлеченные темы - обсудить проблемы тепловой смерти вселенной, или просто пиво. Этот раздел - для отдыха.

 
Опции темы
Непрочитано 26.10.2018, 19:06  
stalkernet
Почётный гражданин KAZUS.RU
 
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
stalkernet на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Сообщение от serg28serg Посмотреть сообщение
получается бабки лежат - не ты поднимешь, так кто-то другой
уж лучше себе поднять чем кто то другой огород подчистит
Ню - Ню..... А про то что ты как разработчик несеш ответственность не забыл??? И не дайбог ктото помрет покалечится кто отвечать будет???? естественно не заказчик...
stalkernet вне форума  
Непрочитано 26.10.2018, 19:26  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Сообщение от verdana Посмотреть сообщение
а дисплей раскрашивает через FSMC.
)) Кстати, FSMC для дисплея - это уже дико устаревший вариант эпохи первых F103. Ну это так, к слову.

Сообщение от serg28serg Посмотреть сообщение
этом же плане про MODBUS
А причем тут протокол Модбас и набор правил МИСРА? Хотя, в принципе, если соблюдаешь правила хорошего тона в программировании, то и виснуть там ничего не будет в Модбасе. Потому что, когда ты пишешь прогу по всем правилам, ты СРАЗУ уже не допускаешь неоднозначностей и опасных мест.
Ну как вам проще объяснить, чтобы вы наконец-то поняли о чем именно я говорю... ну не знаю, ну вот давайте вот например вот так:

Код:
switch(value){
case 1: /* что-то выполнить */;
break;
case 2: /* что-то выполнить */;
break;
}
и представим, что value по какой-либо причине оказалась не равна ни 1, ни 2. Особенно если value - это читаемое извне значение. То есть, на ошибочное значение никак не среагировали, пропустили.

Или другой пример. Цикл ожидания чего-либо:
Код:
while(!event) { }
- это потенциальный источник мертвого зависания. Причем, тут даже две ошибки. Первая - если event объявлен НЕ volatile. Тогда компилятор при оптимизации выкинет вообще event, посчитав ее константой. И вторая ошибка - а вдруг event не наступит никогда? Вооо. Нужен таймаут ожидания.
Знающий, опытный программер видит такие проблемы на два шага вперед, еще даже не написав эту строчку.

Ладно. Третий пример, совершенно практический. Кто немного вкурсах MIDI, тот поймет. Там, кароче, значения второго и третьего байта сообщения должны быть в диапазоне 0 - 127.
Код:
void MIDI_SendNoteOn(uint8_t note, uint8_t velocity)
{
    SendInterface(0x90);
    SendInterface(note);
    SendInterface(velocity);
}
причем, velocity зачастую получается преобразованием длительности времени между размыканием и замыканием переключающего контакта, или же как результат АЦП. Представьте, если результат каким-то образом превысил значение 127. И вы его отправляете. Что произойдет на принимающем устройстве??? Как оно отреагирует? Отбросит ли старший бит и посчитает, что velocity = принятое - 127? Или проигнорирует принятое сообщение целиком? Как???
Опытный программист сразу же добавит условие, что если переменная выходит за диапазон, она будет считаться равной верхней или нижней границе диапазона. В данном случае, это будет выглядеть вот так:
Код:
void MIDI_SendNoteOn(uint8_t note, uint8_t velocity)
{
    if(note › 127) note = 127;
    if(velocity › 127) velocity = 127;
   /* код отправки */
}
Ну что, теперь понятно, что такое грамотное, отказоустойчивое программирование? Имеют ли ардуино-скетчи подобные "излишества"? Знают ли вообще об этом ардуинщики, когда делают "контроллер пассажирского лифта"?
Ошибки многих кодописателей в том, что они считают, что если какое-то событие явно не может произойти, то оно и не произойдет никогда. Как показывает практика, если событие может произойти, то оно рано или поздно произойдет, когда для этого наступит время, стечение обстоятельств или просто по "закону подлости".
NewWriter вне форума  
Сказали "Спасибо" NewWriter
stalkernet (26.10.2018)
Непрочитано 26.10.2018, 19:55  
verdana
Заблокирован
 
Регистрация: 16.03.2005
Сообщений: 5,918
Сказал спасибо: 560
Сказали Спасибо 9,145 раз(а) в 2,892 сообщении(ях)
verdana на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Сообщение от NewWriter Посмотреть сообщение
)) Кстати, FSMC для дисплея - это уже дико устаревший вариант эпохи первых F103. Ну это так, к слову.
Не буду возражать. Непринципиально.
У меня и F429 так работал. Может и некошерно, но это именно для себя.

Подставьте любой термин по вкусу.
Смысл не изменится ни на йоту.

А по поводу случáев...
https://kazus.ru/forums/showpost.php...&postcount=321

Последний раз редактировалось verdana; 26.10.2018 в 20:20.
verdana вне форума  
Сказали "Спасибо" verdana
stalkernet (26.10.2018)
Непрочитано 26.10.2018, 20:14  
verdana
Заблокирован
 
Регистрация: 16.03.2005
Сообщений: 5,918
Сказал спасибо: 560
Сказали Спасибо 9,145 раз(а) в 2,892 сообщении(ях)
verdana на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

"-Чем отличается хороший лётчик от плохого?
-Хороший лётчик умеет делать всё то же, что и плохой,
но кроме того, совершенно точно знает, чего нельзя делать"
©
verdana вне форума  
Сказали "Спасибо" verdana
stalkernet (26.10.2018)
Непрочитано 26.10.2018, 20:29  
mahacytl
Прописка
 
Регистрация: 18.09.2008
Сообщений: 271
Сказал спасибо: 237
Сказали Спасибо 127 раз(а) в 69 сообщении(ях)
mahacytl на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Сообщение от NewWriter
Кстати
В целом согласен, кроме настроя именно против Ардуин.
Мой коллега, которого я упомянул, был именно классическим ардуинщиком, т.е. любил повторять схемы на основе Atmel без анализа схемы, кода.
Но это вопрос философский.
Мы с ним как-то поспорили - я - какой интерес повторять чужие конструкции, чужие коды, не вникая в них?
Он - а вам какое дело, мне это нравится.
Я вспомнил про своего знакомого, который хранил массу системных программ - например, когда я его спросил - у тебя есть P-CAD ? - он спросил - какую версию - у него были от 1. до Altium.
Ну спасибо, что у него всё это есть, но зачем это всё хранить?
Мне это напомнило тем, что он не вникал в них - просто хранил.
Мой коллега, надо признать, стал вникать в код, менять под себя.
И это правильно.
Просто наезд на ардуино мне напоминает своё.
10 лет назад у нас на фирме было принято программировать на PIC - было официально принято на учёном совете.
Ну на PIC, так на PIC, я вообще был знаком с 8086 и Z-80.
Наш системный программер на остановке поговорил на остановке с программером конкурентов - PIC гавно, Atmel рулит.
Ну, я и не являлся адептом PIC, за что платят, то программирую.
Просто, повторюсь, проблема не в контроллере, а в подходе к нему

Последний раз редактировалось mahacytl; 26.10.2018 в 20:32.
mahacytl вне форума  
Непрочитано 26.10.2018, 20:37  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

По поводу того случАя... Нуууу если уж ваще строго подходить, то программист сам по себе этого может и не знать. Ему вообще пофик, ему надо знать, что на входе есть и может быть есть, и что должно быть на выходе, и задача программиста - чтобы было четко по ТЗ.
Но на практике зачастую программист - мастер на все руки, и там должен знать, и это должен уметь, и плату отрисовать правильно, и подготовить герберы, а еще лучше - сам и сделать и спаять. Да еще и корпус подобрать и в корпус запихать, да еще и красивые надписи напечатать
NewWriter вне форума  
Сказали "Спасибо" NewWriter
stalkernet (26.10.2018)
Непрочитано 26.10.2018, 20:49  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Сообщение от mahacytl Посмотреть сообщение
кроме настроя именно против Ардуин.
Я НЕ против Ардуин. Я против того, чтобы их пихали втуда, куда им вход запрещен. И я это уже не раз повторил. Ардуина - это не только плата, но и адруино-подход к программированию вообще. Дело не в микроконтроллере. AVR и PIC встречается в серийных устройствах гораздо чаще, чем тот же STM32. Между прочим, контроллер пассажирского лифта OTIS - там PIC. Причем, еще даже в DIP-корпусе. Но он прошел сертификацию на безопасность.
А приходилось ли вам видеть "бутерброды" из ардуино-шилдов, обмотанные паутиной проводов, и засунутые в стандартный электрический шкаф? Ну-ну, так посмотрите, поглазейте.
Вот, вот это - как думаете, безотказно ли будет работать?



беспаечные платы знаете? Фкурсах, что у них ослабевают прижимы контактов и что помехи по шинам питания просто ужасны?


Касательно готовых плат - есть и Intel Edison, и Raspberry, которые в принципе являются готовыми для работы. Те же "Малины" ставят как контроллеры LED-панелей. Причем, китайцы их пачками штампуют. Правда, говно получается низкопробное, надежность - вообще отстой, сам сталкивался.

Кстати, для желающих программировать в промышленных масштабах - есть PLC (ПЛК, программируемый логический контроллер). Сименсы например считаются весьма кошерными и расово верными для промышленной автоматики. Берите, пользуйте. По крайней мере, за схемотехнику сам Сименс ручается, к нему все косяки, ежели вдруг чаво.

Последний раз редактировалось NewWriter; 26.10.2018 в 21:06.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
stalkernet (26.10.2018)
Непрочитано 26.10.2018, 21:05  
verdana
Заблокирован
 
Регистрация: 16.03.2005
Сообщений: 5,918
Сказал спасибо: 560
Сказали Спасибо 9,145 раз(а) в 2,892 сообщении(ях)
verdana на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Сообщение от NewWriter Посмотреть сообщение
но и адруино-подход к программированию вообще..
А что именно?
Абстракция от железа?

Ну так по сравнению с LD и FBD для PLC, Ардуино нервно курит в углу.
И ни кто на них не матерится...
verdana вне форума  
Непрочитано 26.10.2018, 21:11  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,920
Сказал спасибо: 2,982
Сказали Спасибо 3,162 раз(а) в 2,146 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Сообщение от serg28serg Посмотреть сообщение
глючить и долго копаться в тестах чужого софта не очень комильфо , лучше взять готовое и тестить, правки как правило - минимальны, ну то есть гораздо меньше чем самопись
Прощу прощения, но тут взаимоисключающие пункты.
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Непрочитано 26.10.2018, 21:14  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Абдуринщики на марше.

Не, не абстракция от железа. Нет. Ладно бы только абстракция. Абстракция и универсальность влияет только на скорость и эффективность использования процессорного времени. Абстракция - это вообще правильный подход в кодонаписании, когда все разложено по полочкам, по уровням.
Но вот универсальность - враг оптимальности.
Ладно, хрен с ней, с абстракцией.
Я говорю о ардуино-подходе, когда вон там, как на картинке в предыдущем посте. Каша. И такая же каша - в программном коде. ВОТ о каком ардуино-подходе я говорю.
Часто (да почти всегда) ардуинщики ляпают код ужасно нерационально. Зачастую, аппаратные интерфейсы МК заменяются программной их реализацией, да еще в самом черезжопном варианте, когда тайминги делаются через блокирующий delay. Из-за чего вся система получается просто тормознутой.
Вот и об таком ардуино-подходе я толкую.
Вот!

ПЛК конечно тоже еще тот венец творения. Но они хотябы сертифицированы. Имею ввиду Сименс, как самый распространенный и многоуважаемый. Еще есть Овен, как вариант для тех, у кого не хватило денег на Сименс.
Но вы посмотрите на внутренности ПЛК. Там стоят весьма производительные процы (микроконтроллеры), дающие на выходе очень даже невысокий КПД. Как раз по причине универсальности. Фактически, внутри там крутится транслятор кода. Но почему ПЛК сертифицированы? Да потому, что блоки, из которых генерируется исполняемый код, они построены по отработанному отказоустойчивому алгоритму.

Последний раз редактировалось NewWriter; 26.10.2018 в 21:26.
NewWriter вне форума  
Эти 2 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
Jack_A (27.10.2018), stalkernet (27.10.2018)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 08:55.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot