Forum: Compiler & IDEs Delay functin


von Gizmo (Gast)


Lesenswert?

Hi

ich arbeite zur Zeit mit dem STK500 einem ATMEGA32 und Programmers
Notepad mit GNU GCC. Meine Frage ist nun, gibt es eine vernünftige
Delay function für AVR GCC ?
ich habe in der avr libc keine Delay function gefunden.

schon mal im Vorraus danke für euere Hilfe

von OldBug (Gast)


Lesenswert?

...dann hast Du die avr-libc Doku sicherlich gar nicht oder nicht
richtig gelesen!

von Gizmo (Gast)


Lesenswert?

die Delay.h ist nicht in meinem header file ordner
kann man die einzelnen header dateien der libc auch irgendwo getrennt
voneinander herunter laden ?

von OldBug (Gast)


Lesenswert?

Wenn Du ein aktuelles WinAVR bzw eine aktuelle avr-libc verwendest, dann
ist die delay.h ganz sicher im Includepath!

Einfach irgendwelche Header runterladen und nutzen dürfte, ohne die
passende Library dazu, in den meisten Fällen in die Hose gehen. Bei der
delay.h könnte es so grade noch klappen, ist aber nicht ratsam!

von Gizmo (Gast)


Lesenswert?

irgendwie hab ich so meine Probleme mit der _delay_ms function aus der
delay.h hier mein code:

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

int main(void)
{
  unsigned char i;
  int j;
  int count;
  double wait;


void _delay_ms(double __ms);

  DDRC=0xff;
  PORTC=0xff;
  count=0;     //count mit 0 initialisieren
  wait=60000;

  for(j=0; j<=7; j++)
  {

    cbi(PORTC,count); //LED aktivieren
    count++; // LED Nummer inkrementieren

    _delay_ms(250);

  }




  /* Endlosschleife */
  for (;;);

  return 0;
}

der compiler meint undefined reference to _delay_ms ich habe die
delay.h eingebunden wo liegt der Fehler ?

von Volkmar (Gast)


Lesenswert?

Warum hast Du die folgende Zeile innerhalb von main?

   void _delay_ms(double __ms);

Die Funktion wird doch im Header-File deklariert, dann brauchst/darfst
Du es nicht noch mal  (und dazu unvollständig) tun.

Volkmar

von Gizmo (Gast)


Lesenswert?

wenn ich die besagte Zeile auskommentiere kommt die Fehlermeldung immer
noch.
sorry bin c neuling

von Gizmo (Gast)


Lesenswert?

muss man im Makefile angeben welche header man benutzen möchte ?
ich dachte immer es reicht wenn man die headerfiles über include im
quellcode einbindet.

von Rufus T. Firefly (Gast)


Lesenswert?

"wenn ich die besagte Zeile auskommentiere kommt die Fehlermeldung
immer
noch."

Die Fehlermeldung. Aha. Welche?

Du musst im Makefile nur angeben, welche Sourcefiles (*.c/*.cpp)
verwendet werden - und gegebenenfalls, welche Libraries zusätzlich zu
den Standardlibraries zu linken sind.

von Jörg Wunsch (Gast)


Lesenswert?

Zu alte Version der Bibliothek?

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.