コード例 #1
0
/*********************************************************************
*
*       LCD_X_WriteM1_16
*
* Purpose:
*   Write multiple bytes to controller, with A0 = 1
*/
void LCD_X_WriteM1_16(U16 * pData, int NumWords) {
  U8 data[2];

  LCD_X_ClrCS();
  data[0] = 0x72;               // Start + WR Data
  LCD_X_WriteM(data, 1);
  for (; NumWords; NumWords--) {
    data[0] = (U8)(*pData >> 8);
    data[1] = (U8)(*pData);
    LCD_X_WriteM(data, 2);
    pData++;
  }
  LCD_X_SetCS();
}
コード例 #2
0
/*********************************************************************
*
*       LCD_X_ReadM1_16
*
* Purpose:
*   Read multiple bytes from controller, with A0 = 1
*/
void LCD_X_ReadM1_16(U16 * pData, int NumWords) {
  U8 data[5];

  LCD_X_ClrCS();
  data[0] = 0x73;               // Start + RD Data
  LCD_X_WriteM(data, 1);
  LCD_X_ReadM (data, 5);        // Dummy RD
  for (; NumWords; NumWords--) {
    LCD_X_ReadM(data, 2);
    *pData = (data[0] << 8) |
              data[1];
    pData++;
  }
  LCD_X_SetCS();
}
コード例 #3
0
/*********************************************************************
*
*       LCD_X_ReadM1_16
*
* Purpose:
*   Read multiple bytes from controller, with A0 = 1
*/
void LCD_X_ReadM1_16(U16 * pData, int NumWords) {
  U8  data[4];
  U32 v;

  if (NumWords != 4) return;

  LCD_X_ClrCS();
  data[0] = 0x73;               // Start + RD Data
  LCD_X_WriteM(data, 1);
  LCD_X_ReadM (data, 4);
  v = (data[1] << 16) |
      (data[2] <<  8) |
       data[3];
  *pData++ = (v & 0x03F000) >> 10;
  *pData++ = (v & 0xFC0000) >> 16;
  *pData++ = (v & 0x000FC0) >>  4;    
  LCD_X_SetCS();
}