Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung in AVR-Studio


von Obi (Gast)


Lesenswert?

Ich habe schon wieder eine Fehlermeldung in AVR-Studio:

too many arguments to function '_delay_ms'

Mein Programm ist folgendes:

-----------------------------------

#ifndef F_CPU
#define F_CPU 16000000               //Quarz 16MHz
#endif

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

// Frequenzen
#define ZEIT1 0,5
#define ZEIT2 0,7
#define no1 500/(2+ZEIT1)
#define no2 500/(2+ZEIT2)

int main(void) {

DDRD = 0b11111111;

char i;

//SUMMER = PD7
//LED 1  = PD6
//LED 2  = PD5


while (1) {

  i=0;

  while (i <= no1) {
    PORTD = 0b00000011;
    _delay_ms(ZEIT1);
    PORTD = 0b00000001;
    _delay_ms(ZEIT1);
    i++;
  }

  i=0;

  while (i <= no2) {
    PORTD = 0b00000101;
    _delay_ms(ZEIT2);
    PORTD = 0b00000001;
    _delay_ms(ZEIT2);
    i++;
  }

}

return 0;
}

-------------------------------

Was ist nun der Fehler?

von Peter II (Gast)


Lesenswert?

Obi schrieb:
> Was ist nun der Fehler?

floatzahlen werden mit . nicht mit , geschrieben.

von Bastelmensch (Gast)


Lesenswert?

> #define ZEIT1 0,5
> #define ZEIT2 0,7

Ich tippe mal drauf das dort ein Punkt anstatt eines Kommas einzufürgen 
ist....

von Vorkauer (Gast)


Lesenswert?

Du versuchst der _delay_ms() 2 Parameter zu übergeben.
1
#define ZEIT1 0,5
2
#define ZEIT2 0,7
daraus wird:
1
_delay_ms(0, 5);
Da kann man, glaube ich, schon was sehen.

_delay_ms erwartet aber kein float sondern ein double.
aus util/delay.h
1
void
2
_delay_ms(double __ms)

Floatzahlen werden auch nicht mit einem Komma geschrieben, sondern einem 
Punkt.

mfg

von Vorkauer (Gast)


Lesenswert?

Vergiss meinen Quatsch: double ist float mit doppeltem 
Speicherverbrauch.
Sorry

von Obi (Gast)


Lesenswert?

ok das hat geklappt, hab punkte statt kommas gesetzt. jetzt zeigt er 
aber an: missing separator

von Peter II (Gast)


Lesenswert?

Obi schrieb:
> jetzt zeigt er
> aber an: missing separator

in welcher zeile?


Vorkauer schrieb:
> Vergiss meinen Quatsch: double ist float mit doppeltem
> Speicherverbrauch.
> Sorry
nicht auf einem atmel

von Obi (Gast)


Lesenswert?

es steht keine zeile dabei. es steht zwar davor .elf:1: aber damit kann 
ich nichts anfangen, denn in der .elf datei steht in der ersten Zeile 
nur folgendes:
ELF          S        4     …   4    (      T           ´   ´ 
”8 ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B ”B 
”B ”B ”B ”B $¾ÏïÐáÞ¿Í¿”D ”X ”  Cà é1àK¹„ï‘àù1—ñ÷—Ù÷¸„ï‘àù1—ñ÷—Ù÷ïÏø”ÿÏ 
ˆ   (                   V  ¹   main     R       9       •   ˆ   ° 
int „   |E   a   s   \   n   W   !   h   |   g:    /   o²   Ì   n²    
p:   L   q²    E     R   3   ˆ   °   

was ist das nun?

von Obi (Gast)


Lesenswert?

hab den fehler, ich hab irgendwie eine andere .elf datei in dem ordner 
gehabt und dann hat er die eigentliche mit dem anderen verwechselt. 
jetzt zeigt er keine fehler mehr an.

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.