Witam
Dopiero zaczynam pisać w C pod AVR więc proszę o wyrozumiałość.
Potrzebuje zmienić 3 bity w PORTB jednocześnie.
Maska 0b00011100 czyli bity 2-4 chcę ustalać jednocześnie ale nie gasic i zapalac oddzielnie.
Najlepiej jak by odrazu dało sie użyć licznika z zakresem 0-7 czyli 3 bity do sterowania.
int ROW;
for(ROW=0;ROW<8;ROW++)
{
//musze ustawić lub zgasić bity (2-4) w zależności od ROW nie ruszając innych bitów
// ROW =0 - 0b00000000
// ROW =1 - 0b00000100
// ROW =2 - 0b00001000
// ROW =3 - 0b00001100
// ROW =4 - 0b00010000
// ROW =5 - 0b00010100
// ROW =6 - 0b00011000
// ROW =7 - 0b00011100
PORTB ?= ????
kombinowałem z case ROW : PORTB &= (0b00011100) & (0b000BBB00); B-ustawione odpowiednie bity ale coś nie wychodzi
}
Dopiero zaczynam pisać w C pod AVR więc proszę o wyrozumiałość.
Potrzebuje zmienić 3 bity w PORTB jednocześnie.
Maska 0b00011100 czyli bity 2-4 chcę ustalać jednocześnie ale nie gasic i zapalac oddzielnie.
Najlepiej jak by odrazu dało sie użyć licznika z zakresem 0-7 czyli 3 bity do sterowania.
int ROW;
for(ROW=0;ROW<8;ROW++)
{
//musze ustawić lub zgasić bity (2-4) w zależności od ROW nie ruszając innych bitów
// ROW =0 - 0b00000000
// ROW =1 - 0b00000100
// ROW =2 - 0b00001000
// ROW =3 - 0b00001100
// ROW =4 - 0b00010000
// ROW =5 - 0b00010100
// ROW =6 - 0b00011000
// ROW =7 - 0b00011100
PORTB ?= ????
kombinowałem z case ROW : PORTB &= (0b00011100) & (0b000BBB00); B-ustawione odpowiednie bity ale coś nie wychodzi
}