Beispiel #1
0
/* Write data to LCD module */
void Board_LCD_WriteData(const uint8_t *data, uint16_t size)
{
	uint32_t val = LCD_SSP->CR0 & 0xFFFF;
	LCD_SSP->CR0 = lcd_cfg_val;
	Chip_SSP_WriteFrames_Blocking(LCD_SSP, data, size);
	LCD_SSP->CR0 = val;
}
Beispiel #2
0
static uint16_t spiTransfer(uint8_t cmd)
{
  uint8_t data[3];
  uint8_t sdata[3];
  //SSP_DATA_SETUP_Type sspCfg;

  sdata[0] = cmd;
  sdata[1] = 0xff;
  sdata[2] = 0xff;


  //sspCfg.tx_data = sdata;
  //sspCfg.rx_data = NULL;
  //sspCfg.length  = 1;

 
  CS_ON;
  //SSP_ReadWrite (SSP_PORT, &sspCfg, SSP_TRANSFER_POLLING);
  Chip_SSP_WriteFrames_Blocking(SSP_ID, sdata, 1);

  //sspCfg.tx_data = NULL;
  //sspCfg.rx_data = data;
  //sspCfg.length  = 2;
  Chip_SSP_ReadFrames_Blocking(SSP_ID, data, 2);
  //SSP_ReadWrite (SSP_PORT, &sspCfg, SSP_TRANSFER_POLLING);

  CS_OFF;

  return ((data[0] << 8) | data[1]);  
}
Beispiel #3
0
int32_t cmd_draw_circle(
    LPC_SSP_T *spi,
    struct cmd_circle *circle
)
{
    uint8_t cmd = CANVAS_CMD_CIRCLE;
    /* disable sending DUMMY pattern to FIFO */
    Chip_SSP_Int_Disable(spi);
    /* send command */
    Chip_SSP_WriteFrames_Blocking(spi, &cmd, sizeof(cmd));
    /* send circle struct */
    Chip_SSP_WriteFrames_Blocking(spi, (uint8_t*)circle, sizeof(*circle));
    /* enable sending DUMMY pattern to FIFO */
    Chip_SSP_Int_Enable(spi);
    return 0;
}
Beispiel #4
0
int32_t cmd_clear_screen(
    LPC_SSP_T *spi,
    struct cmd_clearscreen *screen
)
{
    uint8_t cmd = CANVAS_CMD_CLEAR;
    /* disable sending DUMMY pattern to FIFO */
    Chip_SSP_Int_Disable(spi);
    /* send command */
    Chip_SSP_WriteFrames_Blocking(spi, &cmd, sizeof(cmd));
    /* send data */
    Chip_SSP_WriteFrames_Blocking(spi, (uint8_t*)screen, sizeof(*screen));
    /* enable sending DUMMY pattern to FIFO */
    Chip_SSP_Int_Enable(spi);
    return 0;
}
Beispiel #5
0
int32_t cmd_flush_drawing(
    LPC_SSP_T *spi
)
{
    uint8_t cmd = CANVAS_CMD_FLUSH_DRAWING;
    Chip_SSP_WriteFrames_Blocking(spi, &cmd, sizeof(cmd));
    return 0;
}
Beispiel #6
0
/******************************************************************************
 *
 * Description:
 *    Initialize the touch controller
 *
 *****************************************************************************/
