#define sclk 5 //Define pin 5 as clock #define sdio 6 //Define pin 6 as data //Mouse sensor register addresses #define CONF 0x1B #define LORES 0x80 #define CHNG 0x80 #define OFLOW 0x18 #define NEG 0x80 //************************************************modyfikacja int tab_dx[100]; int tab_dy[100]; //***********************************************koniec byte stat; byte quality; byte ovfl; byte readx; byte ready; int dx; int dy; int x; int y; void WriteAddr(byte address, byte data) { pinMode(sdio,OUTPUT); shiftOut(sdio,sclk,MSBFIRST,address|0x80); shiftOut(sdio,sclk,MSBFIRST,data); } int ReadAddr(byte address) { int data; pinMode(sdio,OUTPUT); shiftOut(sdio,sclk,MSBFIRST,address); delayMicroseconds(100); pinMode(sdio,INPUT); data = shiftIn(sdio,sclk,MSBFIRST); return data; } void setup() { Serial.begin(9600); pinMode(sclk,OUTPUT); digitalWrite(sclk,LOW); delay(100); WriteAddr(CONF,LORES); } void loop() { for(int i=0; i<100; i++){// moja modyfikacja - dod³em pêtlê stat = ReadAddr(0x16); if(stat & CHNG == 0) { } else { if(stat & OFLOW) { ovfl = 10; } readx = ReadAddr(0x03); tab_dx[i]=readx; if(readx & NEG) { dx = -1*(256-readx); } else { dx = readx; } x = x + dx; ready = ReadAddr(0x02); tab_dy[i]=ready; if(ready & NEG) { dy = -1*(256-ready); } else { dy = ready; } y = y + dy; quality = ReadAddr(0x04); /* *******************************modyfikacja - serial print poza pêtlê Serial.print(dx,DEC); Serial.print("\t"); Serial.print(x,DEC); Serial.print("\t"); Serial.print(dy,DEC); Serial.print("\t"); Serial.print(y,DEC); Serial.print("\t"); Serial.print(quality,DEC); if(ovfl > 0) { ovfl = ovfl - 1; Serial.print("\t"); Serial.print("Overflow"); } Serial.print("\n"); */ } }// koniec mojej pêtli for // - moja modyfikacja - przesy³am do komputera tablicê z pêtli dx i dy for(int i=0; i<100; i++){// moja modyfikacja - dod³em drug¹ (oddzieln¹) pêtlê Serial.print(tab_dx[i],DEC); Serial.print("\t"); Serial.print(tab_dy[i],DEC); Serial.print("\t"); Serial.print("\n"); } delay(10000); }