Forum: Compiler & IDEs AVR Studio 6 Compiler Problem / OLED 128x64


von Ray (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich bin am verzweifeln mit diesem anscheinlich simplen Problem:
Alles genannte im Anhang und zur Verbreitung gewünscht
Ein Testprogramm für ein 128x64 OLED (SSD1306)

- Ich benutze ein OLED (SSD1306) 128x64 im Hardware SPI Modus.
- Atmega 328P - nackt, nur SPI, Sensor, Spannungst. und das Display. 
8MhZ
- u8glib v.1.10 graphische C libraries (sehr zu empfehlen, auch 
verfügbar für Arduino) von 
http://code.google.com/p/u8glib/downloads/list
- Ein TSIC 206 Temperatursensor PWR - PC3  Data - PC2  GND-GND
- Einen Spannungsteiler - PC4.
- AVR Studio 6 1996 auf Win7 x64 mit 3.4.1.830 - GCC  4.6.2 (AVRGCC - 
3.4.1.95).

Erwartet:
*********
-Spannungswert und Temperaturwert aufs OLED ausgeben.

Real:
*****
-Spannungswert wird ausgegeben;
-Temperaturwert wird ausgegeben, jedoch falsch. - Funktionierende .c 
(LCD.c) für ein HD44780 LCD 8x2; - jedoch nur -Os Compiler Optimierung.

Wo ca. +24°C angezeigt werden sollen werden ~ -24.2° angezeigt. Beim 
berühren des Sensors steigt der Wert, wechselt aber sporadisch bei 
anderen Kommawerten auf 6153,5 und 3152,2 - und immer diese zwei Werte.
- Wird -o3 als Optimierungsoption gewählt verschwindet das Wechseln in 
einem Temperaturbereich von +-10° , zeigt jedoch genauso den falschen 
Wert von -24,x..-23,x..-22,x..usw an.

Symptome:
*********
- Der Compiler optimiert etwas am Code was zu einem falschen Ergebnis 
führt. Einfache Counter und Ausgaben funktionieren einwandfrei, ebenso 
mit double Variablen und mit der Benutzung von dtostrf(); z.B. dauerhaft 
+0.2

- Compileroptionen für die u8glib und für das Projekt:
   -Os , -fdata-sections, (-prepare for garbage collection -garbage 
collect +sollte ja keine Auswirkungen auf den generierten Code haben)
Prinzipiell diese Optionen: http://code.google.com/p/m2tklib/wiki/as6

-Bei dem LCD hat alles einwandfrei funktioniert. Also Tsic.c & h (ebenso 
lcdlib.h & .c) müssten in Ordnung sein. Die Berechnung des 
Temperaturwerts ist auch richtig.

- Ich habe einige Attribute geändert und Variablentypen, jedoch leider 
ohne Erfolg. - oled.c

Wo könnte der Fehler liegen?? Die HW-SPI sollte nicht stören. 
Hardwareseitig ist alles in Ordnung.


Vielen vielen Dank im Voraus!!

von Ray (Gast)


Lesenswert?

Das Problem muss beim Messen der Temperatur sein.
Fixe Werte für &temperatur (in oled.c) werden richtig angezeigt...

Hat jemand eine Idee??

von Ray (Gast)


Lesenswert?

Fehler gefunden - hat sich erübrigt!

Dateien sind in Ordnung. Viel Spaß!

Für alle die Interesse haben, (aktuelle) Bibliotheken von:

- http://code.google.com/p/u8glib/downloads/list
- http://www.mikrocontroller.net/attachment/highlight/49058
- http://www.mikrocontroller.net/attachment/highlight/27606

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
Noch kein Account? Hier anmelden.