/*---------------------------------------------------------------------------*/ void gpio_relay_init(void) { if(inited_relay) { return; } inited_relay = 1; ti_lib_ioc_pin_type_gpio_output(SENSOR_POWER); ti_lib_ioc_pin_type_gpio_output(ADC_CT_SELECT); ti_lib_gpio_pin_write(RELAY_ALL, 0); }
/*---------------------------------------------------------------------------*/ void leds_arch_init(void) { if(inited) { return; } inited = 1; ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_LED_1); ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_LED_2); ti_lib_gpio_pin_write(BOARD_LED_ALL, 0); }
/*---------------------------------------------------------------------------*/ void leds_arch_init(void) { if(inited) { return; } inited = 1; ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_LED_1); ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_LED_2); ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_LED_3); ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_LED_4); ti_lib_gpio_clear_multi_dio(BOARD_LED_ALL); }
void ADS7846_wr_spi(uint_least8_t data) { #if defined(SOFTWARE_SPI) ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_SPI_MOSI); for (uint_least8_t mask = 0x80; mask != 0; mask >>= 1) { SCK_LOW(); if (mask & data) { MOSI_HIGH(); } else { MOSI_LOW(); } ADS7846_delay_ms(1); SCK_HIGH(); ADS7846_delay_ms(1); } SCK_LOW(); ADS7846_delay_ms(1); SCK_HIGH(); ADS7846_delay_ms(1); SCK_LOW(); #else SPI.transfer(data); #endif return; }
/*---------------------------------------------------------------------------*/ static void configure_unused_pins(void) { /* Turn off 3.3-V domain (lcd/sdcard power, output low) */ ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_3V3_EN); ti_lib_gpio_pin_write(BOARD_3V3_EN, 0); /* Accelerometer (PWR output low, CSn output, high) */ ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_ACC_PWR); ti_lib_gpio_pin_write(BOARD_ACC_PWR, 0); /* Ambient light sensor (off, output low) */ ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_ALS_PWR); ti_lib_gpio_pin_write(BOARD_ALS_PWR, 0); ti_lib_ioc_pin_type_gpio_input(BOARD_IOID_ALS_OUT); ti_lib_ioc_io_port_pull_set(BOARD_IOID_ALS_OUT, IOC_NO_IOPULL); }
/*---------------------------------------------------------------------------*/ bool usb_open() { board_spi_open(6000000, BOARD_IOID_SPI_CLK); /* GPIO pin configuration */ ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_SPI_USB_CS); /* Default output to clear chip select */ deselect(); return true; }
void ADS7846_begin(void) { ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_TOUCH_CS); ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_SPI_MOSI); ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_SPI_SCK); ti_lib_ioc_pin_type_gpio_input(BOARD_IOID_SPI_MISO); CS_DISABLE(); #ifdef IRQ_PIN pinMode(IRQ_PIN, INPUT); digitalWrite(IRQ_PIN, HIGH); //pull-up #endif #ifdef BUSY_PIN pinMode(BUSY_PIN, INPUT); digitalWrite(BUSY_PIN, HIGH); //pull-up #endif #if !defined(SOFTWARE_SPI) SPI.setDataMode(SPI_MODE0); SPI.begin(); #endif //set vars tp_matrix.div = 0; tp_x = 0; tp_y = 0; tp_last_x = 0; tp_last_y = 0; lcd_x = 0; lcd_y = 0; pressure = 0; ADS7846_setOrientation(0); return; }
/*---------------------------------------------------------------------------*/ static void configure(void) { uint32_t ctl_val = UART_CTL_UARTEN | UART_CTL_TXE; /* * Make sure the TX pin is output / high before assigning it to UART control * to avoid falling edge glitches */ ti_lib_ioc_pin_type_gpio_output(BOARD_IOID_UART_TX); ti_lib_gpio_pin_write(BOARD_UART_TX, 1); /* * Map UART signals to the correct GPIO pins and configure them as * hardware controlled. */ ti_lib_ioc_pin_type_uart(UART0_BASE, BOARD_IOID_UART_RX, BOARD_IOID_UART_TX, BOARD_IOID_UART_CTS, BOARD_IOID_UART_RTS); /* Configure the UART for 115,200, 8-N-1 operation. */ ti_lib_uart_config_set_exp_clk(UART0_BASE, ti_lib_sys_ctrl_clock_get(), CC26XX_UART_CONF_BAUD_RATE, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); /* * Generate an RX interrupt at FIFO 1/2 full. * We don't really care about the TX interrupt */ ti_lib_uart_fifo_level_set(UART0_BASE, UART_FIFO_TX7_8, UART_FIFO_RX4_8); /* Enable FIFOs */ HWREG(UART0_BASE + UART_O_LCRH) |= UART_LCRH_FEN; if(input_handler) { ctl_val += UART_CTL_RXE; } /* Enable TX, RX (conditionally), and the UART. */ HWREG(UART0_BASE + UART_O_CTL) = ctl_val; }