//Analog Clock Sketch created by Embedded Downloads LTD //To view the full tutorial go to www.embeddeddownloads.com #include // Core graphics library #include // Hardware-specific library #include // The control pins for the LCD can be assigned to any digital or // analog pins...but we'll use the analog pins as this allows us to // double up the pins with the touch screen (see the tft paint example). #define LCD_CS A3 // Chip Select goes to Analog 3 #define LCD_CD A2 // Command/Data goes to Analog 2 #define LCD_WR A1 // LCD Write goes to Analog 1 #define LCD_RD A0 // LCD Read goes to Analog 0 #define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin // When using the BREAKOUT BOARD only, use these 8 data lines to the LCD: // For the Arduino Uno, Duemilanove, Diecimila, etc.: // D0 connects to digital pin 8 (Notice these are // D1 connects to digital pin 9 NOT in order!) // D2 connects to digital pin 2 // D3 connects to digital pin 3 // D4 connects to digital pin 4 // D5 connects to digital pin 5 // D6 connects to digital pin 6 // D7 connects to digital pin 7 // For the Arduino Mega, use digital pins 22 through 29 // (on the 2-row header at the end of the board). // These are the pins for the shield! #define YP A1 // must be an analog pin, use "An" notation! #define XM A2 // must be an analog pin, use "An" notation! #define YM 7 // can be a digital pin #define XP 6 // can be a digital pin #define MINPRESSURE 10 #define MAXPRESSURE 1000 // For better pressure precision, we need to know the resistance // between X+ and X- Use any multimeter to read it // For the one we're using, its 300 ohms across the X plate TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); // Assign human-readable names to some common 16-bit color values: #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF Adafruit_ILI9341_8bit_AS tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); void setup() { Serial.begin(9600); tft.reset(); delay(10); tft.begin(0x9341); uint16_t identifier = tft.readID(); Serial.println(identifier, HEX); tft.fillScreen(BLACK); Serial.println("tft LCD test"); Serial.print("tft size is "); Serial.print(tft.width()); Serial.print("x"); Serial.println(tft.height()); } int key; float a=0.0,b=0.0; float c=5.0; short lx[9]={0,1,1,1,1,-1,-1,-1,-1}; short ly[9]={0,1,1,-1,-1,1,1,-1,-1}; short lz[9]={0,1,-1,1,-1,1,-1,1,-1}; float lxn[9],lyn[9],lzn[9]; float xd[9],yd[9]; int ti=1; float xt,yt,zt; void loop(){ ti++; a=a+0.05; b=b+0.04; for(int n=1;n<9;n++) { xt=lx[n]*cos(a)-lz[n]*sin(a); yt=ly[n]; zt=lx[n]*sin(a)+lz[n]*cos(a); lxn[n]=xt; lyn[n]=yt*cos(b)-zt*sin(b); lzn[n]=yt*sin(b)+zt*cos(b)+c; xd[n]=(240/2)+(240*lxn[n])/(2*lzn[n]); yd[n]=(320/2)+(320*lyn[n])/(2*lzn[n]); } // tft.fillScreen(BLACK); tft.drawLine(xd[1],yd[1],xd[2],yd[2],WHITE); tft.drawLine(xd[2],yd[2],xd[4],yd[4],WHITE); tft.drawLine(xd[3],yd[3],xd[4],yd[4],WHITE); tft.drawLine(xd[3],yd[3],xd[1],yd[1],WHITE); tft.drawLine(xd[5],yd[5],xd[6],yd[6],WHITE); tft.drawLine(xd[6],yd[6],xd[8],yd[8],WHITE); tft.drawLine(xd[7],yd[7],xd[8],yd[8],WHITE); tft.drawLine(xd[7],yd[7],xd[5],yd[5],WHITE); tft.drawLine(xd[1],yd[1],xd[5],yd[5],WHITE); tft.drawLine(xd[2],yd[2],xd[6],yd[6],WHITE); tft.drawLine(xd[3],yd[3],xd[7],yd[7],WHITE); tft.drawLine(xd[4],yd[4],xd[8],yd[8],WHITE); //printf("\r%d-%fs-%ffps",ti,w.time()/6,ti/(w.time()/6)); }