#define DP PB3
#define CP PB5
#define D 1<<DP
#define L 0b10000
#define C 0b100000
uint8_t data = 0b10111010;
void setup() {
// put your setup code here, to run once:
DDRB=63;
delay(500);
PORTB=1;
delay(500);
for(;PORTB<3;){
PORTB<<=1;
delay(300);
}
PORTB=0b111;
delay(300);
PORTB=0;
delay(1000);
asdf();
delay(1000);
PORTB=0;
}
void asdf() {
// put your main code here, to run repeatedly:
//shiftOut(DP, CP, MSBFIRST, data);
/*for (uint8_t i = 7; i >= 0; i--) {
// Pindahkan bit ke data pin
if (data & (1 << i)) PORTB |= D;
else PORTB ^= D;
// Kirim pulsa clock
PORTB|=C;
_delay_us(1);
PORTB&=~C;
_delay_us(1);
}*/
for (uint8_t i = 8; i > 0; i--) {
PORTB = (PORTB & ~D) | (((data >> (i - 1)) & 1) << DP);
PORTB|=C;
PORTB &= ~C;
}
PORTB|=L;
PORTB&=~L;
}
void loop() {
PORTB^=1;
delay(500);
}