Codingan Tugas SisMik

 avatar
unknown
csharp
19 days ago
748 B
11
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