Vielen Dank, fuer eure Tips.
@Michael: Ich habe jetzt erst einmal die ganze "Serial-Testausgabe" rausgeschmissen.
Hab ja jetzt was auf meinem Display.
Mit dem "delay (300)" in der for-Schleife springt die Ausgabe jetzt eben langsam zwischen dem richtigen ausgelesenen wert "state x" und "state 1" hin und her.
@Serenifly: switch/case lasse ich so, da im Moment die entsprechenden Zahlen ausgegeben werden, aber spaeter sollen u.U. Buschstaben oder Zahlen oder, oder, oder stehen.
@Gregor: Vielen Dank fuer das Kompliment. Bin noch am Anfang und versuche mir alles so sauber wie moeglich zu halten sonst verstehe ich nicht mehr was da in meinem Programm passiert.
Ich poste hier mal den Stand der dinge:
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library
#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
// 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_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
byte state = 0;
int lastState = 0;
int count = 0;
int bit1 = 0;
int bit2 = 0;
int bit3 = 0;
void problem(void)
{
tft.fillScreen(RED);
tft.setCursor(38, 150);
tft.setTextColor(WHITE);
tft.setTextSize(4);
tft.println("KEIN");
tft.setCursor(38, 200);
tft.println("SIGNAL");
}
void drawChar(char c)
{
tft.fillScreen(WHITE);
tft.setCursor(20, 20);
tft.setTextColor(RED);
tft.setTextSize(40);
tft.print(c);
}
void setup(void)
{
tft.reset();
tft.begin(0x9341);
tft.setRotation(0);
tft.fillScreen(RED);
pinMode(13, INPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}
void loop()
{
for (count = 0 ; count <8; count++ )
{
bit1 = bitRead(count, 0);
bit2 = bitRead(count, 1);
bit3 = bitRead(count, 2);
digitalWrite(10, bit1);
digitalWrite(11, bit2);
digitalWrite(12, bit3);
bool sensorState = digitalRead(13); // Bool benoetigt nur 1 Bit
// int aber 4 Byte (32 mal so viel)
// Ist meistens aber wurscht.
if(sensorState == false)
{ state = count; }
if(lastState != state)
{
lastState = state;
switch (state)
{
case 0: drawChar('0'); break;
case 1: drawChar('1'); break;
case 2: drawChar('2'); break;
case 3: drawChar('3'); break;
case 4: drawChar('4'); break;
case 5: drawChar('5'); break;
case 6: drawChar('6'); break;
case 7: drawChar('7'); break;
default: problem();
}
}
delay (300);
}
}