Samo mali offtopic posto su se spominjali LCD i tastatura, evo jedan probni setup LCD kontrolera baziranom na STM32F103 tj Blue Pill plocicama gde zelim da napravim sledecu stvar, vidite pored LCD malu crnu plocicu koja je I2C expander za ove displeje, to je totalna glupost i sa nesto malkice vise novca moze da se upotrebi ovaj STM32 koji bi sam obradjivao samo ekran i tastaturu i to fino i elegatno sa kontrolom pozadinskog osvetljenja i kontrasta, buzzer, pa onda tastatura moze da se napakuje kako god hocete sa sve debounc i sta treba (ili kapacitivna - dokle vise ti mehanicki tasteri), dalje vrlo bitno moze da se napravi da generise HW interapt koji signalizira nekom Master kontroleru da ima dogadjaj za tastaturu i cak je izvodljivo da se preko DMA kanala radi transfer informacija prakticno bez intervencije glavnog procesora i programa! Da ne pricam da mogu da povezem ovakav LCD i tastaturu preko bilo kog protokola ili brzine sa master kontrolerom, opto, diferencialno itd itd.
Cela poenta sa ovom postavkom je ta da sam problem tastature i displeja izmestio totalno na drugo mesto i nije vise deo nekog Master programa koji radi neke daleko delikatnije stvari. Kada zavrsim pisanje programa za ovo ja sam taj problem LCD i KBD resio za mnoge druge projekte i znacajno olaksao plakticnu SW i HW implementaciju za buduce projekte. Otac me je tako ucio, davno je to isto pravio sa 16F84 i Forth ...
Takodje ceo Menu sistem moze da stoji u ovom kontroleru ili da se uradi pre-load da se ne salju jedne iste poruke i trosi vreme nego se samo pozove odredjen meni, formatiranje i konverzija brojeva (sprintf) ... ima gomila mogucnosti (text scroll, "vu-metri" itd) i to sve oslobodjeno od Master kontrolera, dakle cilj je da Master kontroler moze u okviru par masinskih ciklusa da promeni ispis sa npr RUN u STOP (literal/komanda na stack, stack u izlazi TX buffer seriske komunikacije, dovidjenja) ...
Pa onda internacionalizacija tekstova, sve lepo moze da se napakuje za vise jezika (Srpski, Engleski itd) i opet Mater kontroler samo poziva predefinisane poruke, uopste ga taj prevod ne interesuje ...
Tu se cak isplati napraviti mali PC GUI za konfiguraciju tog displeja, sve se lepo isklikce i izkucka na PC, PC to zvekne preko USB na ovaj STM32 i tako ga konfigurise, posle toga se sve odkaci i poveze na krajnju aplikaciju cime se izbegava da se to radi iz Master kontrolera!
BTW: STM32 ovde gura pozadinsko osvetljenje za ovaj ekran samo tako direktno sa jednog izlaznog pina (open Drain) sa HW PWM .. a i kontrast sa jednim R/C ... cak funkcija podesavanja kontrasta i osvetljenja moze da bude interna sa nekom kombinacijom tastera, sta to briga Master kontolera
http://www.stm32duino.com/viewtopic.php?f=9&t=1171&p=14711&hilit=1602a#p14711