www.mikrocontroller.net

Forum: Compiler & IDEs Delay functin


Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: OldBug (Gast)
Datum:

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

Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Volkmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich die besagte Zeile auskommentiere kommt die Fehlermeldung immer
noch.
sorry bin c neuling

Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu alte Version der Bibliothek?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.