touch screen handler for the microchip AR1020
Diff: ar1020.cpp
- Revision:
- 1:264ad2a00fd9
- Parent:
- 0:cf4dd04052e3
- Child:
- 2:1a436d154c84
--- a/ar1020.cpp Mon Feb 21 22:29:40 2011 +0000 +++ b/ar1020.cpp Tue Feb 22 21:43:39 2011 +0000 @@ -24,7 +24,7 @@ #include "ar1020.h" #include "wait_api.h" -AR1020::AR1020(SPI *spi, PinName enable, PinName sqi, bool swapX, bool swapY, bool swapXY) +AR1020::AR1020(SPI *spi, PinName enable, PinName sqi, PinName power, bool swapX, bool swapY, bool swapXY) { _spi=spi; _enable=new DigitalOut(enable); @@ -35,9 +35,11 @@ _pen=0; _oldPen=false; _led=new DigitalOut(LED1); + _power=new DigitalOut(power); + _power->write(0); } -AR1020::AR1020(PinName mosi, PinName miso, PinName clk, PinName enable, PinName sqi, bool swapX, bool swapY, bool swapXY) +AR1020::AR1020(PinName mosi, PinName miso, PinName clk, PinName enable, PinName sqi, PinName power, bool swapX, bool swapY, bool swapXY) { _mosi=new DigitalOut(mosi); _miso=new DigitalIn(miso); @@ -53,6 +55,8 @@ _pen=0; _oldPen=false; _led=new DigitalOut(LED1); + _power=new DigitalOut(power); + _power->write(0); } AR1020::~AR1020() @@ -63,6 +67,8 @@ void AR1020::init() { + _power->write(1); + wait_ms(100); int r=cmd(0x13,NULL,0); printf("disable touch=%i\n",r); @@ -172,7 +178,7 @@ int AR1020::cmd(char cmd,char* data, int len) { _enable->write(1); - wait_us(100); + wait_us(1000); _enable->write(0); wait_us(10);