scx
Guest
Wed May 16, 2007 6:11 pm
Witam
Robię sobie zegar binarny z termometrem, wyświetlam godzinę i
temperaturę na matrycy 8 kolumn x 5 wierszy LED. Robię to na ATMedze8
z kwarcem 4MHz. Kompilator to gcc.
Konstrukcja wymusza "przesuwanie" jedynki po kolumnach, a na wiersze
konretnej kombinacji zapalonych lampek w jednym wierszu.
Mam dwa pytania:
Jak wywalać te 5 bitów (zmienna wyswietlacz) na port c, nie ruszając
pozostałych? Na PORTC5 mam podpięty termometr przez 1-wire...
Coś takiego?:
PORTB = (PORTB & 0b11100000) | wyswietl;
Czy może jest jakiś bardziej elegancki sposób?
Pytanie drugie:
Jak najlepiej taktować te odświeżanie? W pętli głównej? Czy może
zatrudnić do tego timer (jeden mam jeszcze wolny)?
Wiem, że i tak i tak da się zrobić - ale chciałbym poznać opinie
bardziej doświadczonych programistów :)
--
scx
Wszyscy mają sygnaturkę... mam i ja
Miller Artur
Guest
Wed May 16, 2007 6:35 pm
Użytkownik "scx" <szczupx.WYTNIJ@TO.wp.pl> napisał w wiadomości
news:jlcm43t0o4nbejvsv0uf8p7q886l5u7me0@4ax.com...
Quote:
Witam
Robię sobie zegar binarny z termometrem, wyświetlam godzinę i
temperaturę na matrycy 8 kolumn x 5 wierszy LED. Robię to na ATMedze8
z kwarcem 4MHz. Kompilator to gcc.
Konstrukcja wymusza "przesuwanie" jedynki po kolumnach, a na wiersze
konretnej kombinacji zapalonych lampek w jednym wierszu.
Mam dwa pytania:
Jak wywalać te 5 bitów (zmienna wyswietlacz) na port c, nie ruszając
pozostałych? Na PORTC5 mam podpięty termometr przez 1-wire...
Coś takiego?:
PORTB = (PORTB & 0b11100000) | wyswietl;
Czy może jest jakiś bardziej elegancki sposób?
jesli działa, to ...
Quote:
Pytanie drugie:
Jak najlepiej taktować te odświeżanie? W pętli głównej? Czy może
zatrudnić do tego timer (jeden mam jeszcze wolny)?
Wiem, że i tak i tak da się zrobić - ale chciałbym poznać opinie
bardziej doświadczonych programistów
a co za różnica ? taki program piszesz raz i o nim zapominasz ... procesor
nie zużywa się od działania ...
@
willy
Guest
Thu May 17, 2007 7:10 am
On 16 Maj, 19:35, "Miller Artur" <a...@nowhere.com> wrote:
Quote:
Użytkownik "scx" <szczupx.WYT...@TO.wp.pl> napisał w wiadomościnews:jlcm43t0o4nbejvsv0uf8p7q886l5u7me0@4ax.com...
Witam
Robię sobie zegar binarny z termometrem, wyświetlam godzinę i
temperaturę na matrycy 8 kolumn x 5 wierszy LED. Robię to na ATMedze8
z kwarcem 4MHz. Kompilator to gcc.
Konstrukcja wymusza "przesuwanie" jedynki po kolumnach, a na wiersze
konretnej kombinacji zapalonych lampek w jednym wierszu.
Mam dwa pytania:
Jak wywalać te 5 bitów (zmienna wyswietlacz) na port c, nie ruszając
pozostałych? Na PORTC5 mam podpięty termometr przez 1-wire...
Coś takiego?:
PORTB = (PORTB & 0b11100000) | wyswietl;
Czy może jest jakiś bardziej elegancki sposób?
jesli działa, to ...
Pytanie drugie:
Jak najlepiej taktować te odświeżanie? W pętli głównej? Czy może
zatrudnić do tego timer (jeden mam jeszcze wolny)?
Wiem, że i tak i tak da się zrobić - ale chciałbym poznać opinie
bardziej doświadczonych programistów :)
a co za różnica ? taki program piszesz raz i o nim zapominasz ... procesor
nie zużywa się od działania ...
@
Mnie tam zawsze uczuli że bardziej "elegancką" wersją jest używanie
timera
Miller Artur
Guest
Thu May 17, 2007 7:41 am
Użytkownik "willy" <maciej.dziuban@interia.pl> napisał w wiadomości
Quote:
Mnie tam zawsze uczuli że bardziej "elegancką" wersją jest używanie
timera
no jesli program ma również wyglądać, oprócz działania, to niech będzie
elegancki ;)
@
Adam Dybkowski
Guest
Fri May 18, 2007 12:26 am
scx napisał(a):
Quote:
Jak wywalać te 5 bitów (zmienna wyswietlacz) na port c, nie ruszając
pozostałych? Na PORTC5 mam podpięty termometr przez 1-wire...
Coś takiego?:
PORTB = (PORTB & 0b11100000) | wyswietl;
Sposób bardzo dobry i skuteczny.
Quote:
Jak najlepiej taktować te odświeżanie? W pętli głównej? Czy może
zatrudnić do tego timer (jeden mam jeszcze wolny)?
Odświeżanie taktuj timerem, który będzie wywoływał przerwanie, a w nim
dopiero będzie odbywało się wysyłanie kolejnych kolumn na port.
Odświeżanie wyświetlacza będzie niejako "w tle" a w głównej pętli
programu zajmiesz się bardziej przydatnymi zadaniami.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.