void debug_init () { // configure LED pin as output hw_cfg_pin(LED_PORT, LED_PIN, GPIOCFG_MODE_OUT | GPIOCFG_OSPEED_40MHz | GPIOCFG_OTYPE_PUPD | GPIOCFG_PUPD_PUP); debug_led(0); // configure USART1 (115200/8N1, tx-only) RCC->APB2ENR |= RCC_APB2ENR_USART1EN; hw_cfg_pin(USART_TX_PORT, USART_TX_PIN, GPIOCFG_MODE_ALT|GPIOCFG_OSPEED_40MHz|GPIOCFG_OTYPE_PUPD|GPIOCFG_PUPD_PUP|GPIO_AF_USART1); USART1->BRR = 277; // 115200 USART1->CR1 = USART_CR1_UE | USART_CR1_TE; // usart+transmitter enable // print banner debug_str("\r\n============== DEBUG STARTED ==============\r\n"); }
// use DIP1 as sensor value void initsensor (osjobcb_t callback) { // configure input RCC->AHBENR |= RCC_AHBENR_GPIOBEN; // clock enable port B hw_cfg_pin(GPIOx(INP_PORT), INP_PIN, GPIOCFG_MODE_INP | GPIOCFG_OSPEED_40MHz | GPIOCFG_OTYPE_OPEN); hw_cfg_extirq(INP_PORT, INP_PIN, GPIO_IRQ_CHANGE); // save application callback irqjob.func = callback; }
// use PB12 (DIP switch 1) as sensor value void initsensor () { RCC->AHBENR |= RCC_AHBENR_GPIOBEN; // clock enable port B hw_cfg_pin(GPIOB, 12, GPIOCFG_MODE_INP | GPIOCFG_OSPEED_40MHz | GPIOCFG_OTYPE_OPEN); // PB12 }