Gast
#14287
Salut, mit dem Vorsatz, in Timer-relevanten Routinen (z.B. RC5-decoding) betreffende Immediates per Formel über die Konstante "XTAL" zu berechnen, bin ich auf Probleme gestoßen. Und zwar ist mir aufgefallen, daß teilweise unerwartete Werte aus den Berechnungen hervorgegangen sind, die evtl. mit der Rechengenauigkeit des Assemblers zu tun haben. Mein Assembler ist tavrasm 1.17 (Unix), in den Docs hab ich zu dem Thema leider gar nichts gefunden. Ein Beispiel: ldi temp, (XTAL / (UART_BPS * 16)) - 1 funktioniert. Aber es gab etliche andere Fälle, wo ähnliche Formeln versagt haben. Ich habe dann das entsprechende Ergebnis per Hand eingetragen und es klappte. Sorry, daß ich jetzt kein Beispiel für das Gegenteil geben kann, aber in meinen Sources find ich gerade nichts mehr. Hab alles schon durch Werte ersetzt. ;( Aber meiner Erinnerung nach waren es sogar simple Divisionen. Weiß jemand, mit welcher Genauigkeit der Assembler Immediates berechnet? Oder kann mir sonst jemand einen allgemeinen Tip geben? Ausführliche Klammersetzung hat auch nicht zum Erfolg geführt. Ein Ziel dieser ganzen Sache ist es, im Source verstreute Werte durch einfaches Ändern einer Konstante "XTAL" anzupassen. Eben z.B. um das Adaptieren der RC5-Decoderroutine an verschiedene Frequenzen zu erleichtern. Danke für Eure Hilfe! Mark H. -- http://markh.de