Forum: Mikrocontroller und Digitale Elektronik Mega32 LCD geht nicht


von Andy (Gast)


Lesenswert?

Hallo,

ich habe an einen Mega32 ein 2x16 LCD angeschlossen, und zwar an PORT D.
Das Display zeigt aber nur die erste Zeile mit ausgefüllten Kästn an, 
die zweite ist dunkel. Das Programm hab ich vom meinem Mega8 übernommen, 
dort hat alles funktioniert. Weiß jemand warum es beim 32 nicht geht, 
also auf die Pinbelegung habe ich geachtet.

von holger (Gast)


Lesenswert?

>Weiß jemand warum es beim 32 nicht geht,

Das Programm ist falsch.

>also auf die Pinbelegung habe ich geachtet.

Das haben schon viele gesagt;) Programm auch für
Atmega32 compiliert?

von Andy (Gast)


Lesenswert?

Hi,
danke für die schnelle Antwort erstmal.
Also das Programm hab umgestellt auf den 32.

von Andy (Gast)


Lesenswert?

Die Pinbelegung für das LCD habe ich identisch mit dem 8 gemacht, also 
für das LCD.

von Software-Entwickler (Gast)


Lesenswert?

Taktung? Evtl. stimmen Delays nicht mehr.

von Andy (Gast)


Lesenswert?

Müsten die Verlängert werden?

von holger (Gast)


Lesenswert?

>Taktung? Evtl. stimmen Delays nicht mehr.

Oder Wackelkontakt, Kurzschluß, Display kaputt, CPU kaputt, Pins 
vertauscht,
Programm falsch. Ohne weitere Infos wie Pinbelegung und Sourcecode
kann man nichts mehr dazu sagen.

von Andy (Gast)


Lesenswert?

Achso ich habe ihn mit der gleichen Taktung laufen wie den 8er.

von Andy (Gast)


Lesenswert?

void lcdInit()
{
  // Port D = Ausgang
  DDRD=0xff;
  PORTD=0;
  // warten bist LCD-Controller gebootet
  waitMs(50);
  // SOFT-RESET
  PORTD = 0b00110000;// 0x30;
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(5);
  PORTD = 0b00110000;// 0x30;
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(1);
  PORTD = 0b00110000;// 0x30;
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(5);

  // 4-BitModus einschalten
  PORTD=0x20;

  // Schreibsignal
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(5);

  // ab hier im 4-Bit-Modus
  lcdCmd(0x28);    // Funktions-Set: 2 Zeilen, 5x7 Matrix, 4 Bit
  lcdCmd(0x06);    // Entry Mode
  lcdOn();
  lcdClear();
}
hier mal die init

von Andy (Gast)


Lesenswert?

das komische ist halt dass nur die erste Zeile mit gefüllten Kästchen 
dargestellt wird.

von holger (Gast)


Lesenswert?

>das komische ist halt dass nur die erste Zeile mit gefüllten Kästchen
>dargestellt wird.

Das ist nicht komisch, das LCD wird nicht initialisiert.
Pins falsch angeschlossen oder Timing stimmt nicht.

BTW: Ich schaue mir nur vollständige Codes mit kompletter
Pinbelegung an. Vieleicht schicke ich dir dann sogar
eine HEX mit der du mal probieren kannst ob nicht doch
Pins falsch angeschlosssen sind.

von erhardd (Gast)


Lesenswert?

-die "schwarzen Kästchen" sind ein Indiez, das das LCD nicht 
initialisiert wurde.
Du gibst keine Auskunft über die CPU-Frequ., daher ist es nicht möglich, 
Deine Delay-Zeiten einzuordnen.
Ebenso die Funktion lcdCmd . Wie realisiert?(SPI?);
Und noch ein Tip zu gerne gemachten Fehlern.-die Fuses.
-oder JTAG noch dran. oder...weis der Fuchs was!

von erhardd (Gast)


Lesenswert?

@Holger
sorry, hab nicht gesehen, das Du schon geantwortet hattest!

von Andy (Gast)


Lesenswert?

Also JTAG hab ich abgeschaltet.
Die Frequenz ist 3,6864 MHZ.
Hier mal den Code:

#define  F_CPU 3686400
#include <avr\io.h>