void touch_init (void)
{
  uint8_t data[3];
  //SSP_CFG_Type SSP_ConfigStruct;
  //SSP_DATA_SETUP_Type sspCfg;

  pinConfig();
  CS_OFF;

	// initialize SSP configuration structure to default
	//SSP_ConfigStructInit(&SSP_ConfigStruct);

  // set clock rate
//  SSP_ConfigStruct.ClockRate = SSP_CLOCK;
//  SSP_ConfigStruct.CPHA = SSP_CPHA_SECOND;
//  SSP_ConfigStruct.CPOL = SSP_CPOL_LO;
//
//	// Initialize SSP peripheral with parameter given in structure above
//	SSP_Init(SSP_PORT, &SSP_ConfigStruct);
//
//	// Enable SSP peripheral
//	SSP_Cmd(SSP_PORT, ENABLE);

  // initialize SSP
  Chip_SSP_Init(SSP_ID);
  Chip_SSP_SetMaster(SSP_ID, true);
  Chip_SSP_SetBitRate(SSP_ID, SSP_CLOCK);
  Chip_SSP_SetFormat(SSP_ID, SSP_BITS_8, SSP_FRAMEFORMAT_SPI, SSP_CLOCK_MODE3);
  Chip_SSP_Enable(SSP_ID);


  data[0] = REF_ON;
  data[1] = (READ_12BIT_SER(ADS_A2A1A0_vaux) | ADS_PD10_ALL_ON);
  data[2] = PWRDOWN;
  CS_ON;

  //sspCfg.tx_data = data;
  //sspCfg.rx_data = NULL;
  //sspCfg.length  = 3;

  //SSP_ReadWrite (SSP_PORT, &sspCfg, SSP_TRANSFER_POLLING);
  Chip_SSP_WriteFrames_Blocking(SSP_ID, data, 3);
  CS_OFF;
}
Beispiel #7
0
int32_t cmd_get_dimension(
    LPC_SSP_T *spi,
    struct ack_dimension *dimension
)
{
    uint8_t cmd = CANVAS_CMD_GETDIMENSION;
    uint8_t ack;
    /* disable sending DUMMY pattern to FIFO */
    Chip_SSP_Int_Disable(spi);
    /* send command */
    Chip_SSP_WriteFrames_Blocking(spi, &cmd, sizeof(cmd));
    /* wait for acknowledge */
    do {
        Chip_SSP_ReadFrames_Blocking(spi, (uint8_t*)&ack, sizeof(ack));
    } while (ack != CANVAS_ACK_DIMENSION);
    /* now we can read data */
    Chip_SSP_ReadFrames_Blocking(spi, (uint8_t*)dimension, sizeof(*dimension));
    /* enable sending DUMMY pattern to FIFO */
    Chip_SSP_Int_Enable(spi);
    return 0;
}
Beispiel #8
0
/******************************************************************************
 *
 * Description:
 *    Read coordinates from the touch panel. The values (especially z) will
 *    have the value 0 when there are no touch events.
 *
 * Params:
 *   [out] x, y, z 
 *
 * Returns:
 *   None
 *
 *****************************************************************************/
void touch_xyz(int32_t *x, int32_t* y, int32_t* z)
{
  int32_t ix, iy, iz = 0;
  POINT displayPoint, screenSample;
  //SSP_DATA_SETUP_Type sspCfg;
  uint8_t pwrDown = PWRDOWN;

  readAndFilter(&ix, &iy, &iz);

  //spiTransfer(PWRDOWN);

  //sspCfg.tx_data = &pwrDown;
  //sspCfg.rx_data = NULL;
  //sspCfg.length  = 1;
 
  CS_ON;
  //SSP_ReadWrite (SSP_PORT, &sspCfg, SSP_TRANSFER_POLLING);
  Chip_SSP_WriteFrames_Blocking(SSP_ID, &pwrDown, 1);
  CS_OFF;

  *z = iz;

  if (calibrated) 
  {
      screenSample.x = ix;
      screenSample.y = iy;
      getDisplayPoint( &displayPoint, &screenSample, 
        &(storedCalData.storedMatrix) ) ;
      *x = displayPoint.x;
      *y = displayPoint.y;
  } 
  else 
  {
    *x = ix;
    *y = iy;
  }  
}
Beispiel #9
0
uint32_t Board_SSP_writeBuffer(const uint8_t *buffer, uint32_t bufferLen)
{
	return Chip_SSP_WriteFrames_Blocking(LPC_SSP1, buffer, bufferLen);
}
Beispiel #10
0
void  wizchip_writeburst(uint8_t* pBuf, uint16_t len)
{
	Chip_SSP_WriteFrames_Blocking(LPC_SSP0, pBuf, len);
}
Beispiel #11
0
static void  wizchip_write(uint8_t wb)
{
	Chip_SSP_WriteFrames_Blocking(LPC_SSP0, &wb, 1);
}