#include "stm32f1xx.h"
void configureButton(void);
void configureLED(void);
int readButton(void);
int main(void) {
// Konfigurasi Tombol dan LED
configureButton();
configureLED();
while (1) {
// Baca status tombol dan kontrol LED
if (readButton()) {
GPIOC->BSRR = GPIO_BSRR_BS13;
} else {
GPIOC->BSRR = GPIO_BSRR_BR13;
}
}
}
// Konfigurasi tombol sebagai input pada pin tertentu
void configureButton(void) {
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
GPIOA->CRL &= ~GPIO_CRL_MODE0;
GPIOA->CRL |= GPIO_CRL_CNF0_1;
GPIOA->ODR &= ~GPIO_ODR_ODR0;
}
// Konfigurasi LED sebagai output pada pin tertentu
void configureLED(void) {
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
GPIOC->CRH &= ~GPIO_CRH_MODE13;
GPIOC->CRH |= GPIO_CRH_MODE13_0;
GPIOC->CRH &= ~GPIO_CRH_CNF13;
}
// Fungsi untuk membaca status tombol
int readButton(void) {
return (GPIOA->IDR & GPIO_IDR_IDR0) != 0;
}