//////////////////////////////////////
//  LCD
//////////////////////////////////////


void lcdSend(char data)
{
  // aktuelles RS ermitteln
  char rs=PORTD;
  rs&=4;
  // High-Teil senden
  char tmp=data;
  tmp&=0xf0;
  tmp|=rs;
  PORTD=tmp;
  // Schreibsignal
  sbi(PORTD,3);
  cbi(PORTD,3);
  // Low-Teil senden
  tmp=data;
  tmp&=0x0f;
  tmp*=16;
  tmp|=rs;
  PORTD=tmp;
  // Schreibsignal
  sbi(PORTD,3);
  cbi(PORTD,3);
  // verarbeiten lassen
  waitMs(1);
}
//---------------------------------------------------------------------- 
-----
//  lcdCmd(..) - sendet ein Kommando an LCD
//  PE:  cmd=Kommando-Byte
//---------------------------------------------------------------------- 
-----
void lcdCmd(char cmd)
{
  cbi(PORTD,2);    // RS löschen = Kommando
  lcdSend(cmd);    // senden
}
//---------------------------------------------------------------------- 
-----
//  lcdWrite(..) - sendet ein Zeichen (Daten) an LCD
//  PE:  text=Zeichen
//---------------------------------------------------------------------- 
-----
void lcdWrite(const char text)
{
  sbi(PORTD,2);    // RS setzen = Daten
  lcdSend(text);    // senden
}
//---------------------------------------------------------------------- 
-----
//  lcdWrite(..) - sendet eine Zeichenkette an LCD
//  Die Zeichenkette muss mit 0x00 abgeschlossen sein
//  PE:  pText=Zeiger auf Zeichenkette
//---------------------------------------------------------------------- 
-----
void lcdWrite(const char* pText)
{
  while(pText[0]!=0)
  {
    lcdWrite(pText[0]);
    pText++;
  }
}
//---------------------------------------------------------------------- 
-----
//  lcdWrite(..) - sendet eine Zeichenkette an LCD
//  PE:  pText=Zeiger auf Zeichenkette
//    count=Anzahl der zu sendenden Zeichen
//---------------------------------------------------------------------- 
-----
void lcdWrite(const char* pText, int count)
{
  while(count!=0)
  {
    lcdWrite(pText[0]);
    pText++;
    count--;
  }
}
//---------------------------------------------------------------------- 
-----
//  lcdHome(..) - Cursor auf Position 1,1
//---------------------------------------------------------------------- 
-----
void lcdHome()
{
  lcdCmd(0x02);
  waitMs(2);      // warten
}
//---------------------------------------------------------------------- 
-----
//  lcdClear(..) - löscht die Anzeige im LCD
//---------------------------------------------------------------------- 
-----
void lcdClear()
{
  lcdCmd(0x01);
  waitMs(2);      // warten
}
//---------------------------------------------------------------------- 
-----
//  lcdOn(..) - schaltet das LCD an
//---------------------------------------------------------------------- 
-----
void lcdOn()
{
  lcdCmd(0b00001100);//0x0E);Cursor aus
}
//---------------------------------------------------------------------- 
-----
//  lcdOff(..) - schaltet das LCD aus
//---------------------------------------------------------------------- 
-----
void lcdOff()
{
  lcdCmd(0x08);
}
//---------------------------------------------------------------------- 
-----
//  lcdGoto(..) - setzt die Cursorposition
//   PE:  row = Zeile 1..2
//    col = Spalte 1..16
//---------------------------------------------------------------------- 
-----
void lcdGoto(int row, int col)
{
  row--;        // Null-basierend
  row&=0x01;      // sicherheitshalber
  row*=0x40;      // Zeile nach Bit 6 bringen
  col--;        // Null-basierend
  col&=0x0f;      // sicherheitshalber
  char tmp=row|col;
  tmp|=0x80;      // Cursor setzen
  lcdCmd(tmp);    // senden
  /*
  switch(row)
  {
    case 1: row=0x00;
        break;
    case 2: row=0x40;
        break;
    case 3: row=0x14;
        break;
    default:
    case 4: row=0x54;
  }
  col--;
  if(col>19) col =19;
  char tmp=row|col;
  tmp|=0x80;
  lcdCmd(tmp);
  */
}
//---------------------------------------------------------------------- 
-----
//  lcdInit(..) - Schaltet die Ports und Initialisiert das LCD
//---------------------------------------------------------------------- 
-----
void lcdInit()
{
  // Port D = Ausgang
  DDRD=0xff;
  PORTD=0;
  // warten bist LCD-Controller gebootet
  waitMs(50);
  // SOFT-RESET
  PORTD = 0b00110000;// 0x30;
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(5);
  PORTD = 0b00110000;// 0x30;
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(1);
  PORTD = 0b00110000;// 0x30;
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(5);

  // 4-BitModus einschalten
  PORTD=0x20;

  // Schreibsignal
  sbi(PORTD,3);
  cbi(PORTD,3);
  waitMs(5);

  // ab hier im 4-Bit-Modus
  lcdCmd(0x28);    // Funktions-Set: 2 Zeilen, 5x7 Matrix, 4 Bit
  lcdCmd(0x06);    // Entry Mode
  lcdOn();
  lcdClear();
}


