LINUX.ORG.RU
ФорумTalks

Ну почему ардуинщики такие криворукие?

 , ,


1

6

По роду деятельности я сейчас программист-ембеддер (по голому железу). До этого много лет был программистом сетевых сервисов. А перед этим пилил десктопный софт на Делфях. Но никогда, ни в одной из этих областей не видел такого количества идиотии, олигофрении, и кретинизма, как в высерах ардуинщиков.

Каждая первая поделка на гитхабе если и работает, то не благодаря стараниям ардуинщика, а вопреки им.

Чтобы не быть голословным. Классика! Ардуинщик обнуляет биты в регистре:

TCCRn |= (0<<CS02)|(0<<CS01)|(0<<CS00);
В данном случае придурку просто повезло, что от содержимого TCCRn ничего не зависит в дальнейшем.

Второй показательный пример, ардуинщик пишет обертку над чужой либой:

int Serial::available(void)
{
	return (unsigned int)(UART_RX_BUFFER_SIZE + UART_RxHead - UART_RxTail) % UART_RX_BUFFER_SIZE;
}

int Serial::read(void)
{
	UART_Receive_Byte(); // возвращает uint8_t
}
Два соседних метода просто гениальны. Вообще непонятно, он свою поделку запускал хоть раз?

Затянуть на восьмибитный кристалл FPU-рантайм безо всякой надобности? Да проще простого!

float Voltage=ADC/1024*1.1/DIVIDER;
...
if(Voltage < 10.5) {
  ...
}
// больше Voltage нигде не упоминается
Потом стонут, что их мигалка светодиодами в 32 килобайта не влезает.

Тут вообще непонятно, о чем в этот момент думал очередной дятел:

USICR = (2<<USIWM0);
Причем оно у него заработало! Но только потому, что бит в этом месте нужно было двинуть на одну позицию левее, чем USIWM0 (для чего объявлен в хидерах и описан в даташите USIWM1). Лишнее подтверждение работы вопреки стараниям кривых рученок.

Про такие мелочи, как запись в регистры битовых констант без сдвига, битовых констант от других регистров, магических хексов вместо битовых констант, и говорить нечего, это просто повально.

Короче, в очередной раз после попытки найти готовую реализацию несложной фигни, пришлось грустно делать все самому. Нашел на гитхабе четыре варианта, все ведут себя по-разному, в итоге ни один нормально не работает. Ошибки — тупейшие. Стиль кодинга такой, что проще выбросить, чем пытаться исправить. И уж тем более нельзя тянуть такое в нормальный проект.

И вся эта пакость расползается по интернету, торчит на каждой ардуинопомойке, копипастится из проекта в проект. Жуть.

Ардуинщиков — в биореактор.



Последнее исправление: quwy (всего исправлений: 5)

я сейчас программист-ембеддер

Это хорошо

Но никогда, ни в одной из этих областей не видел такого количества идиотии, олигофрении, и кретинизма, как в высерах ардуинщиков.

А вот этого в промышленном эмбедде нет. Поэтому не сильно понимаю, в связи с чем такой взрыв эмоций.

Ардуинщиков — в биореактор.

Не надо. Школьники и аматоры развлекаются, как могут. Зачем в биореактор?

aiqu6Ait ★★★★
()
Последнее исправление: aiqu6Ait (всего исправлений: 2)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)