Hallo, ich programmiere in pic asm. momentan strukturiere ich gerade ein uhrwerk. mittlerweile ist das uhrwerk so komplex, das es funktionen (calls) für die einstellungen der einzelnen variablen (sekunde,minute, stunde usw..) gleich mit behandelt. zudem ist es komplett mit indirekter adressierung der basisvariablen programmiert, sodass auch eine eventuelle weckzeit mit den selben routinen bedient wird. meine frage: hat jemand schonmal etwas ähnliches programmiert. würde mir gerne noch einige impressionen aus anderem pic asm code ziehen :_) maddin
Hallo Frank, eine sehr umfangreiche seite! leider stellt der user nur hexfiles zur verfügung, so wie es aussieht. maddin
hmmm.. gibts nicht so ein pic forum!? ich hoffe ich bin hier mit so einer sache nicht falsch... maddind
bei Josepino gibts auch ein kleines Forum, da kann man auch direkt mit dem Autor in Kontakt treten. bye Frank
"hat jemand schonmal etwas ähnliches programmiert." Ja, aber natürlich nicht auf nem PIC. Ich hab früher Assembler (8051) gemacht und kann Dir zustimmen, daß es schnell unübersichtlich wird, wenn man einfach drauf los schreibt. Man muß besonders in Assembler erstmal ein Grundgerüst (Ablaufplan) machen, ehe man losprogrammiert. Und vor allem muß man sich erstmal Aufbau- und Aufrufkonventionen für Funktionsmodule ausdenken und diese dann einhalten (welche Register werden für Parameterübergabe reserviert usw.). Man darf auch nie zuviel in einer Funktion gleichzeitg machen, sondern immer schön in Unterfunktionen aufteilen. Der PIC hat dabei Probleme, da er nur eine begrenzte Stacktiefe hat. Trotzdem sollte man nicht auf Modularität verzichten, sondern sie dann mit Macros als Inline-Funktion schreiben. Der exponentiell steigenden Komplexität kannst Du dadurch begegnen, daß Du alles in einer großen Statemachine laufen läßt. Nachfolgend ein Beispiel in C: http://www.mikrocontroller.net/forum/read-4-405548.html#new Da es dabei 4 verschiedene Tastenereignisse gibt, müssen die einzelnen States immer im 5-er Abstand sein und das Tastenereignis (1..4) wird dann dazu addiert, falls es auftritt. Somit lassen sich beliebige State-Wechsel realisieren, der Phantasie sind da keine Grenzen gesetzt. In Assembler macht man Statemachines mit einer Sprungtabelle, woraus dann durch den Wert des States die entsprechende Sprungadresse ausgewält wird (indirekter Sprung). Der 8051 hat dafür einen speziellen Befehl (JMP @A+DPTR). Beim PIC ist das kniffliger und vor allem muß man Sprünge über die Bankgrenze gesondert berechnen. Peter
bei www.sprut.de gibts es zwar asm code, aber der ist lange nicht so gestrickt... @peter vielen dank für die hinweise zum pic. arbeite schon ziehmlich lange mit dem f84 und f877/f876. maddin
Hallo, auf dieser seite habe ich ein wenig uhrencode in assembler gefunden, allerdings konnte ich das nicht als impression der indirekt adressierten variante aufnehmen, aber dafür sind die makros ganz nett http://www.domnick-elektronik.de/picasm.htm maddin
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.