hi all ich habe ein Problem mit folgenem Code:
1 | uint32_t read_R (void)
|
2 | {
|
3 | uint32_t Wert = 0;
|
4 |
|
5 | ADMUX &= ~(1<<MUX0);
|
6 | ADCSRA |= (1<<ADSC);
|
7 | while ( !(ADCSRA & (1<<ADIF))) {}
|
8 | Wert += ADCL;
|
9 | Wert += (ADCH * 0x100);
|
10 |
|
11 | ....
|
12 | }
|
(ist jetz nur ein ausschnitt)
(Optimierung: -0s)
Wenn ich diese stelle mit dem AVR Studio simuliere und die variable Wert
beobachte, so wird sie nicht auf 0 gesetzt, obwohl das in der
deklaration geschieht. Das aufaddieren der Werte von ADCL und ADCH
funktioniert ebenfalls nicht...
(Optimierung: -00)
Hier funktioniert alles einwandfrei, da die deklarationszeile nicht
wegoptimiert wurde. auch die Ausgaben des ADC werden aufaddiert, wie ich
es will (nur so ist der code halt doppelt so groß wie oben...)
Gibt es da abhilfe?
Was haltet ihr vom AVR Studio als Programmieroberfläche und compiler?
Gibt es eine möglichkeit meinen µC Code mit µVision3 (Keil) zu schreiben
und zu kompilieren?
Finde ihn dort nämlich nicht bei der Device Auswahl...
geht übrigends um nen Atmel Atmega 8535.
Vielen Dank schonmal für eure Antworten!
Gruß
Stefan