Fehlermeldung in AVR-Studio

Gast #2635310
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?
Gast #2635324
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
Gast #2635346
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?

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