RTV forum PL | NewsGroups PL

Jak efektywnie przesyłać dane do portu C na ATMega8 i taktować odświeżanie zegara?

ATMega8 + C + zegar binarny

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak efektywnie przesyłać dane do portu C na ATMega8 i taktować odświeżanie zegara?

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 Smile

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 Smile

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 Razz

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 Razz

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.

elektroda NewsGroups Forum Index - Elektronika Polska - Jak efektywnie przesyłać dane do portu C na ATMega8 i taktować odświeżanie zegara?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map