Esempio n. 1
0
int SPI_setClockMode(int spidev_fd, uint8_t clock_mode) {
  uint8_t mode;
  mode = SPI_getMode(spidev_fd);
  if (mode < 0) return mode;
  mode &= ~0x3;
  mode |= clock_mode & 0x3;
  return SPI_setMode(spidev_fd, mode);
}
Esempio n. 2
0
int SPI_disable3Wire(int spidev_fd) {
  int mode = SPI_getMode(spidev_fd);
  if (mode < 0) return -1;
  return SPI_setMode(spidev_fd, mode & ~SPI_3WIRE);
}
Esempio n. 3
0
int SPI_disableLoopback(int spidev_fd) {
  int mode = SPI_getMode(spidev_fd);
  if (mode < 0) return -1;
  return SPI_setMode(spidev_fd, mode & ~SPI_LOOP);
}
Esempio n. 4
0
int SPI_disableCS(int spidev_fd) {
  int mode = SPI_getMode(spidev_fd);
  if (mode < 0) return -1;
  return SPI_setMode(spidev_fd, mode | SPI_NO_CS);
}
Esempio n. 5
0
int SPI_setCSActiveHigh(int spidev_fd) {
  int mode = SPI_getMode(spidev_fd);
  if (mode < 0) return -1;
  return SPI_setMode(spidev_fd, mode | SPI_CS_HIGH);
}
Esempio n. 6
0
void ST7735_init(u8 module, u8 cs, u8 dc, u8 sda, u8 sck)
{
    ST7735_SPI = module;
    
    ST7735[module].pin.dc = dc;
    ST7735[module].pin.cs = cs;
    output(ST7735[module].pin.dc);
    output(ST7735[module].pin.cs);
    
    // init SPI communication

    if (module == SPISW)
    {
        SPI_setPin(ST7735_SPI, sda, sck);
        SPI_setBitOrder(ST7735_SPI, SPI_MSBFIRST);
    }
    else
    {
        SPI_setMode(ST7735_SPI, SPI_MASTER8);
        SPI_setDataMode(ST7735_SPI, SPI_MODE1);
        //maximum baud rate possible = FPB/2
        SPI_setClockDivider(ST7735_SPI, SPI_PBCLOCK_DIV2);
        SPI_begin(ST7735_SPI);
    }
    
    // default Screen Values

    ST7735[module].cursor.x      = 0;
    ST7735[module].cursor.y      = 0;
    ST7735[module].cursor.page   = 0;
    ST7735[module].screen.startx = 0;
    ST7735[module].screen.starty = 0;
    ST7735[module].screen.endx   = ST7735_WIDTH  - 1;
    ST7735[module].screen.endy   = ST7735_HEIGHT - 1;
    ST7735[module].screen.width  = ST7735_WIDTH;
    ST7735[module].screen.height = ST7735_HEIGHT;
    //ST7735[module].font.width    = 1;
    //ST7735[module].font.height   = 1;

    // Software reset and minimal init.
    
    ST7735_low(ST7735[module].pin.cs);             // Chip select
    
    ST7735_sendCommand(module,(u8)ST7735_SWRESET); // software reset, puts display into sleep
    Delayms(150);
    ST7735_sendCommand(module,(u8)ST7735_SLPOUT);  // wake from sleep
    Delayms(500);
    ST7735_sendCommand(module,(u8)ST7735_COLMOD);  // set color mode to 16-bit
    ST7735_sendData(module,0x05);
    Delayms(10);
    ST7735_sendCommand(module,(u8)ST7735_MADCTL);  // RGB
    ST7735_sendData(module, 0x60|ST7735_MADCTL_RGB);
    Delayms(10);
    ST7735_sendCommand(module,(u8)ST7735_DISPON);  // display on!
    Delayms(100);
    ST7735_sendCommand(module,(u8)ST7735_NORON);   // normal display
    Delayms(10);
    
    ST7735_high(ST7735[module].pin.cs);            // Chip deselected
    
    // Default colors and orientation
    
    //ST7735_setOrientation(module, 90);             // landscape orientation
    ST7735_setBackgroundColor(module, ST7735_BLACK);
    ST7735_setColor(module, ST7735_WHITE);
    ST7735_clearScreen(module);
}