mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik sbi mit Variable??


Autor: Funkenschuhster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte den Befehl sbi gerne in Verbindung mit einer Variablen 
verwenden (Soll zum Realisieren von Up- Down- Tasten sein).
Ich hab´s mit " sbi r17, r18 " versucht, wobei r17 später als Negativ 
(com r17) an Port B (LEDs) ausgegeben wird und r18 (über Tastendruck) 
inc bzw dec wird. - funktioniert nur leider nicht
Wie lautet die korrekte Syntax für dieses Problem (wenn´s eine gibt)?
Wie werden Up- Dn- Tasten sonst realisiert (in einem Led - Balken 
leuchtet 1 LED - diese soll um eine Stelle verschoben werden)

Danke!!

Autor: Billy-Bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal dran gedacht Staubsaugervertreter zu werden?

Bob

Autor: Schmittchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich dich richtig verstanden habe, dann willst du eine Art 
Balkenanzeige programmieren (ähnlich den Graphicequalizern)?
Du könntest mittels ROR/ROL deine Einsen oder Nullen in dein Register 
PORTB schieben. Vorher das Carry-Flag entsprechend setzen.

sbi verlangt nach IO-Register - per Definition.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Funkschuster,

also die Funktion des SBI-Befehls kannst Du wohl am besten der 
AVR-Befehlsbeschreibung entnehmen.


Zur Programmierung allgemein:

Das Geheimnis heißt Baby-Steps.

D.h. Du must das Problem in viele einzelne Schritte zerlegen, immer 
weiter und weiter, bis der einzelne Schritt so klein ist, daß Du ihn 
programmieren kannst.

Also in Deinem Fall besteht es z.B. aus Eingabe, Verarbeitung Ausgabe.
Die Eingabe wiederum aus Tastenabfrage und Entprellung.
Die Tastenabfrage muß wiederum festellen ob eine Taste gedrückt wurde, 
und wenn ja, welche, usw., usw..

Zwischen den einzelnen Funktionen mußt Du auch festlegen, wie die 
Informationen übertragen werden, z.B. in einem Register.


Noch ein Tip:

Vermeide direkte Registerverwendung. Gib den Registern immer Namen, die 
auf die Funktion hinweisen, z.B.

.def Tasten_Kode = r16
.def LED_Ausgabe = r17



Peter

Autor: Funkenschuhster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Peter!

Kann Deine Ausführungen echt gut gebrauchen!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.