int main(){

  lcdInit();


  while(1){
  //menu_();
  lcdGoto(1,1);
  lcdWrite("Test");
  }
return 0;
}

von Hc Z. (mizch)


Lesenswert?

Das hier

> sbi(PORTD,3);
> cbi(PORTD,3);

macht schon mal die geforderte Mindest-E-Pulslänge von 500 µs nicht, 
selbst nicht bei dem relativ langsamen Takt von ca. 3 MHz.

von Andy (Gast)


Lesenswert?

Muss ich die Zeit verlängern?

von holger (Gast)


Angehängte Dateien:

Lesenswert?

>macht schon mal die geforderte Mindest-E-Pulslänge von 500 µs nicht,

Nu übertreib mal nicht;) 500ns tuns auch.

>Muss ich die Zeit verlängern?

Ja. Versuch mal die HEX im Anhang.

von Hc Z. (mizch)


Lesenswert?

holger schrieb:
> Nu übertreib mal nicht;) 500ns tuns auch.

:) Ja, natürlich.

von Andy (Gast)


Lesenswert?

Gleicher Effekt wie zuvor.

von Andy (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist mal das Layout.

von Andy (Gast)


Lesenswert?

Die Leiste unten ist für das LCD.

von holger (Gast)


Lesenswert?

>Gleicher Effekt wie zuvor.

D0-D3 vom LCD liegen auf GND. War das beim Atmega8 auch so?
Lass die mal in der Luft hängen. Ich schliess die nie an.

von Andy (Gast)


Lesenswert?

Ich versuchs mal, war aber beim 8er au so.

von holger (Gast)


Lesenswert?

>Ich versuchs mal, war aber beim 8er au so.

Dann lass das so und such nach Kurzschlüssen oder
schlechten Lötstellen.

von Andy (Gast)


Lesenswert?

Ja alles überprüft

von Karl H. (kbuchegg)


Lesenswert?

Andy schrieb:
> Also JTAG hab ich abgeschaltet.
> Die Frequenz ist 3,6864 MHZ.

Hast du die kontrolliert?

>   waitMs(1);

Die Funktion waitMs würde ich gerne mal sehen

von Andy (Gast)


Lesenswert?

Also ich hab JTAG ind den Fuses abgeschaltet

von Andy (Gast)


Lesenswert?

Aber warum sind die Balken in der ersten Zeile?

von spess53 (Gast)


Lesenswert?

Hi

>Aber warum sind die Balken in der ersten Zeile?

Das Display wird nicht initialisiert.

MfG Spess

von Andy (Gast)


Lesenswert?

Wie müßte die Initialisierung aussehen? Oder was hab ich falsch gemacht?

von holger (Gast)


Lesenswert?

>Wie müßte die Initialisierung aussehen? Oder was hab ich falsch gemacht?

Bis auf das zu kurze Timing bei Enable nicht.
Wenn mein Code bei dir nicht läuft, dann stimmt was mit der
Hardware nicht.

von Andy (Gast)


Lesenswert?

Aber was kann das sein, das Layout hab ich ja mal angehängt, für das LCD 
ist ja nicht viel dran.

von Andy (Gast)


Lesenswert?

Hab auch schon Displays getauscht und wo anders getestet. Was ich 
festgestellt habe ist wenn ich ein 4 Zeiliges ranhänge ist die erste 
Zeile und die dritte mit Kästchen gefüllt????????????

von holger (Gast)


Lesenswert?

>Aber was kann das sein, das Layout hab ich ja mal angehängt, für das LCD
>ist ja nicht viel dran.

Prüf die Leitungen mal auf Kurzschluss zu GND. GND geht da ja recht
knapp unter der Leiste vorbei. Ansonsten mal testen ob eine
Leitung gar keinen Kontakt hat.

von spess53 (Gast)


Lesenswert?

Hi

>Was ich festgestellt habe ist wenn ich ein 4 Zeiliges ranhänge ist die erste
>Zeile und die dritte mit Kästchen gefüllt????????????

Weil beide Zeilen für den Displaykontroller zu ersten Zeile zählen. Also 
das gleiche Ergebnis wie bei einem zweizeiligen.

MfG Spess

von erhardd (Gast)


Lesenswert?

-mal sehen:
RS oder Command/Data bei Dir PD2;
CLK oder Clock PD3;(oder CS?)
R/W wahrscheinlich fest verdrahtet auf Write?
CE oder Chip enable auch fest verdrahtet, worauf auch immer?
RS = 1 => Data (merkwürdig-aber o.k.)
Für Dich wäre es ein leichtes gewesen, die Pinbelegung ebenfalls 
darzustellen, -ich musste erst suchen!
PD4-7 Datenport;
Welches Display?
Nehme mal an , die INI-Routine stimmt(lt.Datenblatt)
Die Funktion lcdSend() wird sowohl für Kommandos als auch für Daten zum 
Datentransfer benutzt, sodas RS ausmaskiert wird um dann entsprechend 
"verodert" zu werden.
Einen Chip-enable sehe ich nicht, -aber Du sagst ja, die Software läuft!

Auf den ersten Blick, --o.K.;
Blieben die Fuses?
Was für ein Display ist denn das?(4x20) --Typ/Bezeichnung;

von Karl H. (kbuchegg)


Lesenswert?

OK.
Klartext.
Die gefüllten Kästchenzeilen malt das Display immer hin!
Die sind so etwas wie eine Einschaltkontrolle. Solange das LCD keine 
vernünftige Initialisierung von deinem Programm bekommen hat, macht es 
diese Kästchenzeilen hin. Zb auch deshalb, damit man erst mal den 
Kontrast am LCD einstellen kann und weiß, dass es an ist.

Daher: Wundere dich nicht über die Kästchenzeilen.
Die sagen nur aus, dass dein LCD nicht richtig initialisiert ist. Das 
kann wegen Timing sein, das kann sein, weil eine Leitung nicht richtrig 
verbunden ist, das kann sein weil du einen Anschlussfehler hast.

Und nein: komm jetzt nicht damit, das am Mega8 auch alles gleich war. 
Irgendwas ist anderes. Sonst würde dein LCD nämlich funktionioeren. QED

von erhardd (Gast)


Lesenswert?

In der Zeit, in der ich deine Software überprüft habe, hast Du ja schon 
das Layout gepostet.Hätte viel Zeit gespart!

von spess53 (Gast)


Lesenswert?

Hi

>Einen Chip-enable sehe ich nicht, -aber Du sagst ja, die Software läuft!

Text-LCDs haben normalerweise kein explizites CS. Die Steuerleitungen 
sind RS, R/W und E.

MfG Spess

von Andy (Gast)


Angehängte Dateien:

Lesenswert?

Ist ein Blau/Weiß Display.

Ich wundere mich nur weil ich alles so angeschlossen hab wie beim 8er.
Und jetzt habe ich eben den Verdacht dass es beim 32er anders sein muss.
Die leitungen habe ich alle Überprüft. Direkt vom Controller zum Display 
gemessen. Die stimmen.

von erhardd (Gast)


Lesenswert?

hab letzte Zeit nur mit graph. Displays zu tun!

von Karl H. (kbuchegg)


Lesenswert?

Nochmal.
Wie sieht die waitMs aus?
Hast du die Taktfrequenz überprüft?

> Und jetzt habe ich eben den Verdacht dass es beim 32er anders sein muss.
Diesen Verdacht kannst du ad acta legen.

von Andy (Gast)


Lesenswert?

Die WaitMs() müßte in der  <avr\io.h> stehen. Habe ich nicht selbst 
geschrieben.

von Andy (Gast)


Lesenswert?

Hat das etwas zu bedeuten auf dem Controller steht Mega32 16PU

von holger (Gast)


Angehängte Dateien:

Lesenswert?

>Und jetzt habe ich eben den Verdacht dass es beim 32er anders sein muss.
>Die leitungen habe ich alle Überprüft. Direkt vom Controller zum Display
>gemessen. Die stimmen.

Wirklich? Auch keine Kurzschlüsse zwischen den Pins?

Im Anhang mal eine Datei die für 16MHz compiliert wurde.
Damit sollte es keinerlei Timing Probleme geben.
Und du benutzt jetzt erstmal nur diese Datei zum testen.
Um deinen Code kümmern wir uns später.

von Karl H. (kbuchegg)


Lesenswert?

Andy schrieb:
> Die WaitMs() müßte in der  <avr\io.h> stehen. Habe ich nicht selbst
> geschrieben.

ALso in meinem io.h ist keine drinnen.
Wozu auch. Die mitgelieferten Funktion heisst _delay_ms und ist in 
delay.h

von Karl H. (kbuchegg)


Lesenswert?

Andy schrieb:
> Hat das etwas zu bedeuten auf dem Controller steht Mega32 16PU

Du suchst an den völlig falschen Stellen.
Du kannst es ruhig glauben:
Entweder deine Hardware oder deine Software ist fehlerhaft.

Du deine Software nicht schlecht aussieht und auch auf einem Mega8 
funktioniert hat, wird es wohl die Hardware sein. Kurzschluss, 
Kabelbruch, kalte Lötstelle. Irgend sowas.

von Andy (Gast)


Lesenswert?

Funktioniert immer noch nicht.

von Karl H. (kbuchegg)


Lesenswert?

Bei der Projektgenerierung hast du auch sicher Mega32 eingestellt?

von Andy (Gast)


Lesenswert?

Ja aber durchgemessen hab ich alles.

von Andy (Gast)


Lesenswert?

Ja das hab ich eingestellt, der controller wird auch erkannt.

von Andy (Gast)


Lesenswert?

Passt es vom Layout her, oder habe ich da die Ports falsch 
angeschlossen? Meiner Meinung her nicht.

von Karl H. (kbuchegg)


Lesenswert?

Andy schrieb:
> Passt es vom Layout her, oder habe ich da die Ports falsch
> angeschlossen? Meiner Meinung her nicht.


Dein Code ist zwar maximal unübersichtlich, aber IMHO müsste er mit der 
Pinbelegung übereinstimmen.

An deiner Stelle würde ich aber mit Testprogrammen die Pinbelegung 
durchprobieren. Den RS Pin auf 1 und mit dem Voltmeter kontrollieren, ob 
am LCD auch wirklich nur der RS Pin auf 1 gegangen ist.
Dassselbe dann mit dem E Pin und den Datenpins.

Alle anderen Pins müssen jeweils auf 0 bleiben.

von holger (Gast)


Lesenswert?

>Bei der Projektgenerierung hast du auch sicher Mega32 eingestellt?

Ist uninteressant wenn er meine HEX Datei benutzt.
Wir drehen uns sonst im Kreis.

>Ja aber durchgemessen hab ich alles.

Kann ich nicht so recht glauben.

>Funktioniert immer noch nicht.

Du hast ein Hardwareproblem wenn meine HAX Datei nicht funktioniert.
Such den Fehler dort. Vieleicht ist dein Atmega32 am PORTD inzwischen 
tot.

So, noch mal zum abchecken:

ALLE, und ich meine ALLE Leitungen folgendermaßen
durchmessen:

1) Kurzschluß auf GND
2) Leitungen haben Verbindung vom uC Sockel bis zum LCD
3) Es gibt keine Kurzschlüsse zwischen den Leitungen
4) Trenn die Leitungen D0-D3 am LCD doch mal auf.

Noch ein paar Fragen:
Das LCD was du jetzt benutzen möchtest hat am Atmega8 funktioniert?
Welches LCD genau ist das?

von Andy (Gast)


Lesenswert?

Dann werd ich mich mal daran machen.

von Karl H. (kbuchegg)


Lesenswert?

holger schrieb:
>>Bei der Projektgenerierung hast du auch sicher Mega32 eingestellt?
>
> Ist uninteressant wenn er meine HEX Datei benutzt.
> Wir drehen uns sonst im Kreis.

holger.
Kannst du bitte auch das C File zur Anschaung posten, damit der Rest 
einen Überblick hat, was du abtestest.


> Du hast ein Hardwareproblem

Denk ich auch.
Irgendwo eine kalte oder einen kurzen.

> Such den Fehler dort. Vieleicht ist dein Atmega32 am PORTD inzwischen
> tot.

Wenn sich nichts weiter ergibt: Vorschlag - Ein möglichst einfaches 
Testprogramm, dass nur die 0x03 samt RS und E-Toggle rausgibt. Und zwar 
im 5 Sekundentakt, damit man mit dem Voltmeter mitkommt.

von erhardd (Gast)


Lesenswert?

RS = 1 => Data (merkwürdig-aber o.k.)
Ich hatte das umgekehrt in Erinnerung(ist schon lange her!)

von holger (Gast)


Angehängte Dateien:

Lesenswert?

> Ist uninteressant wenn er meine HEX Datei benutzt.
> Wir drehen uns sonst im Kreis.

>holger.
>Kannst du bitte auch das C File zur Anschaung posten, damit der Rest
>einen Überblick hat, was du abtestest.

Bitte sehr. Das nehm ich wenn ich den Anfängern mal schnell
ne HEX zum probieren bastel. Es gibt schönere LCD Libs.

von Andy (Gast)


Lesenswert?

Hab jetzt rumprobiert, und ich kann die Ports nicht schalten.

von Andy (Gast)


Lesenswert?

So ich hab den Fehler. Ersteinmal Danke an alle für die guten Tipps und 
Hilfen. Habe das Datenblatt des 32er noch bisle studiert und etwas 
gefunden. Es war der RESET-Widerstand, beim 8er habe ich ein 10k 
genommen und so auch beim 32er, im Datenblatt steht aber RESET 30-50k. 
Habe dann mal den RESET durchgezwickt und siehe da es kommt Text.

Vielen Dank nochmal an alle!!!!!!

von spess53 (Gast)


Lesenswert?

Hi

>Es war der RESET-Widerstand, beim 8er habe ich ein 10k
>genommen und so auch beim 32er, im Datenblatt steht aber RESET 30-50k.
>Habe dann mal den RESET durchgezwickt und siehe da es kommt Text.

