Forum: Mikrocontroller und Digitale Elektronik Einzelne Pins Abfragen Assembler


von Max (Gast)


Lesenswert?

Ich möchte einzelne Eingänge abfragen, und wenn ein Signal anliegt in 
ein "Unterprogramm" springen, wenn nicht soll es weiter gehen und der 
nächste Pin überprüft werden.
Ich programmiere in Assembler und wäre dankbar für Codevorschläge. Ich 
bin Anfänger, also bitte habt erbarmen und helft mir einfach:)) danke

von Peter II (Gast)


Lesenswert?

Max schrieb:
> Ich programmiere in Assembler und wäre dankbar für Codevorschläge. Ich
> bin Anfänger, also bitte habt erbarmen und helft mir einfach:)) danke

zu jeden Prozessor gibt es ein InstructionSet diese findet sich in der 
Doku. Das steht alles drin was du braucht.

Wenn du mehr hilfe brauchst, dann solltest du wenigstens sagen um was 
für ein Prozessor es sich handelt.

von loki (Gast)


Lesenswert?


von John B. (johnbauer)


Lesenswert?

Max schrieb:
> wenn ein Signal anliegt

Was für ein Signal liegt an? Ein high- bzw. low-Pegel? Ein kurzer 
Impuls, oder eine bestimmte Bit-Folge?

In diesem Beispiel werden die jeweiligen Unterprogramme aufgerufen, wenn 
an den entsprechenden Pins ein high-Pegel anliegt: (für PIC-Controller)
1
   BTFSC  PIN_X
2
   CALL   Unterprogramm_1
3
   BTFSC  PIN_Y
4
   CALL   Unterprogramm_2
5
   BTFSC  PIN_Z
6
   CALL   Unterprogramm_3

von Wilhelm F. (Gast)


Lesenswert?

Max schrieb:

> Ich programmiere in Assembler und wäre dankbar für Codevorschläge.

Welcher Baustein?

Manche haben bedingte Sprungbefehle und Einzelbitverarbeitung (PIC, 
8051), andere können nur ein Byte oder Wort oder Doppelwort lesen (8085, 
ARM). Dann muß man boolesche Verknüpfungen wie z.B. UND anwenden, um das 
einzelne Bit auszumaskieren. Den Akku oder ein anderes Register, wo der 
Wert drin steht, kann man dann auf Null oder nicht Null testen, und 
bedingt verzweigen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.