Hi,
ich glaube, der Fehler liegt darin, dass du bei
die Variable paramtr veränderst?!Code:Iv_sound = paramtr &= 0x000F;
So sollte es gehen:
GrußCode:Iv_sound = (paramtr & 0x000F); I1_sound = (paramtr & 0xFFF0);
Chris
Hi,
ich glaube, der Fehler liegt darin, dass du bei
die Variable paramtr veränderst?!Code:Iv_sound = paramtr &= 0x000F;
So sollte es gehen:
GrußCode:Iv_sound = (paramtr & 0x000F); I1_sound = (paramtr & 0xFFF0);
Chris
Ja genau. In deinem Code verundest du paramtr mit 0x000F weist das dann paramtr zu und weist dann das Ergebniss Iv_sound zu.
Danke Chris. Das war superschnell und hilfreich. Ich hatte das schon mit ner Klammer probiert, aber eben dazu noch den Zuweisungsoperator.... der Fehler liegt darin, dass du ... die Variable paramtr veränderst?! ...
ABER : beimkommt trotzdem eins weniger raus (Kopie der Terminalausgabe) siehe Nachtrag unten :Code:Il_sound = (paramtr & 0xFFF0);HTML-Code:Beep Aufruf mit 2008 Beep 8 1999
Ach ja, "Vorrang und Assoziativität von Operatoren" im K&R - gibts ja ne Extra Tabelle die ich (natürlich - ähhh - leider) nicht im Kopf habe. Ist ja auch das vorletzte bedruckte Blatt . . ... In deinem Code verundest du ... weist das dann paramtr zu und weist dann das Ergebniss Iv_sound zu.
- - - - - - - -
Nachtrag: Die "Eins weniger" ist geklärt. Die Variable wird anschließend in einer 50µs-ISR runtergetickert - und die testweise UART-Ausgabe braucht eben auch Zeit. Mit "cli();" und "sei();" an der richtigen Stelle passiert das nicht mehr.
Danke für die Hilfe.
Geändert von oberallgeier (09.11.2013 um 16:48 Uhr) Grund: Assoziativität und andere unbekannte Dinge/ Nachtrag
Ciao sagt der JoeamBerg
Lesezeichen