Krasimir е на правилният път трябва ти постоянно проверяващ код с др. думи без нито един delay а само с проверки колко време е минало спрямо последната проверка на времето. Мигането без delay е точният пример за този вид програмиране и така трябва да изглежда кодът ти със съответните статуси за твоя случай (много рядък случай) ти трябват над 20 статуса, но да това е подходът и няма как да стане без този подход.
С цел да разбереш по-лесно нещата ще ти го обясня така:
Искам да светвам лапата в коридора в SOS сигнал записвам си в колко часа започвам със светнато състояние.
Вместо да броя 1 сек (delay) си гледам часовника като мине една секунда според часовника изгасям и така нататък.
Идеята е че ако искам да свърша нещо друго между светването и изгасването или да прекратя цялата процедура аз ще мога да го направя защото не съм зает да броя секундите, а чакам точен час.
Без този принцип на работя няма как да направиш система която работи с повече от една логическа верига. По-лесно казано ако само светваш броиш гасиш няма как да направиш повече понеже постоянно имаш работа (или светваш или броиш или гасиш) за това си взимаш часовник и като дойде времето да гасиш гасиш а преди това може да правиш каквото искаш.
Надявам се да е станало по-ясно.
За начало започни с нещо по-лесно. (например два бутона които контролират два светодиода да светят по време на натискането на бутона и секунда след).
П.П.
Относно времето за езика максимум седмица за схващане на основните команди и придобиване на опит с тях. За схващане на логиката нужна за направата на системи с повече от едно действие едновременно е много специфично виждал съм хора на по 50-60 които са се опитвали да разберат логиката, но все още гледат на това като на ядрена физика и такива които на 9 разбират и могат да сътворят нещо. Точно време няма когато го разбереш тогава най-важното е да не спираш да опитваш, защото изходите от ситуацията са два отказваш се или успяваш да усвоиш знанието, ако не се отказваш остава само един вариант.