void setup() {
// 1. Pins PA0 bis PA7 als Ausgänge konfigurieren
GPIOA->MODER &= ~(0xFFFF); // Alle MODER-Bits für PA0-PA7 löschen
GPIOA->MODER |= 0x5555; // PA0 bis PA7 als Ausgänge setzen (01 für jedes Pin-Paar)
// 2. Pins PB0 bis PB7 als Eingänge konfigurieren
GPIOB->MODER &= ~(0xFFFF); // Alle MODER-Bits für PB0-PB7 löschen
GPIOA->MODER |= 0x0000; // PB0 bis PB7 als Eingänge setzen (00 für jedes Pin-Paar)
// 3. Pull-Down für DIP-Switch konfigurieren
GPIOB->PUPDR &= ~(0xFFFF); // PUPDR Bits für PB0-PB7 löschen
GPIOB->PUPDR |= 0xAAAA; // Pull-Down für PB0 bis PB7 (10 für jedes Pin-Paar)
}
int dipSwitchState;
void loop() {
// 4. Zustände des DIP-Switches abfragen
dipSwitchState = GPIOB->IDR & 0xFF; // Lesen der unteren 8 Bits von PB0-PB7
// 5. LEDs entsprechend dem DIP-Switch-Zustand steuern
GPIOA->ODR = (GPIOA->ODR & ~0xFF) | dipSwitchState; // Setzen der LEDs entsprechend dem DIP-Switch
// Alternativ mit einem Befehl
// GPIOA->ODR = GPIOA->IDR; // Direktes Setzen der LEDs entsprechend dem DIP-Switch
}