- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Abfrage!

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153

    Abfrage!

    Anzeige

    E-Bike
    Hallo,


    Also dass programm sollte so funktionieren!
    erst wenn 4 tasten gedrückt werden, dann soll der ausgang geschalten werden (DDRB, 0)

    Problem:
    Warum leuchtet die LED am anfang schon auch wenn ich nichts mache!

    Programm:

    .include <m8535def.inc>


    ;leerlauf
    loop:
    in R21, PINA
    cpi R21, 0x01
    breq NR1
    cpi R21, 0x02
    breq NR2
    cpi R21, 0x03
    breq NR3
    cpi R21, 0x04
    breq NR4
    cpi R22, 4
    breq setbit
    rjmp loop

    ;CODE Eingabe
    NR1:
    ldi R16, PINA
    inc R22
    ldi R17, 1
    sbi EEARL, 0
    sbi EECR, 2
    sbi EECR, 1
    out EEDR, R17
    cbi EEARL, 0
    cbi PINA, 0
    rjmp loop

    NR2:
    ldi R16, PINA
    inc R22
    ldi R18, 2
    sbi EEARL, 1
    sbi EECR, 2
    sbi EECR, 1
    out EEDR, R18
    cbi EEARL, 1
    cbi PINA, 1
    rjmp loop

    NR3:
    ldi R16, PINA
    inc R22
    ldi R19, 3
    sbi EEARL, 2
    sbi EECR, 2
    sbi EECR, 1
    out EEDR, R19
    cbi EEARL, 2
    cbi PINA, 2
    rjmp loop

    NR4:
    inc R22
    ldi R20, 4
    sbi EEARL, 3
    sbi EECR, 2
    sbi EECR, 1
    out EEDR, R20
    cbi EEARL, 3
    cbi PINA, 3
    rjmp loop

    setbit:
    sbi DDRB, 0
    rjmp setbit


    MFG
    Michael

  2. #2
    Neuer Benutzer Öfters hier Avatar von mattmiksys
    Registriert seit
    20.05.2006
    Ort
    Wohltorf/Hamb.
    Alter
    67
    Beiträge
    28

    Re: Abfrage!

    Zitat Zitat von Exodus
    ;leerlauf
    loop:
    in R21, PINA
    cpi R21, 0x01
    breq NR1
    cpi R21, 0x02
    breq NR2
    cpi R21, 0x03
    breq NR3
    cpi R21, 0x04
    breq NR4
    Hallo Michael,
    falls du es noch nicht gefunden hast: Du fragst ja den PINA auf Zustände ab und nicht (wie sicherlich beabsichtigt) auf Bits. Egal, ob du die Taster gegen Masse oder Vcc verdrahtet hast, alle Vergleiche werden sofort auf FALSE hinauslaufen.
    Grüße,
    Matthias
    Die Seele jeder Ordnung ist ein großer Papierkorb (Tucholsky)

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    So .. fangen wir mal an.
    1. Bin ich grad zu faul ins Datenblatt zu schauen um herauszufinden, welche Funktionen die einelnen Bits in diversen Registern haben.
    2. Jeder IO Pin eines AVR Mikrocontrollers hat nach einem Reset einen definierten Zustand (Input ohne Pullup).
      Im Klartext: Bring deine Pins vorher auf einen definierten Pegel (auch die unbenutzten)!!
    3. Siehe bei meinem Vorredner
    4. Schon einmal daran gedacht, das Taster prellen können ?
    5. Es ist im übrigen recht lustig, das du Eingänge deines Controllers nach der von dir erhofften Informationsverarbeitung einfach von "Hand'" wieder resetest ...
      Meinst du nicht, der Taster ist stärker ?
    6. und wie immer: Datenblatt lesen !!!


    Irgendwie finde ich es beängstigend, das du doch sehr langsam lernst ...
    Hast du dich eigentlich schoneinmal mit dem Gedanken befasst, das Assembler vielleicht doch zu hoch für dich sein könnte (nicht böse gemeint) und du dich vielleicht eher einer Hochsprache (Basic !!) widmen solltest.

    Grüße,

    da Hanni.

    Edit: So nen paar komische Rechtschreibfehler entfernt

  4. #4
    Neuer Benutzer Öfters hier Avatar von mattmiksys
    Registriert seit
    20.05.2006
    Ort
    Wohltorf/Hamb.
    Alter
    67
    Beiträge
    28
    Zitat Zitat von Hanni
    ...[*]Es ist im übrigen recht lustig, das du Eingämge deines Controllers nach der von dir erhofften Informationsverarbeitung einfach von "Hand'" wieder resetest ...
    stimmt, so weit hatte ich gar nicht gekuckt! Das ist auch nett, weil die PINx nun ja auch noch Read-Onlys sind..
    Die Seele jeder Ordnung ist ein großer Papierkorb (Tucholsky)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153
    Hallo,

    So und jetzt nochmal die punkte von Hanni:
    1.) Habe ins Datenblatt geschaut.
    2.) also soll ich an PA ein 0xff ausgeben?
    3.) Ich frage ja auf Bits ab oder nicht?
    4.) wie meinst du prellen?
    5.) wie meinst du von Hand resetten?
    6.) Bin beim lesen im datenblatt



    MFG
    Michael

Berechtigungen

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

12V Akku bauen