Forum: Mikrocontroller und Digitale Elektronik PIC32 delay gesucht


von Pic Starter (Gast)


Lesenswert?

Hallo Leute,

kennt ihr eine lib für PIC32 die ein delay implementiert?

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Hallo,

ich nutze den Core Timer dafür. Die 80000000 ist der eingestellte Takt, 
je nach eigener Konfiguration anpassen.


void Delayms(unsigned int t)
{
    unsigned int tWait, tStart;

    tWait=(80000000/2000)*t;
    tStart=ReadCoreTimer();
    while((ReadCoreTimer()-tStart)<tWait);        // wait for the time 
to pass

}

void Delayus( unsigned int t)
{
  // note that 1 core tick = 2 SYS cycles (this is fixed)
  int us_ticks=(80000000/1000000)/2;
  WriteCoreTimer( 0 );
  while( ReadCoreTimer() < t*us_ticks );
} // END delay_us()


Gruß Sascha

von Purzel H. (hacky)


Lesenswert?

>kennt ihr eine lib für PIC32 die ein delay implementiert?

Delay? Schmeiss das Zeug in die Tonne. So wird das eh nie etwas. Delays 
sind strikte tabu. Entweder Timer oder Systemticks zaehlen oder gar 
nicht.

von Lästermaul (Gast)


Lesenswert?

Hay ihr Zwei von Drei...
Gibt durchaus auch bei den Multitasking-MCs gute Gründe für ein Delay.
Z.B. erst mal Display initialisieren, bevor die Tasks initialisiert 
werden.

von M. J. (manfred-64)


Lesenswert?

Zwei von Drei schrieb:
> Delays
> sind strikte tabu.

Da ich das wie Lästermaul (und sicher viele Andre) halte:
Muss ich jetzt ins Gefängnis oder werde ich erschossen :)


Zwei von Drei schrieb:
> Systemticks zaehlen

Wie machst Du das das nicht doch nur ein simples Warten wird
oder nennst Du das dann einfach nur anders :D

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Back to Topic, bevor es wieder ausufert :)

Der Threadersteller hat eine Antwort bekommen und gut ist.

Kann ja sein, das er nur Led's blinken lassen will, dafür reicht ein 
Delay :)

Gruß Sascha

von Purzel H. (hacky)


Lesenswert?

>Zwei von Drei schrieb:
>> Systemticks zaehlen
>
>Wie machst Du das das nicht doch nur ein simples Warten wird
>oder nennst Du das dann einfach nur anders :D

Naja. Im Main wird gezaehlt. Und jeweils alles andere auch noch 
aufgerufen. Alternativ koennte man in den Sleep.

von Purzel H. (hacky)


Lesenswert?

>Kann ja sein, das er nur Led's blinken lassen will, dafür reicht ein
Delay :)

Ahem... Leute, die einen PIC32 anfassen sollten keine LED's mehr blinken 
lassen muessen, sonst wird das auch nix.

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

> Ahem... Leute, die einen PIC32 anfassen sollten keine LED's mehr blinken
> lassen muessen, sonst wird das auch nix.

Warum? Mag für manche als Einstieg zwar schwer sein, aber schlecht ist 
es nicht. Gibt auch viele die mit einem ARM anfangen. Das sollte kein 
Grund sein.

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.