Falsche Interpretation. So wie ich das sehe, geht dein Resetwiderstand 
nach
Masse und nicht nach VCC.

MfG Spess

von Andy (Gast)


Lesenswert?

Ja da hat du recht habs grad nochmal nachgeprüft. Danke dass es dir 
aufgefallen ist. Was passiert eigentlich wenn man den RESET weg läßt?

von spess53 (Gast)


Lesenswert?

Hi

>Was passiert eigentlich wenn man den RESET weg läßt?

Das RESET-Pin hat einen internen Pull-Up (die von dir oben erwähnten 
30-50k).
In bestimmten Umgebungen kann das etwas zu groß sein und der Controller 
macht durch Störungen unkontrollierte Resets. Mit einem kleineren 
externen Pull-Up, und evtl. einem Kondensator nach GND, lässt sich das 
vermeiden.

MfG Spess

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Na das nenne ich mal die Platzhirsche hier an der Nase herumgeführt. Den 
anstehenden Reset jedenfalls hatte niemand im Blick, obgleich schon alle 
Standardfehler aufgezählt wurden.

kann passieren, zeigt nur das man gar nicht so simpel denken kann wie es 
machmal kommt. Nach dem Proggen hat keines deiner Programme auch nur 
einen Wank gemacht.

hehe

Deshalb lasse ich immer irgendwo ne sinnlos Led als Living ligth 
blinken.
Zur Not missbrauche ich den Pin der für die Hintergrundimmung gedacht 
ist und lasse den blinken ;-) so weis ich das was läuft.

Auch das Oszi ist stets in Reichweite um aktivitäten auf den Ports zu 
testen.

MfG Winne ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.