Achnee???
Du willst also mit (@0<<2) nur den (Macro-) Parameter übernehmen??
Warum schiebst du ihn dann um 2 Bit nach links? (<<2) Das entspricht
einer Multiplikation des Parameters mit 4. Das geht natürlich nur gut,
solange der Parameter 6 Bit nicht überschreitet, also kleiner als 64
ist.
Wenn du in einem Macro lediglich den Parameter übernehmen willst, dann
reicht @0 für den ersten Parameter, @1 für den zweiten usw. Musst du
einen Parameter aufgrund seiner Größe auf zwei Bytes aufteilen, dann
helfen dir die Funktionen low() und high(), sind es mehr als 2 Bytes,
dann gibt es auch Funktionen, ist aber alles in der Hilfe zum
AVR-Studio erklärt.
> Bevor ich aber ne'n Taschenrechner herhole und
> da wie'n irrer rumrechne, bediene ich mich doch lieber eines
> solchen Tools.
Wiso wie ein irrer rumrechnen?
Wenn du den Zusammenhang verstehst, dann ist das eine einfache
Multiplikation, die man meist auch ohne Taschenrechner lösen kann
(falls vman nicht zur P.I.S.A.-Generation gehört). Falls man solche
Tools nutzt, weil man den Zusammenhang nicht versteht, dann erkennt man
die Zusammenhänge nie und macht sich lediglich von Anderen abhängig (wie
den Autoren dieser Tools). Gut, man muss das Rad nicht jedesmal neu
erfinden, aber es ist vorteilhaft, wenn man es versteht...
> Ich denke, was mir nicht ganz klar ist und wo der Fehler liegen
> könnte, ist die Übergabe der Werte an C0 mit *(@0<<2)* das hab ich
> so aus einer anderen Schleife übernommen und verstehen tue ich das
> auch nicht, weil's mir noch nie einer erklärt hat...
Das ist ein gutes Beispiel für das, was ich meine...
Es bringt nix, anderer Leute Wissen (Programmcode) einzusetzen, ohne es
selbst zu verstehen.
Du hast Teile des Macros (unverstanden) aus einem fremden Quellcode
abgeschrieben. Hättest du diese Information aus der Hilfe zum
AVR-Assembler, dann hättest du auch die Erklärungen dazu lesen können
und hättest sogar eine Chance, die Zusammenhänge zu verstehen.
...hätte... - Gut, hätte ich Enten gekauft wären die Hühner nicht
ersoffen... ;-)
Sorry, ist nicht bös gemeint...
Und schau dir trotzdem mal den Umgang mit dem Timer-Interrupt an, Delay
(Warteschleifen) ist bei größeren Verzögerungszeiten immer eine
Sackgasse.
Bit- & Bytebruch...
...HanneS...