Da objasnim zasto stalno instistiram na ovom resenju sa Blue Pill i direktnim guranjem LED, igrom slucaja to je retka kombinacija svih pojedinacnih delova koji se savrseno lepo uklapaju i sa SW i sa HW.
Kao prvo STM32 ima stalno spominjanje BSRR registre koji nam omugucavaju da napokon mozemo da setujemo bilo koju nozicu na bilo kom portu
bez read-modify-write, ja ne znam da li imaju drugi ne-ARM kontroleri koji to mogu da urade, ispravite me ako gresim.
Ta jedna jedina opcija nam daje preduslov na mozemo da se malo "opustenije" igramo u ISR rutini jer ne moramo da pazimo na raise-condition sve dok vodimo racuna koje nozice kontrolisemo iz ISR. Takodje bas ta opcija nam se savrseno lepo nadovezuje na to da 7-Seg LED modul (5x7seg) mozemo fizicki da umetnemo izmedju DIP-40 rastera koji zauzima Blue Pill sa druge strane plocice tako da nozice od displeja idu odmah na I/O nozicu i tacno ima malo izmedju prostora (jedna raster-rupica 2.54mm) gde se umetne seriski otpornik za LED. Izpovezane nozice se lepo konfigurisu u programu i to je resen problem displeja.
U programu kao sto rekoh pocinje prica ali na malo drugaciji nacin (bar sam ja to tako resavao), ima tajmer koji poziva ISR recimo na svakih 1ms (1kHz) koji radi potrebnu logiku za osvezavanje JEDNE CIFRE + isti ISR iskoristio za interne vremence posto mi je zgodna vremenska baza, tako sam dobio i vremensku bazu i brzo osvezavanje LED-a i to je sve skockano sa inline optimizovanim switch/case logikom, bez funkciskih poziva i zauzima minimalno procesorskog vremena. Veza izmedju ISR rutine i vrednosti na displeju je preko jedne globalne array sa 5 clanova i to je sve.
Ja zgodnije i jednostavnije HW / SW resenje nisam video od tog do sad ... Naravno nagledao sam se kojekakvih 8-bit MCU kod kojih MORA da se sloze portovi sa LED nozicama, ne mogu bilo koje nozice, sa STM32 mogu bilo koje nozice i to je to ...
Ja sam tako gurao do 6 cifri direktno iz STM32 i to sa oversamplovanim (internim) 18bit-A/D, kao nesto zbog shuma ovo-ono ... ma radi to sve ko zmaj ...