#include<stdint.h>
#define RCC_IOPENR ((volatile uint32_t *)0x40021034)
#define GPIOA_MODER ((volatile uint32_t *)0x50000000)
#define GPIOA_ODR ((volatile uint32_t *)0x50000014)
int main(void) {
// A. ŞALTERİ AÇ: Port A birimine elektrik gönderiyoruz (0. biti 1 yaparak)
*RCC_IOPENR |= (1U << 0);
// B. YÖNÜ AYARLA: PA5 pinini "Çıkış" (Output) moduna alıyoruz.
// PA5 için MODER register'ında 10. biti 1 yapmamız gerekiyor.
*GPIOA_MODER |= (1U << 10);
// C. SONSUZ DÖNGÜ: İşlemci burada sürekli dönecek
while (1) {
// LED'i TERSLE (Açıksa kapat, kapalıysa aç)
// 5. bit PA5'i temsil eder.
*GPIOA_ODR ^= (1U << 5);
// BEKLEME: İşlemci çok hızlıdır. Gözümüzün görebilmesi için boş bir döngüyle onu oyalıyoruz.
for (volatile int i = 0; i < 200000; i++);
}
}