MyAvr_Workpad Fehler - was läuft da schief

Gast #2639644
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..
Angehängte Dateien:
Gast #2639655
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
Moderator (Firma: Titel) Persönliche Seite #2639664
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren