- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 30 von 30

Thema: Mit Assembler eine Blinkschaltung bauen

  1. #21
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    Anzeige

    Powerstation Test
    Es ist natürlich immer von Nachteil, wenn man tausen NOPs verschwendet nur um ne LED blinken zu lassen. Aber zu Beginn kann er das ja erstmal so machen
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    05.07.2007
    Beiträge
    44
    Hallo Thomas
    Man sollte aber auch immer die Möglichkeiten die der ATmega8 bietet ausnutzen, denn dafür wurden sie ja Eingebaut.
    Aber hier geht es nich darum auf welche Art der Zähler Programmiert ist sondern, daß er nicht richtig Funktioniert.
    Das Problem ist doch, daß der Programm Ablauf so nicht geplant war.
    Wie er weiter oben anführte, sind die Wartezeiten zu lang.
    Offensichtlich hatte er nur 14 Durchläufe geplant.
    Ich habe ihn lediglich auf eine Fehlerquelle hingewiesen.

    MfG
    A.Hoffmann

  3. #23
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Beiträge
    168
    @ A.Hoffmann:

    Was ist eigentlich die Bedeutung von ori?
    Weil hin und wieder finde ich einen Code der lautet wie folgt:

    Code:
    ori     temp, $20
    Und ich verstehe einfach dann den Sinn von ori nicht!

  4. #24
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    ori temp, $20
    spechert in "temp" den wert "temp OR 0x20" bzw temp|0x20
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #25
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Beiträge
    168
    Danke, damaltor!

    Wie muss ich dann folgenden Codeausschnitt verstehen?

    Code:
    [...]
            cp      PWMCount, ocr_1       ; Ist der Grenzwert für Led 1 erreicht
            brlt    OneOn
            ori     temp, $01
     
    OneOn:  cp      PWMCount, ocr_2       ; Ist der Grenzwert für Led 2 erreicht
            brlt    TwoOn
            ori     temp, $02
    [...]
    von Klick

  6. #26
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    hrhr.. das kann ich dir nicht sagen, es wird auf jeden fall unter bestimmten bedingungen ein wert in temp entweder mit 0x02 oder mit 0x01 maskiert.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #27
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Beiträge
    168
    Hmm ...
    das hatte ich mir auch schon gedacht, aber mich würde interessieren, wonach der entscheidet ... xD

  8. #28
    Benutzer Stammmitglied
    Registriert seit
    05.07.2007
    Beiträge
    44
    Hallo H3iiGhost

    Die Anweisung ori stellt eine binäre Oder Verknüpfung zwischen einem
    Register ( temp ) und einem direkt Wert ( zb $20 ) her.
    Das Ergebnis dieser Verknüpfung steht in dem Register.
    Mit dieser Anweisung, werden Bits im Zielregister gesetzt.
    Alle Bits die im Zielregister logisch 1 waren bleiben es und zusätzilch
    werden noch alle Bits die in dem direkt Wert 1 sind auch in dem Zielregister auf 1 gesetzt.
    Ich hoffe damit deine Frage beantwortet zu haben.
    Mit freundlichen Grüßen
    A. Hoffmann

  9. #29
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Beiträge
    168
    Ähmm ...
    Das verwirrt mich ehrlich gesagt noch mehr ...

    Aber danke für deine BEmühung!

  10. #30
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    Versuchen wirs noch mal

    ORI ist eine Abwandlung des Befehls OR.
    Mit OR können die Werte von 2 Registern miteinander bitweise ODER verknüpft werden.
    Beispiel:
    OR r16,r17
    Wenn im Register r16
    0b00000001 = hex 01
    stand, und im Register r17
    0b00000100 = hex 04
    stand, ist nach diesem Befehl der Wert
    0b00000101 = hex 05
    im Register r16 zu finden.
    Es ist keine Addition der Werte auch wenn sich das hier zufällig so ergibt.

    Der Befehl ORI macht im Prinzip das gleiche, nur das als zweiter Partner der Oder Verknüpfung eine Konstante und kein zusätzliches Register verwendet wird.

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

LiFePO4 Speicher Test