touch screen handler for the microchip AR1020
Diff: ar1020.cpp
- Revision:
- 4:510ea5b28a05
- Parent:
- 3:b7eb3b3fe79f
- Child:
- 5:a5eba88e8c3e
--- a/ar1020.cpp Tue Feb 22 22:54:25 2011 +0000 +++ b/ar1020.cpp Thu Feb 24 14:00:17 2011 +0000 @@ -24,21 +24,7 @@ #include "ar1020.h" #include "wait_api.h" -AR1020::AR1020(SPI *spi, PinName enable, PinName sqi, PinName power, bool swapX, bool swapY, bool swapXY) { - _spi=spi; - _enable=new DigitalOut(enable); - _enable->write(1); - _irq=new InterruptIn(sqi); - _x=-1; - _y=-1; - _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, PinName power, bool swapX, bool swapY, bool swapXY) { +AR1020::AR1020(PinName mosi, PinName miso, PinName clk, PinName enable, PinName siq, PinName power) { _mosi=new DigitalOut(mosi); _miso=new DigitalIn(miso); _clk=new DigitalOut(clk); @@ -46,8 +32,8 @@ _enable=new DigitalOut(enable); _enable->write(1); - _irq=new InterruptIn(sqi); - _sqi=new DigitalIn(sqi); + _irq=new InterruptIn(siq); + _siq=new DigitalIn(siq); _x=-1; _y=-1; _pen=0; @@ -110,7 +96,7 @@ void AR1020::read() { - while (1==_sqi->read()) { + while (1==_siq->read()) { _led->write(1); _enable->write(0); wait_us(60); @@ -164,7 +150,7 @@ } _oldPen=(_pen==1); _led->write(0); - if (1==_sqi->read()) + if (1==_siq->read()) wait_ms(5); } } @@ -195,7 +181,7 @@ t.start(); while (true) { wait_us(100); - if (1==_sqi->read()) + if (1==_siq->read()) break; if (t.read_ms()>1) break;