Witajcie.
To moje poczatki w mikrokontrolerami. Piszę w C.
Mam taką procedurkę która zapala mi diodki podłaczone do rejestru przesównego w zależności od stanu jakiegoś tam Bajtu ( buduje zegarek z wyświetlaczem na matrycy LED, wiem że sa gotowce ale chcę wszystko samemu od podstaw zrobić żeby się czegoś nauczyć) , wszystko ładnie działa tylko algorytm jest bardzo nieelegancki:
i tak do końca bajtu
Jak to zrobić bardziej elegancko? tzn żeby nie było tych durnych if-elsów tylko jednym zapisem zobić:
w następnej linijce miał bym:
i tak aż do końca tegoż bajtu, oczywiście nie wpływając na stan pozostałych bitów portu C
Przyznam, że czytałem kurs ale niestety nie rozumiem jeszcze dokładnie tych zawiłych skądinąd operatorów przypisania.
Pozdrawiam.
To moje poczatki w mikrokontrolerami. Piszę w C.
Mam taką procedurkę która zapala mi diodki podłaczone do rejestru przesównego w zależności od stanu jakiegoś tam Bajtu ( buduje zegarek z wyświetlaczem na matrycy LED, wiem że sa gotowce ale chcę wszystko samemu od podstaw zrobić żeby się czegoś nauczyć) , wszystko ładnie działa tylko algorytm jest bardzo nieelegancki:
if (wers & 0b00000001)
{
PORTC |=_BV(4);
} else{
PORTC &=~_BV(4);
}
if (wers & 0b00000010)
{
PORTC |=_BV(4);
} else{
PORTC &=~_BV(4);
}
if (wers & 0b00000100)
{
PORTC |=_BV(4);
} else{
PORTC &=~_BV(4);
}
i tak do końca bajtu
Jak to zrobić bardziej elegancko? tzn żeby nie było tych durnych if-elsów tylko jednym zapisem zobić:
ustaw czwarty bit portu C tak jak jest ustawiony pierwszy bit bajtu "wers"
w następnej linijce miał bym:
ustaw czwarty bit portu C tak jak jest ustawiony drógi bit bajtu "wers"Przyznam, że czytałem kurs ale niestety nie rozumiem jeszcze dokładnie tych zawiłych skądinąd operatorów przypisania.
Pozdrawiam.
