-
-
Erfahrener Benutzer
Robotik Einstein
Funktion __delay_cycles();
Hallo Leute,
ich bin gerade dabei, ein Programm vom IAR EWAAVR Compiler auf AVR-GCC zu übertragen.
Da kommt die Funktion __delay_cycles(X) vor, die es so ja in GCC auch in der delay.h nicht gibt.
Wer kennt den EWAAVR Compiler und kann mir sagen, ob diese Funktion genau um eine bestimmte Anzahl von Taktzyklen verzögert? Ich habe keine Lib gesehen, die für diese Funktion eingebunden wurde. Wo kann ich evtl. nachlesen, wie diese Funktion arbeitet?
Gruß Dirk
-
Da IAR das Rad ja nicht jedes Mal neu erfinden wird, sollte der folgende Link auch für den AVR gelten:
http://tech.groups.yahoo.com/group/msp430/message/32543
-
Erfahrener Benutzer
Robotik Einstein
Hallo bb_stefan,
danke, das hat geholfen.
Dann könnte ich doch in GCC die Funktion _delay_loop_2 (uint16_t __count) aus der delay_basic.h nehmen. Oder muss ich was eigenes machen?
Gruß Dirk
-
Ich kenne mich leider weder mit GCC noch mit AVRs aus.
Ich persönlich wäre mit solchen _delay_cycle Sachen eher vorsichtig, je nachdem was Du damit erreichen willst (Genauigkeit, etc.). Vorallem da es so unterirdisch schlecht dokumentiert ist, weiß man nie, was dabei tatsächlich für eine Verzögerungszeit rauskommt.
Wenn's auf Genauigkeit ankommt, würde ich immer zu einem Timer raten!
-
Erfahrener Benutzer
Roboter-Spezialist
Ich habe hier mal im Forum edelay.h veröffentlicht, das funktioniert zu 100% und ist genau das was du suchst.
-
Erfahrener Benutzer
Robotik Einstein
Hallo s.o.,
deine edelay.h ist echt gut.
Wenn die Funktion __delay_cycles() des IAR-Compilers genau so funktioniert, habe ich ja einen 1:1 Ersatz.
Gruß Dirk
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen