Hallo,
der SPI macht doch oft probleme
Habe ein TFT Typ ITDB18SP angeschlossen.
Weiter ei nShild von Ocean Controls
Jetzt wir dSPI vom Display nicht mehr benutzt.
( Daher wieder Langsam )
Kann da jemand Helfen ???
Danke
Gruss
Ratlos
Der Code
/*
Ocean Controls k-type board KTA259 TC Mux Neil Davey
*/
#include <SPI.h>
#include <UTFT.h>
extern uint8_t BigFont[];
#define CS_TEMP 8 // MAX6674/6675 /CS Line
#define MUX_EN 7 // ADG608 MUX Enable
#define MUX_A0 4 // ADG608 Addr0
#define MUX_A1 5 // ADG608 Arrd1
#define MUX_A2 6 // ADG608 Addr2
//-------------------------
byte Temp = 0 ;
String Geber = "";
int sda = 11; //MOSI TFT
int scl = 13; //SCLK TFT
int cs = 10; //SS TFT
int rst = 3; // Ori 8 TFT
int rs = 9; //TFT
UTFT myGLCD(ITDB18SP,sda,scl,cs,rst,rs); // Remember to change the model parameter to suit your display module!
void Set_Mux_Channel(unsigned char chan)
{
switch(chan)
{
//----------------------
// MUX Channel 1
case 1:
digitalWrite(MUX_A0,LOW);
digitalWrite(MUX_A1,LOW);
digitalWrite(MUX_A2,LOW);
break;
//----------------------
// MUX Channel 2
case 2:
digitalWrite(MUX_A0,HIGH);
digitalWrite(MUX_A1,LOW);
digitalWrite(MUX_A2,LOW);
break;
//----------------------
// MUX Channel 3
case 3:
digitalWrite(MUX_A0,LOW);
digitalWrite(MUX_A1,HIGH);
digitalWrite(MUX_A2,LOW);
break;
//----------------------
// MUX Channel 4
case 4:
digitalWrite(MUX_A0,HIGH);
digitalWrite(MUX_A1,HIGH);
digitalWrite(MUX_A2,LOW);
break;
//----------------------
// MUX Channel 5
case 5:
digitalWrite(MUX_A0,LOW);
digitalWrite(MUX_A1,LOW);
digitalWrite(MUX_A2,HIGH);
break;
//----------------------
// MUX Channel 6
case 6:
digitalWrite(MUX_A0,HIGH);
digitalWrite(MUX_A1,LOW);
digitalWrite(MUX_A2,HIGH);
break;
//----------------------
// MUX Channel 7
case 7:
digitalWrite(MUX_A0,LOW);
digitalWrite(MUX_A1,HIGH);
digitalWrite(MUX_A2,HIGH);
break;
//----------------------
// MUX Channel 8
case 8:
digitalWrite(MUX_A0,HIGH);
digitalWrite(MUX_A1,HIGH);
digitalWrite(MUX_A2,HIGH);
break;
//----------------------
default:
break;
}
}
//-------------------------
int Read_Temperature(void)
{
unsigned int temp_reading;
// force conversion now..
delay(1); // Ori 5
digitalWrite(CS_TEMP,LOW); // Set MAX7765 /CS Low
delay(1); // Ori 5
digitalWrite(CS_TEMP,HIGH); // Set MAX7765 /CS High
delay(200); // Ori 250 wait for conversion to finish..
// read result
digitalWrite(CS_TEMP,LOW); // Set MAX7765 /CS Low
//delay(1); // Ori 1
temp_reading = SPI.transfer(0xff) << 8;
temp_reading += SPI.transfer(0xff);
digitalWrite(CS_TEMP,HIGH); // Set MAX7765 /CS High
//delay(1);
// check result
if(bitRead(temp_reading,2) == 1) // No Connection
{
return(-1); // Failed / NC Error
}
else
{
return((int)(temp_reading >> 5)); //Convert to Degc
}
}
//-------------------------
void setup()
{
SPI.begin(); // ist neu zum Starten der SPI Dadurch zeigt das Dysplay schneller an
pinMode(10, OUTPUT); randomSeed(analogRead(0));
// Setup the LCD
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setColor(28, 187, 255);
myGLCD.setFont(BigFont);
myGLCD.setBackColor(0,0,0);
myGLCD.fillScr(0,0,0);
Serial.begin(9600);
pinMode(10,OUTPUT); // Hardware /SS, need to be output
pinMode(CS_TEMP,OUTPUT); // MAX6675/6674 /CS Line
pinMode(MUX_EN,OUTPUT); // Enable pin on ADG608
pinMode(MUX_A0,OUTPUT); // A0 on ADG608
pinMode(MUX_A1,OUTPUT); // A1 on ADG608
pinMode(MUX_A2,OUTPUT); // A2 on ADG608
digitalWrite(CS_TEMP,HIGH); // Set MAX7765 /CS High
digitalWrite(MUX_EN,HIGH); // Enable on
}
//-------------------------
void loop()
{
int temperature = 0;
Temp = 0 ;
while(Temp < 8 )
{
Temp = Temp ++ ;
// delay(1);
Set_Mux_Channel(Temp);
temperature = Read_Temperature();
if(temperature == -1)
{
Geber = String(Temp);
// Serial.println("N/C Sensor " + Geber);
myGLCD.print("N/C Se", Temp * 19 -14,125,270); //
// myGLCD.print("N/C Se" + Geber + " ", Temp * 19 -14,125,270); //
}
else
{
// Serial.println('Temp');
// Serial.print(temperature,DEC);
Geber = String(Temp);
// Serial.println(" C Sensor " + Geber);
myGLCD.print(String(temperature,DEC), Temp * 19 -14,125,270); //
// myGLCD.print(String(temperature,DEC)+ " C Se" + Geber + " ", Temp * 19 -14,125,270); //
// Serial.println(Geber);
}
}
}