Frage zu C Programmierung

Wenn du Fragen / Probleme bezüglich einer integrierten Entwicklungsumgebung (IDE) oder aber zu einem Compiler hast, dann ist dieses Forum der richtige Ort.

Frage zu C Programmierung

#1

Ungelesener Beitrag pic18 » 10. Dez 2018, 11:01

Hallo um das Forum zu beleben habe ich ein paar Fragen zur Programmierung die mich beschäftigen ausgedacht.
Ich habe eine Schaltung mit Pic 18f4685 wo eine LCD-Anzeige 4*20 Zeichen vorhanden ist. Nun möchte ich eine 2. Anzeige anschließen. Da die Programme zur Ansteuerungen recht groß gewachsen sind, genügt es nicht nur die Enable Leitung umzuprogrammieren. Ich möchte wenn möglich diese Unterprogramme nicht verändern da die sich gegenseitig intern aufrufen. Z.B. wird bei Zeilenende eine neue Zeile angefangen, oder wenn die letzte Spalte unten erreicht ist der ganze Text hochgescrollt.
Im Moment rufe ich diese Programme so auf:
LCD_gotoxy(0,0);
LCD_Out('f');
usw.
Ich habe mir gedacht, ob es nicht möglich ist diese Programme zu vererben. (wie gesagt in C)
Also das ich diese so aufrufen kann.
print(LCD1,LCD_gotoxy(0,0);
print(LCD2,LCD_Out('.');
wie gesagt wird innerhalb der Ausgabe mitunter ein anderes Unterprogramm aufgerufen. z.B LCD_CR();
Ich habe in C keine so 100% Programmiererfahrung, und weiß nicht wie ich es am Besten programmiere. Mit Pointer oder Switch Case Anweisung oder...
für Hinweise oder auch Codeschnipsel wäre ich daher sehr dankbar.

Re: Frage zu C Programmierung

#2

Ungelesener Beitrag Peter » 10. Dez 2018, 14:49

Hallo
Verstehe nicht so ganz die Frage.
Aber wenn du die Routinen für dein LCD schon geschrieben hast, dann brauchst du sie
doch nur noch um zu benennen für das 2. LCD.
Also ich mach das so: (nicht C)

Sub Procedure LCD1 (xy, a as Byte)
Dein Code, für LCD löschen usw.
End Sub

Sub Procedure LCD2
Dein Code für LCD2
End Sub

So rufst du dann auf LCD1 oder LCD2 und was da drin steht wird gemacht.
Aufruf: LCD1 (d,f)

Re: Frage zu C Programmierung

#3

Ungelesener Beitrag pic18 » 10. Dez 2018, 15:36

Du meinst das ich für die zweite LCD den Code kopiere? Dann hätte ich ja zweimal die gleichen Programme nur mit unterschiedlichen Variablen. Das möchte ich nicht, das muß auch mit einem Programm funktionieren. Zumal ich nicht mehr viel Speicherplatz habe.
viele Grüße
pic18

Re: Frage zu C Programmierung

#4

Ungelesener Beitrag Peter » 10. Dez 2018, 16:22

Dann ist es mit dem E Pin am einfachsten.
Irgendwie muß ja der Controller wissen, welches LCD er
ansteuern soll. Mußt du deinen Code eben auf 2 LCDs ändern.
Ohne Änderung geht es eh nicht.

Re: Frage zu C Programmierung

#5

Ungelesener Beitrag pic18 » 10. Dez 2018, 16:40

wenn es nur das Enable Pin wäre, dann würde ich nur die Ausgabe ändern. Ich habe aber auch einige interne Zähler und ich merke mir auch jeweils die Cursor Position usw. Früher hatte ich Pascal programmiert, da hatte ich solche Funktionen vererbt. Hier weiß ich nicht so recht wie ich das mache. Ich dachte schon irgendwie an Pointer Übergabe.

Re: Frage zu C Programmierung

#6

Ungelesener Beitrag Peter » 10. Dez 2018, 22:15

Wenn die LCDs unabhängig von einander funktionieren sollen,
und die Routinen bleiben sollen, dann mußt du beim umschalten des
Displays, eben die Werte sichern die vom ersten Display benötigt
werden, damit du beim wieder umschalten die gesicherten Werte zurück
schreiben kannst.

Re: Frage zu C Programmierung

#7

Ungelesener Beitrag Peter » 10. Dez 2018, 22:17

Warum kommt eigentlich immer diese Fehlermeldung wenn ich
auf absenden drücke ? Beim 2. mal absenden geht es dann.

[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_messenger.php on line 506: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 1836: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3268)

Antworten