-
-
Erfahrener Benutzer
Robotik Einstein
Bei winavr weiß ich nicht wie inline Assembler geht.
Bei CodeVision AVR siehts so aus
// Ein einzelner Befehl
#asm("NOP");
// Mehrere Zeilen inline Assembler
#asm
NOP
SEI
LDI R16,0x12
#endasm
Wie's geht sollte eigentlich im Benutzerhandbuch stehen.
Die Werte, die die Tastaturroutine ermittelt geb ich immer per RETURN zurück.
Also am Ende der Funktion steht die Anweisung
return(uc_taste);
Somit kriegt das aufrufende Programm die Tastaturwerte der Routine zurück geliefert und kann diese in einer eigenen Variable weiter verarbeiten.
Ich mach auch meistens in die aufrufende Routine eine zweite Variable mit dem Namen uc_oldtast auf.
Die beinhaltet den Wert der vorherigen Tastenabfrage.
Nur wenn sich daran was ändert wird eine Auswerte- Steuer- oder sonstige Routine verarbeitet.
Wenn die Ausführungsroutine verarbeitet wurde wird der aktuelle Tastenzustand ( uc_tast ) in die Variable uc_oldtast übernommen und somit verhindert, das die Auswerteroutine ständig anläuft.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen