예제 #1
0
static void configure_gpios(spi_dev *dev, bool as_master) {
    const struct spi_pins *pins = dev_to_spi_pins(dev);

    if (!pins) {
        return;
    }

    const stm32_pin_info *nssi  = &PIN_MAP[pins->nss];
    const stm32_pin_info *scki  = &PIN_MAP[pins->sck];
    const stm32_pin_info *misoi = &PIN_MAP[pins->miso];
    const stm32_pin_info *mosii = &PIN_MAP[pins->mosi];

    disable_pwm(nssi);
    disable_pwm(scki);
    disable_pwm(misoi);
    disable_pwm(mosii);

    spi_gpio_cfg(as_master,
                 nssi->gpio_device,
                 nssi->gpio_bit,
                 scki->gpio_device,
                 scki->gpio_bit,
                 misoi->gpio_bit,
                 mosii->gpio_bit);
}
예제 #2
0
static void configure_gpios(can_dev *dev) {
    const can_pins *pins = dev_to_can_pins(dev);
    if (!pins) {
        return;
    }
    const stm32_pin_info *rx = &PIN_MAP[pins->rx];
    const stm32_pin_info *tx = &PIN_MAP[pins->tx];

    ASSERT(rx->gpio_device == tx->gpio_device);

    disable_pwm(rx);
    disable_pwm(tx);

    can_config_gpios(dev, rx->gpio_device, tx->gpio_bit, rx->gpio_bit);
}
예제 #3
0
파일: main.c 프로젝트: laszuba/binary_watch
// IMPORTANT: if interrupts are not enabled, the processor will never wake
// from sleep
void sleep_proc() {
	enable_pcint();
	// Turn off timer0
	disable_pwm();
	disp_off();

	// probably want power save mode
	// everything off but Timer2 interrupts
	set_sleep_mode(SLEEP_MODE_PWR_SAVE);

	sleep_mode(); 
	// Continue here on wake

	disable_pcint();
	return;
}