U pravu ste za struju koja je potrebna za displej jer nije ista struja za jedan i za četiri cifre a sve ide preko otpornika. Ovo je deo kako sam ja napisao prikazivanje displeja:
Code:
.
.
.
byte const cifra[18] = {0x6f,0x60,0xCB,0xE3,0xE4,0xA7,0xAF,0x62,0xEF,0xE7,0x0F,0x8F,0x88,0x0D,0xCE,0xE9,0xA8,0x00};
void prikaz()
{
OUTPUT_B(cifra[a]);
output_bit( PIN_C4, 1);
delay_us(500);
output_bit( PIN_C4, 0);
OUTPUT_B(cifra[b]);
output_bit( PIN_C5, 1);
delay_us(500);
output_bit( PIN_C5, 0);
OUTPUT_B(cifra[c]);
output_bit( PIN_C6, 1);
delay_us(500);
output_bit( PIN_C6, 0);
OUTPUT_B(cifra[d]);
output_bit( PIN_C7, 1);
delay_us(500);
output_bit( PIN_C7, 0);
}
Ovo je podprogram koji pozivam svaki put kad treba da ispišem nešto na displeju s'tim da moram da ga pozivam češće ako želim da displej svetli intezivnije. Znam da mi govorite da radim sa interaptom ali nisam se još oprobao sa tim jer mislim da mi je za sada komplikovano. Čitam, ali još uvek ne shvatam. Nedoumica mi je u tome što ako pozovem displej da prikaže rezultat i u tome mi po cifri treba 5ms smatram da mi je preveliko vreme jer dok to radi ne posmatra mi spoljne parametre (np. temperaturu, prekidač...) ili grešim. Interesuje me da li kad uključim interapt on u "sebi" broji a dok "broji" mogu u glavnom programu da mu zadam da nešto drugo radi a kad dođe do prekida (prekoračenje vremena) on prekida glavni program i uradi ono što sam mu zadao pa se vrati na glavni program. Šta je tačno prvo,drugo ili nijedno? Usputno pitanje je, kako da AD konverziju, posle isčitavanja napona, da dobijem decimalni zapis srazmeran pročitanom naponu (np. ulazni napon 1,54V a decimalni zapis bude 154). Posle toga znam da razložim 154 na pojedinačne cifre (1,5,4) i njih da prenesem na displej. Znam da širim temu ali šta ću kad se pitanja sama nameću a vi srećom imate (nemate?) strpljenja za mene. Unapred hvala.