mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Daten AVR an PC


Autor: Uwe Castagne (Firma: privat) (olmuk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann mir bitte jemand bei folgendem Problem helfen :

Ich habe zwei Zählerstände mit Low- und Highbyte (im Programm erstmal
auf Simulation STK 500 angepsaat- betrifft auch die LED's ).

Diese Werte möchte ich auf den PC übertragen und in Profilab Expert 
weiterverarbeiten.

Mit einem Wert komme ich zurecht, aber nun möchte ich ja beide 
übertragen.
Die Wandlung in ASCII ist notwendig.

Nun die Frage :
Wie kann ich den dargestellten Ablauf duplizieren und mit einem 
Trennzeichen(;) versehen? Mir gehen langsam die Register aus und es gibt 
mit Sicherheit eine elegantere Lösung.

Vielen Dank im voraus

Gruß Uwe

Autor: Stefan B. (stefan) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nutze die Macht der Unterroutinen.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Und nutze die Macht der der Assemblerbefehle.
in temp,key_pin  ;Eingänge lesen
lsr temp
brcc count_up1
lsr temp
brcc count_up1
lsr temp
brcc count_down
lsr temp
brcc count_up2
lsr temp
brcc count_up2
lsr temp
brcc count_down2
rjmp key

MfG Spess

Autor: Uwe Castagne (Firma: privat) (olmuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Stefan B. : vielen Dank !! Heisst Durchfall = Müll ?
Wird gleich probiert und versuche es nachzuvollziehen.

@spess53 : auch vielen Dank - damit kann ich dann wohl den Müll
ersetzen.

Na ja, aller Anfang ist schwer und ich versuch mir mein Projekt aus
Schnipseln zusammen zu bauen.

Zum Glück gibt es Hilfe !

Gruss Uwe

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Durchfall heisst, der Code rattert durch diese Stelle weiter und das 
kommt mir auf den ersten oberflächlichen Blick komisch vor.

Es kann vom Programmierer so gewollt sein, wie z.B. an der Stelle, die 
ich mit implizit kommentiert habe. Ähnliche Stellen im Code verwenden 
dort ein rjmp delay, aber das nächste Label ist bereits das delay:, 
daher kann man die rjmp delay Anweisung "einsparen".

Das kann aber Probleme machen, wenn man keinen Kommentar dort stehen hat 
und mit Copy&Paste den Code für andere Zwecke an andere Stellen kopiert 
- schwupp ist die Verbindung "nächste Anweisung ist das delay, also kann 
ich den rjmp sparen" weg und es passiert komisches.

Ich würde immer das rjmp setzen. Wenn es mal auf die paar daurch 
eingesparte Bytes oder Takte ankommt, ist es sowieso Zeit den Code zu 
refaktorieren und zu optimieren.

Bei fremdem Code kann man nicht unbedingt sagen, was sich der 
Programmierer dort gedacht hat. Wenn man es einfach ändert, dann ist der 
Programmablauf ja anders. Deshalb der fette Kommentar mit den Drei 
Fragezeichen :)

Autor: Uwe Castagne (Firma: privat) (olmuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es funktioniert - ich bekomme die Werte getrennt gesendet und 
ausgewertet.

Der rjmp delay war ungewollt - danke für den Hinweis.

Sollte jemand Interesse an der PC-Seite ( mit Profilab ) haben, bitte 
melden
und vielleicht kann ich etwas helfen.

Nochmals danke !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.