- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 11

Thema: AVR8-Assembler lernen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    54
    Beiträge
    407
    Die Rüge ist schon gerechtfertigt, denn den uC-Artikel hatte ich ja selbst dort vorher verlinkt und daraufhin die Vermutung, dass das S-Flag nur die Befehle
    BRGE & BRLT bedient und ansonsten uninteressant ist angestellt, aber den Verweis auf uC.net hat man ja nicht richtig durchgelesen - wenn überhaupt.

    https://www.mikrocontroller.net/topic/295439#6853179

    Hier gabs dann doch noch eine befriedigende Antwort :

    https://www.mikrocontroller.net/topic/295439#6879714


    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    54
    Beiträge
    407
    Hallo zusammen,

    vielleicht hat ja hier jemand eine Lösung um den Schönheitsfehler zu verbessern.

    Klicke auf die Grafik für eine größere Ansicht

Name:	OUT_VAL_formatiert.jpg
Hits:	6
Größe:	57,9 KB
ID:	35667

    Bleibt leider immer noch der Schönheitsfehler mit dem Minuszeichen,
    welches nicht direkt vor dem Wert steht. Außer natürlich es ist ein
    hunderter Wert.

    Ach, übrigens - auch wenn am Ende, bzw. überhaupt kein RET-Befehl steht,
    ist diese Routine mit einem RCALL,- oder CALL-Befehl aufzurufen.

    Code:
    ;************************************************************************/
    ;*                                                                                 */
    ;*            Display values on LCD                                              */
    ;*                                                                      */
    ;*              Author: Peter Dannegger                                 */
    ;*                      danni@specs.de                                  */
    ;* mit Aenderungen f. Temperatursensor ( DS18B20 ) von Unbekannt        */
    ;************************************************************************/
    ;************************************************************************/
    ;-------------------------------------------------------------------------
    ;                Anzeige ohne fuehrende Nullen 
    ;-------------------------------------------------------------------------
    ;input: a = value 0..255
    ;used:  a, b, c
    ;
    _dec_out:
      tst    a                ;Negativer Wert ?
      brpl  _positiv         ;Nein -> springen
      mov  c,a              ;Wert sichern
      ldi    a,$10            ;Cursor einen nach links um bei Minus Anzeige..
      rcall _lcd_cmd         ;..noch formatiert zu bleiben
      ldi    a,'-'
      rcall _dou4            ;Zeichen ausgeben
      mov   a,c              ;gesicherten Wert zurueck holen
      neg   a                ;In positives Aquivalent umwandeln
     _positiv:
      mov     c, a             ;Wert f. weiterverarbeitung kopieren
      subi     c, 100           ;Hunderter ermitteln
      brcc     _hunderter          ;if > = 100, die hunderter Stelle auswerten..
      ldi   a,' '            ;..ansonsten die hunderter Stelle durch Space ersetzen..
      clt                    ;Keine Hunderter vorhanden
      rjmp  _dou2            ;..und dies ausgeben
    _hunderter:
      set                    ;Hunderter vorhanden
      mov     c, a             ;Wert wieder neu laden und..
      ldi     a, '0' - 1       ;..Hunderter zaehlen..
    _dou1:    
      inc     a                ;..wobei die Ziffer in ASCII umgewandelt wird
      subi     c, 100           ;100 subtrahieren
      brcc     _dou1            ;< 100 -> Nein -> weiter zaehlen
    _dou2: 
      rcall _dou4              ;output hundrets
    _zehner:
      ldi     a, '0' +10       ;Zehnerstelle in ASCII umwandeln..
    _dou3:    
      dec     a                ;..und ASCII rueckwaerts von '9'
      subi     c, -10           ;Zehner x +10
      brcs     _dou3            ;Zehner gezaehlt ? NEIN -> weiter zaehlen
      rcall _dou5              ;output tens
      subi  c,-'0'           ;Einerstelle in ASCII uberfuehren
      mov     a, c                 ;output ones
    _dou4:
      rjmp  _lcd_data        ;ASCII-Zeichen ausgeben
    _dou5:    
      cpi     a, '0'           ;Ist die Zehnerziffer eine Null ?..
      brne  _dou4            ;..Nein -> Zehnerziffer ausgeben..
      brts  _dou4            ;Waren vorher Hunderter vorhanden ? Ja ->  Null ausgeben
      ldi   a,' '            ;..Nein -> Null durch Space ersetzen und..
      rjmp  _dou4            ;..jetzt ausgeben
     ;------------------------------------------------------------------------------
    Seht evtl. auch hier nach :

    https://www.mikrocontroller.net/topic/6516#6909211

    Beziehungsweise überhaupt beim Ursprung :

    https://www.mikrocontroller.net/topic/6516#41903



    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

Ähnliche Themen

  1. Programieren lernen C++ oder eher Arduino eigene Sprache lernen?
    Von PsychoElvis64 im Forum Arduino -Plattform
    Antworten: 6
    Letzter Beitrag: 17.12.2013, 10:34
  2. C für mikrocontroller lernen
    Von dannyboy1994 im Forum Software, Algorithmen und KI
    Antworten: 11
    Letzter Beitrag: 24.08.2010, 21:16
  3. Assembler lernen
    Von Attiny im Forum Assembler-Programmierung
    Antworten: 52
    Letzter Beitrag: 09.10.2008, 07:35
  4. Assembler richtig lernen ?
    Von Ferdinand im Forum Assembler-Programmierung
    Antworten: 12
    Letzter Beitrag: 10.06.2008, 23:44
  5. fusebit für avr8 mit 16mhz
    Von pebisoft im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 27.02.2005, 17:18

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen