最近在研究电阻屏 写了这么一段程序 打算控制LED用 很奇怪的少运行一次- #include "TFTLCD.h"
- #include "TouchScreen.h"
- #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 TS_MINX 150//定义触摸屏大小
- #define TS_MINY 120
- #define TS_MAXX 920
- #define TS_MAXY 940
- TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
- int ledmode=0;
- #define LCD_CS A3
- #define LCD_CD A2
- #define LCD_WR A1
- #define LCD_RD A0
- #define LCD_RESET A4
- #define BLACK 0x0000
- #define BLUE 0x001F
- #define RED 0xF800
- #define GREEN 0x07E0
- #define CYAN 0x07FF
- #define MAGENTA 0xF81F
- #define YELLOW 0xFFE0
- #define WHITE 0xFFFF
- TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
- #define PENRADIUS 3
- void setup(void) {
- pinMode(13, OUTPUT);
- Serial.begin(9600);
- tft.reset();
- tft.initDisplay();
- tft.fillScreen(BLACK);
- }
- #define MINPRESSURE 10
- #define MAXPRESSURE 1000
- //定义最小最大压力
- ;
- void loop()
- {digitalWrite(13, HIGH);
- Point p = ts.getPoint();
- digitalWrite(13, LOW);
- pinMode(XM, OUTPUT);
- pinMode(YP, OUTPUT);
- if(p.z>MINPRESSURE&&p.z<MAXPRESSURE){led();}
- }
- void led()
- { //led界面显示
- tft.fillScreen(BLACK);
- char open[]="LED OPEN",close[]="LED CLOSE";
- Serial.println("1");
- if (ledmode==0){ledmode=1; Serial.println("2");tft.drawString(0, 0, open, RED, 4);delay(500); tft.fillScreen(BLACK);}
- else if (ledmode==1){ Serial.println("3");ledmode=0;tft.drawString(0, 0, close, YELLOW, 4);delay(500); tft.fillScreen(BLACK);}
-
- }
-
复制代码 我声明了一个全局变量 ledmode 用来记录LED的开关状态
根据串口显示 我的程序遇到tft.drawString(0, 0, open, RED, 4);少运行一次 导致每次显示关的状态
串口记录如下
可以肯定的是变量改变了 但是在TFT显示屏上没有表现 很纠结为什么 写了很多内容遇到这个问题 吧其他都删了还没有解决 哪位大神来帮下忙啊 |