Forum: Mikrocontroller und Digitale Elektronik 4x4-Matrix aus Tasten an Port B - Auswertung geht nicht


von Markus Reichert (Gast)


Lesenswert?

Hallo zusammen,

ich habe 14 Tasten als 4x4 Matrix verschaltet und habe die 8 Kabel an
den Port B angeschlossen.

Als erste initialisiere ich den Port folgendermaßen:

ldi  akku, 0b00001111
out  PORTB,akku

ldi  akku, 0b11110000
out  DDRB, akku

sbis   PINB,0
rcall  PB0i

sbis   PINB,1
rcall   PB1i

sbis   PINB,2
rcall   PB2i

sbis   PINB,3
rcall   PB3i


Bei der Auswertung springe ich dann in ein Unterprogramm, welches
folgendermaßen aussieht:



PB1i:  ldi  akku, 0b11110000
  out  PORTB, akku

  ldi  akku, 0b00001111
  out  DDRB, akku

  sbis  PINA, 4
  rcall  PRESET1

  sbis  PINA, 5
  rcall  PRESET1

  sbis  PINA, 6
  rcall  PRESET1

  sbis  PINA, 7
  rcall  PRESET1

  ret

Aber irgendwie macht das komplette Zeugs nur Probleme. Ich kann noch
nicht einmal richtig sagen, was der Fehler ist.

Da ich Assembler programmiere und C (noch) nicht kann, bitte keine
Hinweise auf C#-Lösungen. ;-)

Im Voraus vielen Dank für jegliche Hilfe.

Gruß
Markus

von Bernhard S. (bernhard)


Lesenswert?

Hallo Markus,

ich vermute einen Denkfehler.

Gib uns mal bitte Deine Schaltung dazu?

Bernhard

von Markus Reichert (Gast)


Lesenswert?

Was verstehst du unter Schaltung?

Was ich inzwischen gemerkt habe: die erste Auswertungsroutine (sie ist
mein Hauptprogramm) funktioniert. Die Unterroutinen für die 2.
Auswertung werden aufgerufen. Ab hier hakt es. Diese Auswertung
funktioniert nicht.

Hilft das weiter?

von Bernhard S. (bernhard)


Lesenswert?

>Was verstehst du unter Schaltung?

Einen Schaltplan

Welche Potentiale liegen wo an, wenn eine Taste betätigt wird?

Bernhard

von Markus Reichert (Gast)


Lesenswert?

Ich habe den Fehler gefunden:

man sollte auch in den Unterroutinen Port B ansprechen und nicht Port
A.

Ich glaube die schwüle Hitze heute hat mein Gehirn lahmgelegt. ;-)

Sorry für dieses sinnlose Posting und danke Bernhard, dass du versucht
hast mir zu helfen. :-)
Aber nach meiner Erleuchtung funktioniert es endlich. Und dafür habe
ich über 3 Stunden meines Lebens vergeudet... ;-)

Nochmals danke und Gruß
Markus

von Bernhard S. (bernhard)


Lesenswert?

Gern geschehen ;)

von Rahul (Gast)


Lesenswert?

@Bernhard: Atmel-ApplicationNote AVR240...

von Bernhard S. (bernhard)


Lesenswert?

Hallo Rahul,

habe gleich mal nachgeschut und auch gefunden ;)

http://www.atmel.com/dyn/products/app_notes.asp?family_id=607

Danke

Bernhard

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.