#include <avr/io.h>
#define setBit(value, bit) (value |= (1 << bit))
#define testBit(vale, bit) (value & (1 << bit))
char checkButton(int pino) {
for (uint16_t i = 0; i < 20000; i++) {
if (!(testBit(PINB, pino))) {
return 0;
}
}
return 1;
}
int main(void) {
setBit(DDRB, PB1);
setBit(DDRB, PB2);
setBit(DDRB, PB3);
setBit(DDRB, PB4);
PORTB &= 0xE1;
unsigned char count = 0;
for (;;) {
if (checkButton(PB0)) {
count++;
while (testBit(PINB, PB0)) {}
}
count = count % 0x10;
PORTB = ((PORTB & 0xE1) | (count << 1));
}
}
tiny:PB5
tiny:PB3
tiny:PB4
tiny:GND
tiny:PB0
tiny:PB1
tiny:PB2
tiny:VCC
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
r5:1
r5:2