INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ausgabe entweder 0 oder 3
17.09.2015, 18:49 (Dieser Beitrag wurde zuletzt bearbeitet: 17.09.2015 18:50 von Wampo.)
Beitrag #1
Ausgabe entweder 0 oder 3
Hy,

wie kann ich hier lcd.setCursor(15,(CursorLine-DisplayFirstLine)); dem gerät sagen das nur ne 0 oder 3 rauskommt?

CursorLine geht von 0-3, ich möchte mich sozusagen nur in der zeile 0 oder 3 befinden, 2 und 1 sollen ausgelassen werden.


Code:
case 1:
for (int i=0;i<4;i++) {
    lcd.setCursor(15,i);
    lcd.print(TEMP[DisplayFirstLine + i]);
}
    lcd.setCursor(15,((CursorLine-DisplayFirstLine)));  //Navigationszeichen
    lcd.write((byte)9);
break;
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.09.2015, 20:13
Beitrag #2
RE: Ausgabe entweder 0 oder 3
Hallo,

(17.09.2015 18:49)Wampo schrieb:  ... dem gerät sagen das nur ne 0 oder 3 rauskommt?

Verstehe ich nicht ganz. Was meinst du damit? Was soll da rauskommen?

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.09.2015, 22:04
Beitrag #3
RE: Ausgabe entweder 0 oder 3
Evtl. so:

if (CursorLine-DisplayFirstLine == 0) {
lcd.setCursor(15,((CursorLine-DisplayFirstLine)));
}
if (CursorLine-DisplayFirstLine == 3) {
lcd.setCursor(15,((CursorLine-DisplayFirstLine)));
}

Nur Beispiel-Code, nicht getestet.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2015, 14:32 (Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2015 14:33 von Wampo.)
Beitrag #4
RE: Ausgabe entweder 0 oder 3
Hy

also zum Verständniss: Im LCD sind die CursorLines eben von Zeile 1 bis Zeile 4 hinterlegt. Mittels dem Rotary Encoder spring ich eine Zeile weiter oder eben zurück. In dem Bild seht ihr den kleinen Pfeil der soll sich entweder in Zeile 1 oder 4 befinden.
   

@ Hotsystem:
Ähnlich deinem Code hatte ich schon einen drin. Deinen habe ich auch nochmal ausprobiert, bewirkt aber das gleiche, der Pfeil wird nur in Zeile 1 oder 4 angezeigt. In den anderen beiden Zeilen wird er zwar nicht angezeigt aber die Zeile wird angefahren. Somit muss ich, wenn ich von Zeile 1 auf 4 möchte 3 mal den Encoder drehen.
Kann man hier nicht iwie mit nem Modulo arbeiten? Ich möchte das Zeile 2 & 3 gänzlich ausgelassen werden, als wäre es ein Zweizeilen Display.

Greez Wampo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2015, 14:44
Beitrag #5
RE: Ausgabe entweder 0 oder 3
Hallo Wampo,

probiere mal:
Code:
case 1:
for (int i=0;i<4;i+=3) {
    lcd.setCursor(15,i);
    lcd.print(TEMP[DisplayFirstLine + i]);
}
    lcd.setCursor(15,((CursorLine-DisplayFirstLine)));  //Navigationszeichen
    lcd.write((byte)9);
break;

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2015, 15:13
Beitrag #6
RE: Ausgabe entweder 0 oder 3
Dann musst du in deinem Sketch abfragen, wo der Encoder steht und dem entsprechend hinzu bzw. abzählen, damit du auf den richtigen Wert kommst. Die Anzahl der Impulse sind ja immer etwas anderes als der Cursorplatz im Display.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2015, 15:16 (Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2015 15:28 von Wampo.)
Beitrag #7
RE: Ausgabe entweder 0 oder 3
Hy Arne,

nein das Funktioniert leider nicht. Am beginn wird nämlich ein Char Array eingelesen mit

Code:
for (int i=0;i<4;i+=3) {
    lcd.setCursor(15,i);
    lcd.print(TEMP[DisplayFirstLine + i]);
}
wird nur der hier generiert
Code:
char* TEMP[]={" "," "," "," "};

Is lediglich ein Leerplatz dafür das der Pfeil der mit lcd.write((byte)9); generiert wird abgelöscht wird sobald er auf ne andre zeile springt.

Ohh jee, die Menüführung mit nem Rotaryencoder gestaltet sich momentan verdammt Schwer und kompliziert.

Wenn jemand Interesse daran hat und mir helfen könnte da ein bisschen Ordnung und System reinzubekommen ich hab mal den kompletten Code angehängt.


Angehängte Datei(en)
.zip  SmokerTemp.zip (Größe: 4,52 KB / Downloads: 35)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2015, 16:41
Beitrag #8
RE: Ausgabe entweder 0 oder 3
Hallo,

was genau funktioniert denn nicht bzw. was passiert und soll nicht passieren?

Du schreibst das Char Array sieht so aus:
Code:
char* TEMP[]={" "," "," "," "};
im Programm aus dem Anhang steht aber:
Code:
char* TEMP[]={" ","",""," "};

Ich weiß nicht was der Compiler aus den beiden "" macht. Wenn er das wegoptimiert hat das Array nur noch zwei Elemente. Mit lcd.print(TEMP[DisplayFirstLine + i]); greift man dann ins Nirwana wenn i=3 ist.

lg
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Ausgabe Serial Monitor zu viele Byt`s Hannes 0 84 12.11.2016 20:29
Letzter Beitrag: Hannes
  Welche IDE? Arduini.cc oder .org Bilbo 1 203 17.10.2016 21:03
Letzter Beitrag: ardu_arne
  Ausgabe auf WIFI Console vom UNO WIFI MZ-Lurre 0 87 17.10.2016 11:33
Letzter Beitrag: MZ-Lurre
  Ardublock übertragt nicht an IDE oder UNO R3 tobi83 5 318 16.10.2016 14:07
Letzter Beitrag: Pit
  Programmspeicher auf i2c_EEPROM oder SD_Card erweitern? avoid 11 343 11.07.2016 15:46
Letzter Beitrag: avoid
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 732 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Servo und PWM Ausgabe F2Ingo 4 488 17.06.2016 14:53
Letzter Beitrag: F2Ingo
  IDE von .org oder .cc besser geeignet? Bit of Byte 4 444 01.03.2016 21:57
Letzter Beitrag: arduinopeter
  Pretzelboard oder C.Control Warmbronner 1 526 22.02.2016 20:14
Letzter Beitrag: hotsystems
  AKtuelle Uhrzeit bekommen, RTC oder DFC-Empfänger Cray-1 34 15.494 11.02.2016 23:49
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste