-
        

Ergebnis 1 bis 7 von 7

Thema: bestimmtes bit aus akku auslesen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.01.2010
    Beiträge
    5

    bestimmtes bit aus akku auslesen

    Anzeige

    olá!

    ich möchte einen wert vom port in den akku laden.
    ich nutze dafür den befehl:
    mov A, p1

    jetzt werden ja die 8 bit vom port 1 in den akku geladen.

    an sich interessiert mich aber nur das siebte bit; also der inhalt von p1.6

    wie kann ich das aus dem akku auslesen?

    ich hatte mir erst simple gedacht, daß ich nur das eine bit in den akku lade; mit:
    mov A, p1.6
    wie ich feststellen mußte, ging das aber nicht.

    also nochmal die frage: wie kann ich jetzt p1.6 (bzw das dann siebte bit des akkus) auslesen?


    prozessor ist der 80537.


    danke und grüße.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Was auf quasi jedem Prozessor geht:
    Du verundest den akku mit 0b01000000. Dann ist der Akku ungleich Null, wenn das siebte Bit gesetzt war, und gleich Null, wenn nicht.

    Und ansonsten musst du selber nachschauen, welche Bit-Befehle dein Prozessor unterstützt. Bei vielen anderen Controllern, (wie zb dem AVR) gibt es einen skip-Befehl, der als Bedingung ein bestimmtes Bit in einem Register auswertet.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    14.01.2010
    Beiträge
    5
    Du verundest den akku mit 0b01000000. Dann ist der Akku ungleich Null, wenn das siebte Bit gesetzt war, und gleich Null, wenn nicht.
    oki, das leuchtet ein.
    danke für den tip.

    das prinzip ist somit klar.
    aber ich bin noch ein rookie und frage mich jetzt:
    wie genau setze ich das um!?

    kann man das mit ein bis zwei code_zeilen erläutern oder ist das ne längere geschichte?[/quote]

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Die Codezeilen:
    1. den Wert von Port1 in den Akku laden
    2. den Akku mit 0b01000000 verunden
    3. nun kommt es drauf an, was mit dem bit passieren soll. Gewöhnlich kommt nun ein bedingter Sprung, der dafür sorgt, dass die vom Status des Bits abhängige Fortsetzung des Programms ausgeführt wird. Als Bedingung ist dabei dann Akku gleich Null bzw. ungleich Null zu verwenden.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Und nun solltest du nochmal das Instrction Set wälzen und dabei nach "bit" Ausschau halten. Dabei wirst du auf JB und JNB stoßen, die dir das Problem mit einem Befehl lösen....

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    14.01.2010
    Beiträge
    5
    den wert in den akku zu laden, ist ja kein problem.
    wie es dann danach weitergeht, sollte auch keine größere schwierigkeit bereiten.
    aber wie genau ver_unde ich den akku mit 0b01000000 ?

    also ich hab mal an sowas gedacht:

    anl a, #0b01000000

    naja, waren schon mal gute tips.
    morgen bin ich wieder bei uns im elektro-labor. da steht mir nen mikro_controller zur verfügung. werde ich da mal testen.
    wenn ich so drüber nachdenke, sollte das klappen, hihihi.

    also ich sag auf jeden fall schon mal danke.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    14.01.2010
    Beiträge
    5
    so, habs jetzt etwas anders gelöst.

    nämlich mit dem befehl:

    jb p1.6, unterprogramm

    also wenn das bit p1.6 gesetzt ist, wird mit 'unterprogramm' fortgefahren.
    so kann ich ja sehen, ob p1.6 gesetzt ist und je nachdem obs gesetzt ist (oder halt nicht) entsprechend fortfahren.

Berechtigungen

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