-
        

Ergebnis 1 bis 2 von 2

Thema: ring oder nicht ring?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Berlin
    Alter
    36
    Beiträge
    69

    ring oder nicht ring?

    Anzeige

    ich möchte Daten an ein LCD aus geben. Da ich aber auch variablen habe
    kann ich die Daten nicht einfach aus dem flash holen und gut ist, ein
    zwischenspeicher muss her. und ich dachte ein Ring ist dafür am besten
    geeignet. da ich aber Assembler Anfänger bin weiß ich nicht genau wie es.

    Mir ist heute morgen noch eine andere Idee gekommen. könnte man nicht
    jeder variable einen eigenen string im Ram geben? Ich könnte mir
    vorstellen das man sich damit eine menge Arbeit spart, und man könnte
    jedem string einer bestimmten Adresse im Ram des Display zuordnen. Die
    string Adressen kann man ja dann einfach aus dem Flash laden.
    Geht das so auch oder ist das eine schlechte Idee ?

    (ich habe einen ATmega

    dank euch schon im voraus

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Berlin
    Alter
    36
    Beiträge
    69
    Ich habe mal in groben umrissen geschrieben wie ich mir das ungefähr
    gedacht habe :

    Code:
    =======================================================
    .equ string1=0x0060    ;+12 Byte
    .equ string2=0x006c    ;+12 Byte
    .equ string3=0x0078    ;+12 Byte
    .equ string4=0x0084    ;+12 Byte
    
    .def temp1,r16
    .def str,r18
    
    loop:
    ;(jetzt irgendwas an befehlen)
    rjmp loop
    
    dat1s:        ;Byte in den ram legen
      ldi yh,high(string1)
      ldi yl,lowe(string1)
      st y+,temp1
      ret
    
    dat1l:        ;Byte aus den ram holen
      ldi yh,high(string1)
      ldi yl,lowe(string1)
      ld y+,temp1
      tst t1mp1
      breq out_end
        rjmp lcd_out
    
    out_end:
    sbrc str,0
    ret
    ===================================================================
    Das str Register ist nur da damit man weiß wann es etwas zu tun gibt.
    Das was ich mir denke ist:
    ich schreibe die variable in den ram (string1) und setze bit0 von str
    auf 1 wenn alles im ram ist. danach würden die Daten nacheinander an das
    LCD übergeben werden, nach jedem byte geht es dann erstmal wieder in das
    Hauptprogramm usw. wen dann alles Übertragen wurde setze ich bit0 von
    str wider auf 0 . so spare ich mir das warten bis ich das nächste byte
    senden kann.

    p.s. Wen das nicht so geht (der code komplett falsch ist ) dann wäre ich
    sehr froh wen ihr mir helfen würdet!!![/code]

Berechtigungen

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