Stap 4: Instelling registreren bits
De registers hebben enkele namen die zijn opgegeven in het gegevensblad afhankelijk van hun betekenis, zoals ADCSRA voor de ADC instelling registreren A. Elke zinvolle bit van de registers heeft ook een naam, zoals ADEN voor de ADC inschakelen bits in het register van de ADCSRA.
Om in te stellen van hun bits kunnen we de gebruikelijke C-syntaxis gebruiken voor binaire algebra, maar ik vond op internet een paar van macro's die zijn erg mooi en schoon:
Definieert voor het instellen en wissen van register bits
#ifndef cbi
#define cbi (sfr, bit) (_SFR_BYTE(sfr) & ~_BV(bit)) =
#endif
#ifndef sbi
#define sbi (sfr, bit) (_SFR_BYTE(sfr) | = _BV(bit))
#endif
Gebruik ervan is zeer eenvoudig, als we willen ingesteld op 1 het inschakelen bits van de ADC kunnen we gewoon schrijven:
SBI(ADCSRA,ADEN);
Terwijl als we willen het ingesteld op 0 (id est duidelijk) kunnen we gewoon schrijven:
CBI(ADCSRA,ADEN);