int main(void) { /* Check the force bootloader pin*/ rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPBEN); if(gpio_get(GPIOB, GPIO12)) dfu_jump_app_if_valid(); dfu_protect_enable(); rcc_clock_setup_in_hse_8mhz_out_72mhz(); systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8); systick_set_reload(900000); rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN); rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN); gpio_set_mode(GPIOA, GPIO_MODE_INPUT, 0, GPIO8); systick_interrupt_enable(); systick_counter_enable(); gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11); gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2 | GPIO10); dfu_init(&stm32f103_usb_driver); gpio_set(GPIOA, GPIO8); gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8); dfu_main(); }
void time_init() { systick_set_reload(0xffffff); systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB); rollovers = 0; systick_interrupt_enable(); systick_counter_enable(); }
void systick_setup(void) { systick_set_reload(rcc_ahb_frequency / SYSTICK_HZ); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); systick_counter_enable(); systick_interrupt_enable(); }
/* * Initialise the Cortex-M3 SysTick timer */ void timer_init(void) { system_millis = 0; /* * MCU clock (120 MHz) as source * * (120 MHz / 8) = 15 clock pulses * */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); STK_CVR = 0; /* * 1 tick = 1 ms @ 120 MHz * * (15 clock pulses * 1000 ms) = 15000 clock pulses * * Send an interrupt every (N - 1) clock pulses */ systick_set_reload(14999); /* SysTick as interrupt */ systick_interrupt_enable(); systick_counter_enable(); }
void sys_tick_handler(void) { //Soft watchdog if (plc_tick_flag) { if (plc_dbg_mode) { plc_hw_status |= PLC_HW_ERR_DEADLINE; } else { plc_irq_stub(); } } switch (tick_state) { case TICK_STATE_MID: case TICK_STATE_HIGH: default: systick_set_reload(RCC_AHB_FREQ * (uint32_t)frac_div_icalc( &systick_ctrl ) - 1); plc_tick_flag = true; break; case TICK_STATE_LOW: plc_tick_flag = frac_div_run(&systick_ctrl); break; } }
int main(void) { /* Check the force bootloader pin*/ rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPAEN); if(!gpio_get(GPIOA, GPIO0)) dfu_jump_app_if_valid(); dfu_protect_enable(); /* Set up clock*/ rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); systick_set_reload(2100000); systick_interrupt_enable(); systick_counter_enable(); /* Handle LED */ rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPDEN); gpio_clear(GPIOA, GPIO4); gpio_mode_setup(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO4); /* Set up USB*/ rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPAEN); rcc_peripheral_enable_clock(&RCC_AHB2ENR, RCC_AHB2ENR_OTGFSEN); /* Set up USB Pins and alternate function*/ gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO9 | GPIO10 | GPIO11 | GPIO12); gpio_set_af(GPIOA, GPIO_AF10, GPIO9 | GPIO10| GPIO11 | GPIO12); dfu_init(&stm32f107_usb_driver); dfu_main(); }
int main(void) { rcc_clock_setup_in_hse_8mhz_out_72mhz(); gpio_setup(); gpio_clear(GPIOA, GPIO7); /* LED1 on */ gpio_set(GPIOA, GPIO6); /* LED2 off */ temp32 = 0; /* 72MHz / 8 => 9000000 counts per second */ systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8); /* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */ /* SysTick interrupt every N clock pulses: set reload to N-1 */ systick_set_reload(8999); systick_interrupt_enable(); /* Start counting. */ systick_counter_enable(); while (1); /* Halt. */ return 0; }
void systick_setup(void) { uint32_t systick_reload_val; g_ulSysTickCount = 0; /* Disable IRQ globally */ __asm__("cpsid i"); /* Set processor Clock as Source Clock */ systick_set_clocksource(STK_CTRL_CLKSOURCE); /* Get SysTick calibration value to obtain by default 1 tick = 10ms */ systick_reload_val = systick_get_calib(); /* * Calibration seems wrong on LPC43xx(TBC) for default Freq it assume System Clock is 12MHz but it is 12*17=204MHz * Fix the Calibration value bu multiplication by 17 */ systick_reload_val = (systick_reload_val*17); /* To obtain 1ms per tick just divide by 10 the 10ms base tick and set the reload */ systick_reload_val = systick_reload_val/10; systick_set_reload(systick_reload_val); systick_interrupt_enable(); /* Start counting. */ systick_counter_enable(); /* Set SysTick Priority to maximum */ nvic_set_priority(NVIC_SYSTICK_IRQ, 0xFF); /* Enable IRQ globally */ __asm__("cpsie i"); }
void tick_init(void) { uint32_t systick_reload_val; g_ulSysTickCount = 0; /* Disable IRQ globally */ asm volatile ("cpsid i"); /* Set processor Clock as Source Clock */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); systick_set_reload(rcc_ahb_frequency / 1000); systick_interrupt_enable(); /* Start counting. */ systick_counter_enable(); /* Set SysTick Priority to maximum */ nvic_set_priority(NVIC_SYSTICK_IRQ, 255); /* Enable IRQ globally */ asm volatile ("cpsie i"); scs_dwt_cycle_counter_enabled(); }
/* The usleep stuff requires systick*/ void systick_init() { /* 72MHz / 8 => 9000000 counts per second */ systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8); /* 9000000/9 = 1 000 000 overflows per second - every us one interrupt */ systick_set_reload(9); systick_interrupt_enable(); }
void systick_setup(void) { systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8); // 24meg / 8 = 3Mhz // one interrupt per ms.. systick_set_reload(3000); systick_interrupt_enable(); systick_counter_enable(); }
void time_init(void) { system_ms = 0; systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); STK_CVR = 0; systick_set_reload(32000000/1000 -1); systick_counter_enable(); systick_interrupt_enable(); }
void SetupSystick(void) { // Clock rate / 1000 = 168000 for one ms systick_set_reload(168000); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); systick_counter_enable(); systick_interrupt_enable(); }
int platform_init(void) { rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]); /* Enable peripherals */ rcc_peripheral_enable_clock(&RCC_AHB2ENR, RCC_AHB2ENR_OTGFSEN); rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPAEN); rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPBEN); rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPCEN); /* Fix all flaoting pins*/ gpio_mode_setup(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_PULLDOWN, 0x1ff); gpio_mode_setup(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_PULLDOWN, 0xffe2); gpio_mode_setup(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_PULLDOWN, 0xf3ff); /* Set up USB Pins and alternate function*/ gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO9 | GPIO10| GPIO11 | GPIO12); gpio_set_af(GPIOA, GPIO_AF10, GPIO9 | GPIO10| GPIO11 | GPIO12); /* Set TMS/TCK/TDI to high speed*/ GPIOA_OSPEEDR &=~0xfc00; GPIOA_OSPEEDR |= 0xa800; gpio_mode_setup(JTAG_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, TMS_PIN | TCK_PIN | TDI_PIN); gpio_mode_setup(TDO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, TDO_PIN | TRST_PIN); gpio_mode_setup(LED_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LED_UART ); /* Setup heartbeat timer */ systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8); systick_set_reload(168000000/(10*8)); /* Interrupt us at 10 Hz */ SCB_SHPR(11) &= ~((15 << 4) & 0xff); SCB_SHPR(11) |= ((14 << 4) & 0xff); systick_interrupt_enable(); systick_counter_enable(); usbuart_init(); SCB_VTOR = 0x10000; // Relocate interrupt vector table here cdcacm_init(); jtag_scan(NULL); return 0; }
void time_init() { { CriticalSection cs; systick_set_reload(0xffffff); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); rollovers = 0; systick_interrupt_enable(); systick_counter_enable(); } }
/* * systick_setup(void) * * This function sets up the 1khz "system tick" count. The SYSTICK counter is a * standard feature of the Cortex-M series. */ static void systick_setup(void) { /* clock rate / 1000 to get 1mS interrupt rate */ systick_set_reload(168000); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); systick_counter_enable(); /* this done last */ systick_interrupt_enable(); }
static void systick_setup(void) { /* 72 MHz with DIV 8 -> systick clock source of 9MHz */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); /* Systick interrupt period 1ms -> 9MHz / 1kHz = 9000 */ systick_set_reload(9000 - 1); systick_interrupt_enable(); systick_counter_enable(); }
/* Set up timer to fire freq times per second */ static void systick_setup(int freq) { systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); /* clear counter so it starts right away */ STK_CVR = 0; systick_set_reload(32000000 / freq); systick_counter_enable(); systick_interrupt_enable(); }
//# MENU spectrum void spectrum_menu() { lcdClear(); lcdDisplay(); getInputWaitRelease(); // RF initialization from ppack.c: dac_init(false); cpu_clock_set(204); // WARP SPEED! :-) hackrf_clock_init(); rf_path_pin_setup(); /* Configure external clock in */ scu_pinmux(SCU_PINMUX_GP_CLKIN, SCU_CLK_IN | SCU_CONF_FUNCTION1); sgpio_configure_pin_functions(); ON(EN_VDD); ON(EN_1V8); OFF(MIC_AMP_DIS); delayms(500); // doesn't work without cpu_clock_set(204); // WARP SPEED! :-) si5351_init(); portapack_init(); while(1) { switch(getInput()) { case BTN_UP: displayMode=MODE_WATERFALL; break; case BTN_DOWN: displayMode=MODE_SPECTRUM; break; case BTN_LEFT: freq -= 2000000; ssp1_set_mode_max2837(); set_freq(freq); break; case BTN_RIGHT: freq += 2000000; ssp1_set_mode_max2837(); set_freq(freq); break; case BTN_ENTER: //FIXME: unset the callback, reset the clockspeed, tidy up nvic_disable_irq(NVIC_DMA_IRQ); OFF(EN_VDD); OFF(EN_1V8); ON(MIC_AMP_DIS); systick_set_clocksource(0); systick_set_reload(12e6/SYSTICKSPEED/1000); return; } } }
void setup_clock(void) { /* Setup clock source @ 32MHz */ rcc_clock_setup_pll(&rcc_clock_config[1]); /* Setup sysclock to trigger every 1ms */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); systick_set_reload(3999); systick_interrupt_enable(); systick_counter_enable(); }
void clock_setup(void) { rcc_clock_setup_hse_3v3(&rcc_hse_8mhz_3v3[RCC_CLOCK_3V3_168MHZ]); /* set up the SysTick function (1mS interrupts) */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); STK_CVR = 0; systick_set_reload(rcc_ahb_frequency / 1000); systick_counter_enable(); systick_interrupt_enable(); }
/* * Set up timer to fire every x milliseconds * This is a unusual usage of systick, be very careful with the 24bit range * of the systick counter! You can range from 1 to 2796ms with this. */ static void systick_setup(int xms) { /* div8 per ST, stays compatible with M3/M4 parts, well done ST */ systick_set_clocksource(STK_CSR_CLKSOURCE_EXT); /* clear counter so it starts right away */ STK_CVR = 0; systick_set_reload(rcc_ahb_frequency / 8 / 1000 * xms); systick_counter_enable(); systick_interrupt_enable(); }
/* Setup systick */ void systick_init(void) { /* 48MHz / 8 => 6,000,000 counts per second */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); /* 6,000,000/6000 = 1000 overflows per second - every 1ms one interrupt */ /* SysTick interrupt every N clock pulses: set reload to N-1 */ systick_set_reload(47999); systick_interrupt_enable(); systick_counter_enable(); }
static void config_clocks(void) { rcc_clock_setup_in_hse_8mhz_out_24mhz(); /* Set systick timer to strike every 1ms (1kHz), * enable its interrupt and start it. */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); systick_set_reload(rcc_apb2_frequency / 8 / 1000 - 1); systick_interrupt_enable(); systick_counter_enable(); }
/* * clock_setup(void) * * This function sets up both the base board clock rate * and a 1khz "system tick" count. The SYSTICK counter is * a standard feature of the Cortex-M series. */ void clock_setup(void) { /* Base board frequency, set to 168Mhz */ rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]); /* clock rate / 168000 to get 1mS interrupt rate */ systick_set_reload(168000); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); systick_counter_enable(); /* this done last */ systick_interrupt_enable(); }
static bool systick_set_period(uint32_t period, uint32_t ahb, uint8_t clk_source) { if (period >= (STK_RVR_RELOAD/ahb)) { return false; } else { systick_set_clocksource( clk_source ); systick_set_reload( ahb * period - 1 ); return true; } }
static void systick_setup(void) { /* 72MHz / 8 => 9000000 counts per second */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); /* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */ /* SysTick interrupt every N clock pulses: set reload to N-1 */ systick_set_reload(8999); systick_interrupt_enable(); /* Start counting */ systick_counter_enable(); }
void systick_setup(void) { /* 72MHz / 8 => 9000000 counts per second */ systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8); /* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */ systick_set_reload(9000); systick_interrupt_enable(); /* Start counting. */ systick_counter_enable(); }
void timer_init(void) { /* 24MHz => 24000000 counts per second */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); /* 24000000/24000 = 1000 overflows per second - every 1ms one interrupt */ /* SysTick interrupt every N clock pulses: set reload to N-1 */ systick_set_reload(23999); systick_interrupt_enable(); /* Start counting. */ systick_counter_enable(); }
int main(void) { /* Check the force bootloader pin*/ uint16_t pin_b; rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN); rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPBEN); /* Switch PB5 (SWIM_RST_IN) up */ gpio_set(GPIOB, GPIO5); gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO5); gpio_set(GPIOB, GPIO5); pin_b = gpio_get(GPIOB, GPIO6); /* Check state on PB6 ((SWIM_RST) and release PB5*/ pin_b = gpio_get(GPIOB, GPIO6); gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5); if(((GPIOA_CRL & 0x40) == 0x40) && pin_b) dfu_jump_app_if_valid(); dfu_protect(DFU_MODE); rcc_clock_setup_in_hse_8mhz_out_72mhz(); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); systick_set_reload(900000); /* Handle USB disconnect/connect */ /* Just in case: Disconnect USB cable by resetting USB Device * and pulling USB_DP low * Device will reconnect automatically as Pull-Up is hard wired*/ rcc_peripheral_reset(&RCC_APB1RSTR, RCC_APB1ENR_USBEN); rcc_peripheral_clear_reset(&RCC_APB1RSTR, RCC_APB1ENR_USBEN); rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN); rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN); gpio_clear(GPIOA, GPIO12); gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO12); /* Handle LED*/ gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8); systick_interrupt_enable(); systick_counter_enable(); dfu_init(&stm32f103_usb_driver, DFU_MODE); dfu_main(); }