Zitat von Bruno Pisarek
Hehe, Peter Dannegger steht nunmal für sehr effizienten Code. Such in der Codesammlung von mikrocontroller.net mal nach "Tasten entprellen - bullet proof" (3. oder 4. Seite) dann weisst du was ich meine.
Um den größeren Code zu erklären müsste man das sehen, was Bascom aus deinen Zeilen macht (also den Assembler Output). Ich tippe aber jetzt schon mal drauf, das a) so einige überflüssiger Vergleiche und b) so einige überflüssige Speicheroperationen darin versteckt sein werden.
Ansonsten könnte es meiner Meinung nach übrigens eine gute Idee sein, derartige Funktionen via Libs selbst zu erstellen und ggf hier zu veröffentlichen.
Wie man allerdings Libs in Bascom erstellt, kann ich dir nicht verraten (ich progge nunmal lieber etwas Hardwarenäher).
PS: Respekt, das du dir die Arbeit gemacht hast diesen Gedankenanstoß nachzuvollziehen.
Nachtrag:
vom Prinzip her sollte es aber mit inlineassembler recht einfach zu realisieren sein.
1. die Register die du verwenden willst auf den Stack sichern.
2. Die Ausgangswerte in diese laden
3. Peter Dannegger Methode anwenden (muss nur etwas angepasst werden)
4. die Ergebnisse ins RAM schreiben
5. die Register wiederherstellen
6. fertig.
Vielleicht hilft dir ja das etwas weiter.
Grüße,
da Hanni.
Lesezeichen