Forum: Mikrocontroller und Digitale Elektronik Fehler bei winavr


von Chris F. (custodian)


Lesenswert?

Hallo zusammen,

bin neuling ...

ich habe einen seltsamen Fehler mit winavr (Gestern installiert)



es sollen auf einem pollin evulationboard 2.0 abwechselnt die led 
blinken
habe einen atmega644 verwendet.

die make datei scheint ok..


hier ist mein code:




#include <avr/io.h>
#include <util/delay.h>




int main ()




{
  DDRD = 0b01100000;


  while (1)
  {
  PORTD = 0b00100000;
  _delay=(100);
  PORTD = 0b00000000;
  _delay_ms=(100);
  PORTD = 0b01000000;
  _delay_ms=(100);
  PORTD = 0b00000000;
  _delay_ms=(100);

  }

}



jedesmal wenn ich compiliere meckert der compiler das etwas nicht mit 
der delay funktion stimmt...


error: lvalue required as left operand of assignment



kann jemand helfen ?

Chris

von !gast (Gast)


Lesenswert?

Chris Franke schrieb:
> ich habe einen seltsamen Fehler mit winavr (Gestern installiert)
>   _delay=(100);
Das ist nicht seltsam sondern ein eindeutiges Zeichen dass du ein C-Buch 
brauchst... Tu mal das = da weg!

von Chris F. (custodian)


Lesenswert?

!gast schrieb:
> Chris Franke schrieb:
>> ich habe einen seltsamen Fehler mit winavr (Gestern installiert)
>>   _delay=(100);
> Das ist nicht seltsam sondern ein eindeutiges Zeichen dass du ein C-Buch
> brauchst... Tu mal das = da weg!



OK, ich probiere es mal ..

vielen Dank .

Kannst Du mir ein C Buch empfehlen ?

Chris

von Uwe (de0508)


Lesenswert?

Chris,

ist der Fehler nun klar ?
Da steht ein "=", aber warum nur ?

von !gast (Gast)


Lesenswert?

Chris Franke schrieb:
> Kannst Du mir ein C Buch empfehlen ?
Brian W. Kernigham & Dennis M. Ritchie: The C Programming Language, 
second edition

bzw. auf deutsch

Brian Kernighan & Dennis Ritchie, "Programmieren in C", 2. Ausgabe(!),
Hanser-Verlag

Die "Bibel" der C-Programmierer von den Erfindern der Sprache persönlich 
verfasst.

von Chris F. (custodian)


Lesenswert?

Uwe S. schrieb:
> Chris,
>
> ist der Fehler nun klar ?
> Da steht ein "=", aber warum nur ?



bin C "Frischling .... ;-) "  deshalb ...

wohl ein Fehler - ich versuche es mal ohne das = Zeichen

von !gast (Gast)


Lesenswert?

streiche
>Kernigham
ersetze durch
>Kernighan

von Chris F. (custodian)


Lesenswert?

jetzt kommt die fehlermeldung



> "make.exe" all

-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Compiling C: main.c
avr-gcc -c -mmcu=atmega644 -I. -gstabs -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF 
.dep/main.o.d main.c -o main.o
main.c:11: warning: function declaration isn't a prototype
main.c: In function 'main':
main.c:18: warning: implicit declaration of function '_delay'

Linking: main.elf
avr-gcc -mmcu=atmega644 -I. -gstabs -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 -MMD -MP -MF 
.dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref 
-lm
main.o: In function `main':
main.c:18: undefined reference to `_delay'
make.exe: *** [main.elf] Error 1

> Process Exit Code: 2
> Time Taken: 00:02





was hat es damit auf sich ?



Chris

von Umpa Lumpa (Gast)


Lesenswert?


von Chris F. (custodian)


Lesenswert?

Umpa Lumpa schrieb:
> Bitte...
>
> 
http://www.galileocomputing.de/download/dateien/1942/galileocomputing_c_von_a_bis_z.pdf
>
> Gruß aus Heidelberg




Danke Schön ! das Buch kann ich gut brauchen !

von Krapao (Gast)


Lesenswert?

>>> main.c:18: undefined reference to `_delay'
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
int main()
5
{
6
  DDRD = 0b01100000;
7
  while (1)
8
  {
9
  PORTD = 0b00100000;
10
  _delay_ms(100);       // <==== statt _delay=(100);
11
  PORTD = 0b00000000;
12
  _delay_ms(100);
13
  PORTD = 0b01000000;
14
  _delay_ms(100);
15
  PORTD = 0b00000000;
16
  _delay_ms(100);
17
  }
18
}

von Chris F. (custodian)


Lesenswert?

und kann jemand etwas zu diesem Fehler sagen ...


nachdem ich die = Zeichen gelöscht habe bei _delay

kommt jetzt dieser Fehler ...


> "make.exe" all

-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Compiling C: main.c
avr-gcc -c -mmcu=atmega644 -I. -gstabs -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF 
.dep/main.o.d main.c -o main.o
main.c:11: warning: function declaration isn't a prototype
main.c: In function 'main':
main.c:18: warning: implicit declaration of function '_delay'

Linking: main.elf
avr-gcc -mmcu=atmega644 -I. -gstabs -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 -MMD -MP -MF 
.dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref 
-lm
main.o: In function `main':
main.c:18: undefined reference to `_delay'
make.exe: *** [main.elf] Error 1

> Process Exit Code: 2
> Time Taken: 00:02




Chris

von Chris F. (custodian)


Lesenswert?

es hat geklappt ...

vielen Dank Euch Allen  !!!


Chris

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.