void Display_Init(void) { mraa_gpio_write(SCS, 1); //Select SHARP Display mraa_spi_write(spi, MLCD_CM); //Clear SHARP Display mraa_spi_write(spi, MLCD_TR); //Send Trailer mraa_gpio_write(SCS, 0); //Deselect SHARP Display }
static uint8_t spi_readwrite(const uint8_t aci_byte) { uint8_t reversed, ret; reversed = mraa_spi_write (a_pins_local_ptr->m_spi, REVERSE_BITS (aci_byte)); ret = REVERSE_BITS (reversed); return ret; }
boolean Adafruit_STMPE610::begin() { // hardware SPI InitTransaction(); // SPI = mraa_spi_init(0); // which buss? will experment here... SPI = mraa_spi_init_software_cs(0); // which buss? will experment here... mraa_spi_frequency(SPI, 1000000); mraa_spi_lsbmode(SPI, false); mraa_spi_mode(SPI, MRAA_SPI_MODE0); m_spiMode = MRAA_SPI_MODE0; _gpioCS = mraa_gpio_init(_cs); mraa_gpio_dir(_gpioCS, MRAA_GPIO_OUT); CSHigh(); mraa_spi_write(SPI, 0x00); // try mode0 if (getVersion() != 0x811) { //Serial.println("try MODE1"); mraa_spi_frequency(SPI, 1000000); mraa_spi_lsbmode(SPI, false); mraa_spi_mode(SPI, MRAA_SPI_MODE1); m_spiMode = MRAA_SPI_MODE1; if (getVersion() != 0x811) { return false; } } writeRegister8(STMPE_SYS_CTRL1, STMPE_SYS_CTRL1_RESET); delay(10); for (uint8_t i=0; i<65; i++) { readRegister8(i); } writeRegister8(STMPE_SYS_CTRL2, 0x0); // turn on clocks! writeRegister8(STMPE_TSC_CTRL, STMPE_TSC_CTRL_XYZ | STMPE_TSC_CTRL_EN); // XYZ and enable! //Serial.println(readRegister8(STMPE_TSC_CTRL), HEX); writeRegister8(STMPE_INT_EN, STMPE_INT_EN_TOUCHDET); writeRegister8(STMPE_ADC_CTRL1, STMPE_ADC_CTRL1_10BIT | (0x6 << 4)); // 96 clocks per conversion writeRegister8(STMPE_ADC_CTRL2, STMPE_ADC_CTRL2_6_5MHZ); writeRegister8(STMPE_TSC_CFG, STMPE_TSC_CFG_4SAMPLE | STMPE_TSC_CFG_DELAY_1MS | STMPE_TSC_CFG_SETTLE_5MS); writeRegister8(STMPE_TSC_FRACTION_Z, 0x6); writeRegister8(STMPE_FIFO_TH, 1); writeRegister8(STMPE_FIFO_STA, STMPE_FIFO_STA_RESET); writeRegister8(STMPE_FIFO_STA, 0); // unreset writeRegister8(STMPE_TSC_I_DRIVE, STMPE_TSC_I_DRIVE_50MA); writeRegister8(STMPE_INT_STA, 0xFF); // reset all ints writeRegister8(STMPE_INT_CTRL, STMPE_INT_CTRL_POL_HIGH | STMPE_INT_CTRL_ENABLE); return true; }
void HAL_LCD_writeCommandOrData(uint16_t command) { //mraa_spi_write(spi, MLCD_WR); //Send Write Command mraa_spi_write(spi, command); //mraa_spi_write(spi, MLCD_TR); //Send Trailer }
/** * Write single byte to the SPI device * * @param data the byte to send * @return data received on the miso line or -1 in case of error */ int writeByte(uint8_t data) { return mraa_spi_write(m_spi, (uint8_t) data); }
void Display_Image(char image[]) { static unsigned char line_no; static unsigned int pixel; mraa_gpio_write(SCS, 1); //Select SHARP Display mraa_spi_write(spi, MLCD_WR); //Send Write Command if(strcmp(image, "Uni_Freiburg") == 0) { for(line_no = 1; line_no <= MLCD_YRES; line_no++) { mraa_spi_write(spi, reverse_byte(line_no)); //Send Line Number for(pixel = ((line_no - 1) * MLCD_BYTES); pixel < (line_no * MLCD_BYTES); pixel++) { mraa_spi_write(spi, BMP_Uni_Freiburg[pixel]); //Send Data } mraa_spi_write(spi, MLCD_TR); //Send Trailer } } else if(strcmp(image, "Intel_Atom") == 0) { for(line_no = 1; line_no <= MLCD_YRES; line_no++) { mraa_spi_write(spi, reverse_byte(line_no)); //Send Line Number for(pixel = ((line_no - 1) * MLCD_BYTES); pixel < (line_no * MLCD_BYTES); pixel++) { mraa_spi_write(spi, BMP_Intel_Atom[pixel]); //Send Data } mraa_spi_write(spi, MLCD_TR); //Send Trailer } } else if(strcmp(image, "Nikola_Tesla") == 0) { for(line_no = 1; line_no <= MLCD_YRES; line_no++) { mraa_spi_write(spi, reverse_byte(line_no)); //Send Line Number for(pixel = ((line_no - 1) * MLCD_BYTES); pixel < (line_no * MLCD_BYTES); pixel++) { mraa_spi_write(spi, BMP_Nikola_Tesla[pixel]); //Send Data } mraa_spi_write(spi, MLCD_TR); //Send Trailer } } else if(strcmp(image, "Albert_Einstein") == 0) { for(line_no = 1; line_no <= MLCD_YRES; line_no++) { mraa_spi_write(spi, reverse_byte(line_no)); //Send Line Number for(pixel = ((line_no - 1) * MLCD_BYTES); pixel < (line_no * MLCD_BYTES); pixel++) { mraa_spi_write(spi, BMP_Albert_Einstein[pixel]); //Send Data } mraa_spi_write(spi, MLCD_TR); //Send Trailer } } else if(strcmp(image, "White_Tiger") == 0) { for(line_no = 1; line_no <= MLCD_YRES; line_no++) { mraa_spi_write(spi, reverse_byte(line_no)); //Send Line Number for(pixel = ((line_no - 1) * MLCD_BYTES); pixel < (line_no * MLCD_BYTES); pixel++) { mraa_spi_write(spi, BMP_White_Tiger[pixel]); //Send Data } mraa_spi_write(spi, MLCD_TR); //Send Trailer } } else if(strcmp(image, "Wall_E") == 0) { for(line_no = 1; line_no <= MLCD_YRES; line_no++) { mraa_spi_write(spi, reverse_byte(line_no)); //Send Line Number for(pixel = ((line_no - 1) * MLCD_BYTES); pixel < (line_no * MLCD_BYTES); pixel++) { mraa_spi_write(spi, BMP_Wall_E[pixel]); //Send Data } mraa_spi_write(spi, MLCD_TR); //Send Trailer } } mraa_spi_write(spi, MLCD_TR); //Send last Trailer mraa_gpio_write(SCS, 0); //Deselect SHARP Display }
void Adafruit_STMPE610::spiOut(uint8_t x) { // mraa_spi_frequency(SPI, 1000000); // mraa_spi_mode(SPI, m_spiMode); mraa_spi_write(SPI, x); }
uint8_t Adafruit_STMPE610::spiIn() { // Should be handled by the spi_begin calls // mraa_spi_frequency(SPI, 1000000); // mraa_spi_mode(SPI, m_spiMode); return mraa_spi_write(SPI, 0x00); }