#include "stm32l031xx.h"
void delay_ms(uint32_t ms) {
for (volatile uint32_t i = 0; i < ms * 1000; i++);
}
int main(void) {
// 1. הפעלת שעון ל־GPIOB
RCC->IOPENR |= RCC_IOPENR_GPIOBEN;
// 2. הגדרת PB7, PB6, PB1 כ־Output
GPIOB->MODER &= ~(
(0b11 << (7 * 2)) | // ניקוי PB7
(0b11 << (6 * 2)) | // ניקוי PB6
(0b11 << (1 * 2)) // ניקוי PB1
);
GPIOB->MODER |= (
(0b01 << (7 * 2)) | // הגדרת PB7 כ־Output
(0b01 << (6 * 2)) | // "
(0b01 << (1 * 2)) // "
);
// 3. מערך של הביטים של הלדים לפי הסדר
const uint8_t led_bits[] = {7, 6, 1};
while (1) {
for (int i = 0; i < 3; i++) {
// כיבוי כל הלדים
GPIOB->ODR &= ~((1 << 7) | (1 << 6) | (1 << 1));
// הדלקת הלד הנוכחי
GPIOB->ODR |= (1 << led_bits[i]);
delay_ms(1000);
}
}
}