#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB = 0xFF; // PORTB-এর সব পিনকে আউটপুট হিসেবে কনফিগার করা হয়েছে (LED গুলো এখানে সংযুক্ত)
DDRD &= ~(1 << PD2); // PD2 পিনকে ইনপুট হিসেবে কনফিগার করা হয়েছে (প্রথম বোতামের জন্য)
DDRD &= ~(1 << PD3); // PD3 পিনকে ইনপুট হিসেবে কনফিগার করা হয়েছে (দ্বিতীয় বোতামের জন্য)
PORTD |= (1 << PD2); // প্রথম বোতামের জন্য পুল-আপ রেজিস্টর সক্রিয় করা হয়েছে
PORTD |= (1 << PD3); // দ্বিতীয় বোতামের জন্য পুল-আপ রেজিস্টর সক্রিয় করা হয়েছে
while (1) {
// প্রথম বোতামটি চাপা হয়েছে কিনা চেক করা
if (!(PIND & (1 << PD2))) {
PORTB |= (1 << PB0); // প্রথম বোতাম চাপলে PB0 পিনে হাই সিগন্যাল দেওয়া হবে, ফলে প্রথম LED অন হবে
} else {
PORTB &= ~(1 << PB0); // প্রথম বোতাম ছেড়ে দিলে PB0 পিনে লো সিগন্যাল দেয়া হবে, ফলে প্রথম LED অফ হবে
}
// দ্বিতীয় বোতামটি চাপা হয়েছে কিনা চেক করা
if (!(PIND & (1 << PD3))) {
PORTB |= (1 << PB1); // দ্বিতীয় বোতাম চাপলে PB1 পিনে হাই সিগন্যাল দেওয়া হবে, ফলে দ্বিতীয় LED অন হবে
} else {
PORTB &= ~(1 << PB1); // দ্বিতীয় বোতাম ছেড়ে দিলে PB1 পিনে লো সিগন্যাল দেয়া হবে, ফলে দ্বিতীয় LED অফ হবে
}
}
}