Povezivanje ti je OK. Princip osvežavanja displeja ti nije dobar. Ne koristim bascom pa ne mogu tu da ti pomognem ali osvežavanje se radi u prekidnoj rutini tajmera.
- Podesiš neki od tajmera tako da generiše prekid nekom frekvencijom. Frekvencija osvežavanja zavisi od broja cifara koje prikazuješ.
- U prekidnoj rutini pogasiš sve tranzistore postavljanjem porta na 0.
- Na segmente (kod tebe je to port D) dovedeš izlaz iz tvoje funkcije Numbers i to samo za jednu cifru. Ovde uvedeš pomoćni brojač koji broji od 0 pa do ukupnog broja cifara minus 1. Svaki ulaz u prekidnu rutinu povećava taj brojač za jedan. Za vrednost brojača 0 izlaz iz Numbers treba da ti bude kodirana cifra za stotine, za vrednost brojača 1 izlaz iz Numbers ti je kodirana vrednost za desetice itd..
- Uključiš tranzistor za odgovarajuću cifru i on ostaje uključen sve do narednog ulaska u prekidnu rutinu. Svo to vreme svetli jedna cifra.
U glavnoj petlji možeš da nastaviš uvećavanje broja koji želiš da prikažeš kao i do sada.
Prekid tajmera ti je vrlo bitna stvar i prava je prilika da ga savladaš sad uz ovo.
- Podesiš neki od tajmera tako da generiše prekid nekom frekvencijom. Frekvencija osvežavanja zavisi od broja cifara koje prikazuješ.
- U prekidnoj rutini pogasiš sve tranzistore postavljanjem porta na 0.
- Na segmente (kod tebe je to port D) dovedeš izlaz iz tvoje funkcije Numbers i to samo za jednu cifru. Ovde uvedeš pomoćni brojač koji broji od 0 pa do ukupnog broja cifara minus 1. Svaki ulaz u prekidnu rutinu povećava taj brojač za jedan. Za vrednost brojača 0 izlaz iz Numbers treba da ti bude kodirana cifra za stotine, za vrednost brojača 1 izlaz iz Numbers ti je kodirana vrednost za desetice itd..
- Uključiš tranzistor za odgovarajuću cifru i on ostaje uključen sve do narednog ulaska u prekidnu rutinu. Svo to vreme svetli jedna cifra.
U glavnoj petlji možeš da nastaviš uvećavanje broja koji želiš da prikažeš kao i do sada.
Prekid tajmera ti je vrlo bitna stvar i prava je prilika da ga savladaš sad uz ovo.