Anfängerprogramm

Gast #4052644
Lesenswert?
• ▲
▼
Guten Abend,

als Neueinsteiger habe ich wohl, wie viele vor mir, ein Uhrenprogramm
für ein LCD mit dem HD 44780 Controller geschrieben.

Eigentlich funktioniert alles so wie es soll, nur die Einstellroutine
scheint mir zu langsam. Wahrscheinlich habe ich diese nicht richtig
implementiert.

Es wäre für mich sehr hilfreich, wenn erfahrene Programmierer sich 
einmal
meinen Code anschauen und entsprechend für mich Hinweise für eine
optimierte Stellroutine geben würden.

Vielen Dank im Voraus

Peter
Angehängte Dateien:
#4052793
Lesenswert?
• ▲
▼
Hallo Peter,

ich behaupte mal die meisten Nutzer hier programmieren Mikrocontroller 
in C, nicht zuletzt weil sich Fehler leichter erkennen lassen, bzw. sich 
meist gar nicht so schnell einschleichen, wenn das Programm 
umfangreicher wird. Wahrscheinlich wird sich keiner die Mühe machen, 
deinen doch recht umfangreichen Assembler-Code durchzuarbeiten, um einen 
Fehler zu finden (ich nehme mich auch nicht aus, sorry).
Ich würde dir raten, dich eingehender mit C auseinanderzusetzen, so 
fällt auch der Einstieg in die µC-Welt denke ich leichter (meine 
Meinung). Sicherlich ist es hilfreich, über Assembler Bescheid zu 
wissen, so hab ich auch angefangen. Für ernstzunehmende Projekte, die 
über das Blinken lassen von LEDs hinaus gehen, hat man mit höheren 
Sprachen schneller Erfolgserlebnisse...

Viele Grüße,
Christoph
(Firma: CIA) #4052812
Lesenswert?
• ▲
▼
Was heißt zu langsam?

Du benutzt in deiner Funktion ein hartes Delay. Zählst 255*255. solche 
Verzögerungen sind schlechter Stil. Lass dich nicht entmutigen Assembler 
zu lernen. Die effektivsten Programme hinsichtlich Performance und Code 
größe schreibt man im mix aus assembler und C. Allerdings eignet man 
sich vorher die grundlegenden Prinzipien der I/O Behandlung und der 
Entprellung von Tastern an. Das geht am einfachsten in C. Wenn man es 
dann verstanden hat, also nicht einfach hier gepostete Lösungen in sein 
Projekt einbaut, macht man sich daran das ganze in Assembler umzusetzen 
und zu optimieren. Und was genau so wichtig ist bei der Programmierung, 
gerade bei MK ist den Umgang mit dem Debuger oder Siumlator zu lernen. 
Gerade wenn man in Assembler programmiert.
Gast #4052827
Lesenswert?
• ▲
▼
Der Fehler liegt in der Verwaltung vom flag. Beim stellen vom z.B. 
stellenh wird das flag nicht gesetzt und damit die Anzeige nicht 
aktualisiert.  Die erfolgt erst nach einer Sekunde ausgelöst von der isr 
(flag=1).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.