#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(); tacho_init(); delay_ms (100); oled1_init(); oled2_init(); gauge_init(); font8x8_put_str (vram_1, "ABC fish soup!", 0, 0); MAP_OUTPUT_PP (WIGGLE); for (;;) { char buf[20]; sprintf (buf, "%6u rpm", (unsigned) raw_tacho); font8x16_put_str (vram_1, buf, 30, 8); sprintf (buf, "%8d", cnt++); font8x8_put_str (vram_1, buf, 0, 24); sprintf (buf, "%6d", cnt >> 4); font21x32_put_str (vram_2, buf, 0); if (cnt & 1) SET (WIGGLE); else CLEAR (WIGGLE); gauge_test(); } return 0; }