suche "delay" für PIC(C18) alternative zu GCC

#1841474
Lesenswert?

#include "delays.h"                       // für die Warteschleife

Wir benutzen die Funktion Delay10KTCYx() aus der delay-Library. Da wir 
am Programmanfang die Header-Datei dieser Library eingebunden haben, 
kennt der Compiler diese Routine, und ihren Übergabeparameter. Die 
delay-Library ist eine fertig compilierte Lib-Datei im lib-Unterordner.

Die Funktion Delay10KTCYx() ist eine Warteschleife, ihre Laufzeit ist 
10000 Zyklen x übergebenem Wert. Da wir 100 als Wert übergeben, ergibt 
sich eine Laufzeit von 100x10000=1000000 Zyklen. 1 Million Zyklen sind 4 
Millionen Takte. Bei 20 MHz Takt ergibt sich 1/5 Sekunde Wartezeit.


    Delay10KTCYx(100);


Weiter Möglichkeieten:

Delay1TCY Delay one instruction cycle.
Delay10TCYx Delay in multiples of 10 instruction cycles.
Delay100TCYx Delay in multiples of 100 instruction cycles.
Delay1KTCYx Delay in multiples of 1,000 instruction cycles.
Delay10KTCYx Delay in multiples of 10,000 instruction cycles.

Alles andere ist eigentlich Compilerabhänging z.B. ob des Delay_ms() 
oder Ähnliches gibt. Ich kann dir leider nicht beantworten ob der C18 
das schon kann.
OP #1841552
Lesenswert?

hallo,
soweit verstanden. "delays.h" habe ich zur zeit eingebunden. wollte es 
nur einfacher haben.


     Delay100TCYx(1);

versuche mal ein Beispiel, hoffe das es in ordnung ist.

  1 x 100 = 100 Zyklen  entspricht 400 Takte

  bei 20MHz ist das 50.000 entspricht 0,00002s / 20ns

ups....   schreibfehler
              0,00002s  /  20µs
gruß
siegfried

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