42 lines
989 B
C++
42 lines
989 B
C++
#include "SHAL.h"
|
|
|
|
int main() {
|
|
|
|
SHAL_init();
|
|
|
|
/*
|
|
PIN(A11).setPinMode(PinMode::ALTERNATE_FUNCTION_MODE);
|
|
PIN(A11).setAlternateFunction(GPIO_Alternate_Function::AF2);
|
|
SHAL_TIM1.configurePWM(SHAL_Timer_Channel::CH4, 1000, 8000, 4000);
|
|
SHAL_TIM1.start();
|
|
*/
|
|
|
|
PIN(A11).setPinMode(PinMode::OUTPUT_MODE);
|
|
|
|
//PIN(B4).setPinMode(PinMode::OUTPUT_MODE);
|
|
//PIN(B4).setHigh();
|
|
|
|
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
|
|
|
|
/* Small delay to ensure clock is stable (optional but safe) */
|
|
for (volatile int i = 0; i < 1000; i++);
|
|
|
|
/* 2. Set PB4 as general purpose output */
|
|
// MODER: 2 bits per pin → pin 4 → bits [9:8]
|
|
GPIOB->MODER &= ~(3U << (4 * 2)); // Clear mode bits
|
|
GPIOB->MODER |= (1U << (4 * 2)); // Set as output (01)
|
|
|
|
/* 3. Set PB4 HIGH */
|
|
GPIOB->BSRR = (1U << 4); // Atomic set
|
|
|
|
PIN(A11).setHigh();
|
|
|
|
while (true) {
|
|
|
|
|
|
PIN(A11).toggle();
|
|
SHAL_delay_us(10);
|
|
PIN(A11).toggle();
|
|
|
|
}
|
|
} |