Base LCDPanel based, required for all LCDPanel drivers

Committer:
silviogissi
Date:
Sun Mar 11 01:33:10 2012 +0000
Revision:
2:ab4040a7e8c9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
silviogissi 2:ab4040a7e8c9 1 /* LCDPanel base library for LCD/TFT Panels
silviogissi 2:ab4040a7e8c9 2 * Copyright (c) 2012, Silvio Gissi */
silviogissi 2:ab4040a7e8c9 3
silviogissi 2:ab4040a7e8c9 4 #include "LCDPanel_SPI.h"
silviogissi 2:ab4040a7e8c9 5 #include "stdarg.h"
silviogissi 2:ab4040a7e8c9 6
silviogissi 2:ab4040a7e8c9 7 LCDPanel_SPI::LCDPanel_SPI(unsigned int width, unsigned int height, PinName cs,
silviogissi 2:ab4040a7e8c9 8 PinName spi_data, PinName spi_clock, PinName rst,
silviogissi 2:ab4040a7e8c9 9 unsigned int spi_bits, unsigned int spi_freq
silviogissi 2:ab4040a7e8c9 10 ) : LCDPanel (width,height,cs), _rst(rst), _spi(spi_data,NC,spi_clock)
silviogissi 2:ab4040a7e8c9 11 {
silviogissi 2:ab4040a7e8c9 12 _spi.format(spi_bits);
silviogissi 2:ab4040a7e8c9 13 _spi.frequency(spi_freq);
silviogissi 2:ab4040a7e8c9 14 }
silviogissi 2:ab4040a7e8c9 15
silviogissi 2:ab4040a7e8c9 16 void LCDPanel_SPI::command(unsigned int command, unsigned int size, ...) {
silviogissi 2:ab4040a7e8c9 17 _spi.write(command&0xFF);
silviogissi 2:ab4040a7e8c9 18 if (size) {
silviogissi 2:ab4040a7e8c9 19 va_list m;
silviogissi 2:ab4040a7e8c9 20 va_start (m,size);
silviogissi 2:ab4040a7e8c9 21 this->data(size,m);
silviogissi 2:ab4040a7e8c9 22 va_end(m);
silviogissi 2:ab4040a7e8c9 23 }
silviogissi 2:ab4040a7e8c9 24
silviogissi 2:ab4040a7e8c9 25 }
silviogissi 2:ab4040a7e8c9 26
silviogissi 2:ab4040a7e8c9 27 void LCDPanel_SPI::data(unsigned int size, ...) {
silviogissi 2:ab4040a7e8c9 28 va_list m;
silviogissi 2:ab4040a7e8c9 29 va_start (m,size);
silviogissi 2:ab4040a7e8c9 30 for(int i=0; i<size; i++) { _spi.write(va_arg(m,int)|0x100); }
silviogissi 2:ab4040a7e8c9 31 va_end(m);
silviogissi 2:ab4040a7e8c9 32 }
silviogissi 2:ab4040a7e8c9 33
silviogissi 2:ab4040a7e8c9 34 void LCDPanel_SPI::pixel(uint16_t color) {
silviogissi 2:ab4040a7e8c9 35 this->data(2,color>>8,color&0xff);
silviogissi 2:ab4040a7e8c9 36 }