logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dwojakie adresowanie wejść i wyjść (rejestry)?

shel82 26 Paź 2010 17:02 972 4
REKLAMA
  • #1 8666130
    shel82
    Poziom 18  
    Witam, może mi ktoś w prosty sposób wyjaśnić zasadę adresowania portów w układach AVR wiem, że niby to proste i czytałem na ten temat kilka innych pomocy, a jednak nadal mam problem, a mianowicie,
    przykład:
    DDRB = _BV(7)|_BV(6)|_BV(5)|_BV(4);
    lub
    DDRB = 0xF0;

    Wiem, że ten pierwszy zapis przyporządkowuje wartości bitów do poszczególnych we/wy układu (4, 5, 6, 7), ale nie rozumiem skąd bierze się ten zapis poniżej, który jest równoważny pierwszemu?
  • REKLAMA
  • Pomocny post
    #2 8666221
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Podstawy języka C... niestety... Znajdź sobie rozwinięcie tego bzdurnego, bezsensownego i niepotrzebnego makra _BV(x), potem przejrzyj książki o C (rozdział o operatorach) i wszystko będzie jasne.

    4\/3!!
  • REKLAMA
  • Pomocny post
    #3 8666241
    gaskoin
    Poziom 38  
    zerknij w avr libc co oznacza zapis _BV(x)

    a potem poczytaj w ksiżce do C o operatorach

    następnie zerknij gdzieś co to jest system dwójkowy, szesnastkowy i jak przechodzić pomiędzy tymi dwoma systemami :)
  • REKLAMA
  • #4 8667454
    shel82
    Poziom 18  
    Dzięki Panowie, dla potomnych dodam od siebie, że chodziło po prostu o konwersję liczby dwójkowej na szesnastkowy i odwrotnie (za długo przy komputerze siedziałem... ;( ), czyli
    DDRB = _BV(7)|_BV(6)|_BV(5)|_BV(4) ==> 420 (1111 0000 - zapisane binarnie),
    a DDRB = 0xF0 ==> 420 (F0 - zapisane szesnastkowo).
    Ten drugi zapis jest po prostu prostszy...
  • #5 8667502
    gaskoin
    Poziom 38  
    liczba 8bit może mieć max wartość 2^8-1 więc nie wiem skąd taka wartość Ci wyszła :P Chyba, że pomyliły Ci się cyferki.

    Najbardziej rozsądnym zapisem jest zapis

    DDRB = (1 << PB4) | (1 << PB5) | (1 << PB6) | (1 << PB7); 
REKLAMA