Forum: Mikrocontroller und Digitale Elektronik MyAvr_Workpad Fehler - was läuft da schief


von Jörg (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
Ich habe mir da mal einen Code von www.elo-web.de zum Testen 
heruntergeladen, und wollte diesen nun auf nen Atmega8 brennen.


beim Versuch das Programm zu brennen bekomme ich folgende Fehlermeldung:

In file included  from Countdown.c:6:

c:/program files 
(x86)/myavrworkpadplusdemo/winavr/lib/gcc/../../avr/include/util/delay.h 
:90:3:  warning: #warning "Compiler optimizations disabled; functions 
from won't work as designed"
 In file included  from Countdown.c:8:

LED_display.h  In function 'delay_ms':
LED_display.h:62  62: error: 'for' loop initial declaration used outside 
C99 mode

Was läuft da schief?
Danke für eure hoffentlich hilfreichen Infos.

Gruß aus Freital..

von Oliver (Gast)


Lesenswert?

Solche Fragen wie "ich habe da Code aus dem Internet, aber der 
compiliert nicht, wer löst mein Problem?"

sind immer gern gesehen ;)

Lies die avrlibc-Doku zum Thema delay, da werden sie geholfen. Oder such 
hiner im Forum, oder bei google, das Thema kommt regelmässig wieder.

Und dann lies die Doku zu dem Programm, was du kompilieren möchtest. Da 
sollte alles wissenwerte dazu drinstehen.

Wenn nicht, lies such in der gcc-Doku mal nach C99.

Wenn du das alles gemacht hast, wirst du so viel geernt haben, daß dir 
vieles in Zukunft leichter von der Hand gehen wird.

Oliver

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jörg schrieb:
> beim Versuch das Programm zu brennen bekomme ich folgende Fehlermeldung:
Die Meldung kommt nicht vom Brennen, sondern vom Compiler!

> Was läuft da schief?
Du hast Code in der Header-Datei.
1
  for(uint16_t t=0; t<=ms; t++)
Probiers mal so:
1
  uint16_t t;
2
  for(t=0; t<=ms; t++)

Und dann war da noch die Warnung:
> delay.h
> #warning "Compiler optimizations disabled;
>           functions won't work as designed"
Die sagt eigentlich schon alles....


Der gefällt mir:
1
int main (void);
2
3
int main() 
4
{
5
  ...

Das funktioniert nur, wenn deine number kleiner als 10000 ist:
1
  Digit_X000 = number/1000;    // Digit_X000


Und beim Rest vom Code bin ich mir noch nicht so ganz sicher...

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.