Beispiel #1
0
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
}
Beispiel #2
0
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;
}
Beispiel #4
0
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
}
Beispiel #5
0
 /**
  * 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);
 }
Beispiel #6
0
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);
}