покритикуйте алгоритм разбора числа

Invisible
Offline
Зарегистрирован: 26.04.2018

Всем привет!

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

Прошу всех желающих улучшить или оптимизировать этот код, а мы вам только СПАСИБО огромное скажем. Я люблю учиться у опытных товарищей.

Invisible

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Invisible, в Вашем коде начисто отсутствует декомпозиция. Функционально законченные блоки принято выносить в отдельные функции. 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Совершенства не бывает. Оптимизация без критериев бессмысленна. ну, а так, просто сделать поприличнее - это можно.

Вот скажи, нахрена у тебя так много всего? Нахрена такие сложности. Почему не сделать вот так - коротко и понятно. результат тот же самый.

#include <TM1637.h>

#define CLK 3   
#define DIO 2
#define T_MAX	999
#define T_START	0

TM1637 tm1637(CLK,DIO);

void setup(void) {
	tm1637.init();
	tm1637.set(BRIGHT_TYPICAL);
}

void loop(void) {
	for (int t = T_START; t <= T_MAX; t++) {
		for (int i=3, j=t; i>=0; i--, j/=10) tm1637.display(i, j % 10);
		delay(50);
	}
}

 

Invisible
Offline
Зарегистрирован: 26.04.2018

Склоняю перед Вами голову. Вот куда надо расти! Спасибо за урок )

Invisible

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Хе, там еще парочка этажей куда расти.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

И чо ж за этажи? Был бы благодарен.