Untitled
unknown
plain_text
9 months ago
748 B
5
Indexable
#include <avr/io.h>
#include <util/delay.h>
#define BUTTON PD7 // Saklar terhubung ke PD7
void delay_ms(uint16_t ms) {
while (ms--) {
_delay_ms(100);
}
}
int main(void) {
// Atur semua pin LED (PB0 - PB7) sebagai output
DDRB = 0xFF;
// Atur PD7 sebagai input (saklar)
DDRD &= ~(1 << BUTTON);
// Aktifkan pull-up internal pada PD7
PORTD |= (1 << BUTTON);
while (1) {
if (PIND & (1 << BUTTON)) {
// Jika saklar TIDAK ditekan -> LED menyala dari 0 ke 7
for (uint8_t i = 0; i < 8; i++) {
PORTB = (1 << i);
delay_ms(15);
}
} else {
// Jika saklar ditekan -> LED menyala dari 7 ke 0
for (int8_t i = 7; i >= 0; i--) {
PORTB = (1 << i);
delay_ms(15);
}
}
}
}
Editor is loading...
Leave a Comment