//输入捕获配置 void capture_config(void) { TIM_ICInitTypeDef TIM_ICInitStructure; gpio_af_pp_up_init(GPIOC, GPIO_Pin_8|GPIO_Pin_9);//CH3|CH4 GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_TIM3); GPIO_PinAFConfig(GPIOC, GPIO_PinSource9, GPIO_AF_TIM3); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 10; TIM_ICInitStructure.TIM_Channel = TIM_Channel_3; TIM_ICInit(TIM3, &TIM_ICInitStructure); TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; TIM_ICInit(TIM3, &TIM_ICInitStructure); TIM_Cmd(TIM3, ENABLE); TIM_ITConfig(TIM3, TIM_IT_CC3, ENABLE); TIM_ITConfig(TIM3, TIM_IT_CC4, ENABLE); nvic_config(TIM3_IRQn, 0); TIM7_init(500, 8400); }
void HINT_init () { BTN_init(); BTQ_init(); P24_init(); DISP_init(); LED_init(); TIM7_init(); ROT_init(); reset(); }
int main() { rcc_clock_enable(); delay_config(); usart_config(UART4, 115200); print_clock_freq(); //encoder_init(); STM_EVAL_LEDInit(LED4); TIM7_init(10000, 8400); while(1){ STM_EVAL_LEDToggle(LED4); delay_ms(1000); } }
int main(void) { BootLoaderStart(); firstInit(); set_defaults_all(&Preset, &Calibration); if (!start_load_all(&Preset, &Calibration)) set_errIO(ERRIO_LOADALL); interface_init(Current_state.preset_name); calibration_init(Current_state.calibration_name); noteOffStoreInit(); TIM4_init();//keyboard timer TIM6_init();//delay for temp messages TIM7_init(); //delay for MSC //Main loop while (1) { //Check note array to calculate velocity checkNoteArray(&Preset); checkSliders_events(Preset.sliders, Preset.AnalogMidiEnable); checkButtons_events(Preset.buttons, Preset.AnalogMidiEnable); receiveMidiData(); sendMidiData(); } }