În cazul ATmega 324, registrele sunt pe 8 biți. Majoritatea biților un anumit rol, documentat în datasheet, și pot fi folosiți în următoarele scopuri:
UCSRnB
permite, atunci când este setat, primirea de date pe USARTn (unde n este 0 sau 1).O operație pe biți este o operație care afectează unul sau mai mulți biți dintr-un câmp de biți sau din reprezentarea binară a unui număr. Deoarece aceste acțiuni sunt suportate direct de către microcontroller, ele sunt cu mult mai eficiente decât operațiile de împărțire, înmulțire și chiar decât adunare.
Operație | Formă |
---|---|
Scriere bit pe 1 | Byte |= (1 << Bit_index) |
Scriere bit pe 0 | Byte &= ~(1 << Bit_index) |
Toggle bit | Byte ^= (1 << Bit_index) |
Selectare bit | Byte & (1 << Bit_index) |
Shiftarea la dreapta mută fiecare bit al operandului spre dreapta cu un număr de poziții. Operandul din dreapta reprezintă numărul de biți cu care se face shiftarea operandului din stânga. Dacă este nevoie, se adaugă zerouri la stânga numărului pentru a îi menține dimensiunea.
Shiftarea la dreapta poate fi folosită pentru a împărți un număr binar la 2 (sau puteri ale lui 2) într-o singură operație. Exemplu: 1010 >> 1 = 0101
, unde:
Shiftarea la dreapta mută fiecare bit al operandului spre stânga cu un număr de poziții. Operandul din dreapta reprezintă numărul de biți cu care se face shiftarea operandului din stânga. Dacă este nevoie, se adaugă zerouri la dreapta numărului pentru a îi menține dimensiunea.
Shiftarea la stânga poate fi folosită pentru a înmulți un număr cu 2 (sau puteri ale lui 2) într-o singură operație. Exemplu: 0011 << 1 = 0110
, unde:
O mască pe biți reprezintă un câmp de biți folosit pentru a seta / șterge mai mulți biți dintr-un alt câmp de biți într-o singură operație.