Mam takie pytanie.. w programie w jednej zmiennej 1 bajtowej dostaję jakie wyjścia ( od 1 do 8 ) mają się włączać ( jeśli dany bit=1) wyłączać ( jeśli bit =0 ). Analizuję każdy bit po koleji - przesuwając zmienną w prawo ale mam teraz problem - chodzi o optymalizację kodu.
W definicjach mam na ten moment coś takiego
#define zapal_wy1 sbi(PORTC,PC1)
#define zgas_wy1 cbi (PORTC,PC1)
Ale to jest bez sensu
- bo przy każdym bicie steruję innym wyjściem, musiałbym mieć 16 definicji.Stąd pytanie czy nie mogę w "#define zapal" podać atrybutu tak żeby jeśli użyję np. "zapal=1;" to procesor wykona sbi(PORTC,PC1)
jak zapal 6 to np sbi(PORTB,PB6);
Mogę to zrobić łopatologicznie ale wiem że lepiej to jakoś inaczej załatwić..
Pytanie jak?
Oprócz odpowiedzi na powyższe byłbym wdzięczny za jakiś namiar gdzie mogę poczytać o operowaniu na #define. Muszę sobie trochę odświeżyć temat.
W definicjach mam na ten moment coś takiego
#define zapal_wy1 sbi(PORTC,PC1)
#define zgas_wy1 cbi (PORTC,PC1)
Ale to jest bez sensu
jak zapal 6 to np sbi(PORTB,PB6);
Mogę to zrobić łopatologicznie ale wiem że lepiej to jakoś inaczej załatwić..
Pytanie jak?
Oprócz odpowiedzi na powyższe byłbym wdzięczny za jakiś namiar gdzie mogę poczytać o operowaniu na #define. Muszę sobie trochę odświeżyć temat.
