mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Aufschlagwechsel


Autor: Christoph Unkart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe vor kurzem mit der Assemblerprogrammierung angefangen. Mein
erstes Projekt ist eine digitale Zähltafel für Tischtennis.
Das auf-, abzählen, multiplexen und Satzwechsel klappt schon, nur das
mit dem Aufschlagwechsel ist  nur Teilweise funktionsfähig.

Aufgabe: Nur wenn alle Zähler auf Null sind kann man den Aufschlag mit
Taster6 auswählen. Der Aufschlag wird durch Wechsel von PC6
und PC7 geändert. Bis zu einem Gesamtzählstand von 20 (10:10), soll der
Aufschlag nach jedem zweiten Punkt gewechselt werden. Sobald
die 20 erreicht ist soll der Aufschlag nach jedem Punkt gewechselt
werden. Bis hier funktioniert es bei mir auch. Nur wenn
der Zählstand korrigiert wird, also zurückzählen funktioniert es bei
mir nicht. Wenn der Satz fertig ist soll der Aufschlag
umgekehrt werden, also das entgegengesetzte von dem Wert, der mit
Taster6 ausgewählt wurde. Die anderen Pins von PORTC dürfen
nicht verändert werden.

Ich habe den Gesamtzählstand mit einem Register verglichen, Welches
nach jedem Wechsel um 2 bzw. um 1 erhöht wurde. Den Aufschlagwechsel
habe ich mit sbi und cbi gemacht, um die anderen Pins nicht zu
verändern.

Hoffentlich hat das jetzt jemand verstanden und kann mir Helfen.

MfG Christoph

Autor: Denis Gérard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
etwas verwirrend, das mit dem zurückzählen beim tischtennis begreif ich
nicht,

versuch das ganze doch mal in ein paar formeln zu kleiden,

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was mir bei solchen Problemen immer hilft, ist ein Flußdiagramm, dann
wird meistens einiges klarer.

Autor: Christoph Unkart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, Ich habe nochmal "nachgedacht" das mit den zurückzählen brauche
ich eigentlich garnicht.
Nur wie kann ich jetzt PC6 und PC7 vertauschen ohne die anderen Pins zu
beeinflussen. Ist bestimmt ganz leicht, aber ich komm nicht drauf!
MfG Christoph

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
externe schaltung. ok, etwas übertrieben wenn es auch in software geht,
aber es geht....
du könntest z.b. indirekt auf das bit an portc zugreifen. mach zwei
variablen in denen drinsteht welches bit gerad welche funktion hat und
ändere alle funktionen die auf diese bits zugreifen so ab, dass sie nur
noch die variablen benutzen und nicht direkt auf das bit zugreifen.
wechsel wäre einfach die beiden vars zu tauschen

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bit-Swapping?
in C:
if (PORTC & (1<<PC6)
   {
     PORTC &= ~(1<<PC6);  // Pin PC6 löschen
   }
else
   {
     PORTC |= (1<<PC6);   // Pin PC6 setzen
   }
dito für PC7...

in ASM vielleicht so:

SBIS PORTC,6
rjmp PC6setzen

CBI PORTC,6
rjmp weiter

PC6setzen:
SBI PORTC,6

weiter:
...

Bin in ASM nicht wirklich bewandert...

Gruß Rahul

Autor: Christoph Unkart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok es war doch sehr einfach. Ich habe die am Anfang ausgewählten PINs in
ein Register gespeichert. Wenn der Satz zuende ist nehme ich den com
Befehl und lade das Register wieder auf PortC.

Trotzdem Danke, dass sich jemand meinen wirren Text angesehen hat!

MfG Christoph

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.