极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9933|回复: 4

程序运行问题 求大神

[复制链接]
发表于 2013-8-26 21:07:34 | 显示全部楼层 |阅读模式
最近在研究电阻屏  写了这么一段程序 打算控制LED用 很奇怪的少运行一次
  1. #include "TFTLCD.h"
  2. #include "TouchScreen.h"

  3. #define YP A1  // must be an analog pin, use "An" notation!定义触摸屏幕
  4. #define XM A2  // must be an analog pin, use "An" notation!
  5. #define YM  7 // can be a digital pin
  6. #define XP  6  // can be a digital pin

  7. #define TS_MINX 150//定义触摸屏大小
  8. #define TS_MINY 120
  9. #define TS_MAXX 920
  10. #define TS_MAXY 940

  11. TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

  12. int ledmode=0;


  13. #define LCD_CS A3
  14. #define LCD_CD A2
  15. #define LCD_WR A1
  16. #define LCD_RD A0
  17. #define LCD_RESET A4

  18. #define        BLACK           0x0000
  19. #define        BLUE            0x001F
  20. #define        RED             0xF800
  21. #define        GREEN           0x07E0
  22. #define CYAN            0x07FF
  23. #define MAGENTA         0xF81F
  24. #define YELLOW          0xFFE0
  25. #define WHITE           0xFFFF

  26. TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

  27. #define PENRADIUS 3


  28. void setup(void) {
  29.   pinMode(13, OUTPUT);
  30.   Serial.begin(9600);
  31.   tft.reset();
  32.   tft.initDisplay();
  33.   tft.fillScreen(BLACK);

  34. }



  35. #define MINPRESSURE 10
  36. #define MAXPRESSURE 1000
  37. //定义最小最大压力

  38. ;
  39. void loop()
  40. {digitalWrite(13, HIGH);
  41.   Point p = ts.getPoint();
  42.   digitalWrite(13, LOW);
  43.   pinMode(XM, OUTPUT);
  44.   pinMode(YP, OUTPUT);

  45.   if(p.z>MINPRESSURE&&p.z<MAXPRESSURE){led();}
  46. }


  47. void led()
  48. {  //led界面显示

  49.     tft.fillScreen(BLACK);
  50.     char open[]="LED OPEN",close[]="LED CLOSE";
  51.      Serial.println("1");
  52.          if (ledmode==0){ledmode=1;  Serial.println("2");tft.drawString(0, 0, open, RED, 4);delay(500); tft.fillScreen(BLACK);}
  53.            else if (ledmode==1){  Serial.println("3");ledmode=0;tft.drawString(0, 0, close, YELLOW, 4);delay(500); tft.fillScreen(BLACK);}
  54.    

  55.     }
  56.          


复制代码
我声明了一个全局变量 ledmode  用来记录LED的开关状态  

根据串口显示 我的程序遇到tft.drawString(0, 0, open, RED, 4);少运行一次  导致每次显示关的状态

串口记录如下


可以肯定的是变量改变了  但是在TFT显示屏上没有表现   很纠结为什么  写了很多内容遇到这个问题  吧其他都删了还没有解决   哪位大神来帮下忙啊  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-8-28 14:06:52 | 显示全部楼层
tft.fillScreen(BLACK); 你把整个屏幕给弄黑了
回复 支持 反对

使用道具 举报

发表于 2013-8-28 14:08:20 | 显示全部楼层
要么就是你液晶屏没接好
回复 支持 反对

使用道具 举报

发表于 2013-10-1 21:01:53 | 显示全部楼层
與我情況一樣!問題解決了嗎?不會只你跟我遇到這情況吧!
回复 支持 反对

使用道具 举报

发表于 2013-10-2 17:40:29 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 10:19 , Processed in 0.036819 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表