#include "stm32c0xx.h"
void delay_ms(uint32_t ms) {
for(uint32_t i = 0; i < ms * 1600; i++) {
__NOP();
}
}
int main(void) {
// Enable GPIOA clock
RCC->IOPENR |= RCC_IOPENR_GPIOAEN;
// Set PA5 and PA6 as outputs
GPIOA->MODER &= ~(GPIO_MODER_MODE5_Msk | GPIO_MODER_MODE6_Msk); // Clear
GPIOA->MODER |= (1 << GPIO_MODER_MODE5_Pos) | (1 << GPIO_MODER_MODE6_Pos); // Output mode
while (1) {
// Turn ON Positive logic LED (PA5 HIGH)
GPIOA->ODR |= (1 << 5);
// Turn OFF Negative logic LED (PA6 HIGH = OFF)
GPIOA->ODR |= (1 << 6);
delay_ms(500);
// Turn OFF Positive logic LED (PA5 LOW)
GPIOA->ODR &= ~(1 << 5);
// Turn ON Negative logic LED (PA6 LOW = ON)
GPIOA->ODR &= ~(1 << 6);
delay_ms(500);
}
}