#include "project.h" #define WIGGLE GPIO4 #define WIGGLE_PORT GPIOB int main (void) { unsigned cnt=0; //nvic_set_priority_grouping(NVIC_PriorityGroup_4); /*set up pll */ rcc_clock_setup_in_hse_8mhz_out_72mhz (); /*turn on clocks which aren't done elsewhere */ rcc_periph_clock_enable (RCC_GPIOA); rcc_periph_clock_enable (RCC_GPIOB); rcc_periph_clock_enable (RCC_GPIOC); rcc_periph_clock_enable (RCC_AFIO); /*Adjust interrupt priorities so that taco trumps uarts trumps timer trumps dma */ nvic_set_priority (TACHO_IRQ,0x20); nvic_set_priority (NVIC_USART1_IRQ, 0x40); nvic_set_priority (NVIC_SYSTICK_IRQ, 0x60); nvic_set_priority (NVIC_DMA1_CHANNEL6_IRQ, 0x80); /* Claw some pins pack*/ gpio_primary_remap (AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_ON, 0); dwt_enable_cycle_counter(); ticker_init (); led_init (); usart_init (); i2cp_init (); printf ("Hello world\n"); led_set (); oled_init (); tacho_init(); font8x8_put_str ("ABC fish soup!", 0, 0); MAP_OUTPUT_PP(WIGGLE); for (;;) { char buf[20]; sprintf(buf,"%6u rpm",(unsigned) raw_tacho); font8x16_put_str (buf, 30, 8); sprintf(buf,"%8d",cnt++); font8x8_put_str (buf, 0, 24); if (cnt&1) SET(WIGGLE); else CLEAR(WIGGLE); } return 0; }