Parametern _ucWGM120 är från en enum och satt till värdet 4 i detta fall.
Vad gör modulus-operatorn i praktiken här? Jag kan definitionen för modulus men de använder den här av en anledning och jag är blind idag.
Kan säga att koden är avsedd för en IAR men jag ska porta den till gcc (Atmel studio).
TCCR1B_WGM13 är ett macro kan man säga. WGM13 är en bit i TCCR1B....
Jo.
division med 2-potens == bitvis höger skift
modolus 2-potens == maskning av bitar
Modulus 8, innebär att man tar ut de 3 lägsta bitarna - på ett inneffektict sätt.
Vad koden gör är att den plockar ut enskilda bitar från ingångsparametern
TCCR1A_WGM10 <= bit 0 av _ucWGM120
TCCR1A_WGM11 <= bit 1 av _ucWGM120
TCCR1B_WGM12 <= bit 2 av _ucWGM120
TCCR1B_WGM13 <= bit 3-7 av _ucWGM120