Forum: Mikrocontroller und Digitale Elektronik 5us Delay - fujitsu fr50 91360


von Sven_Geisenhof (Gast)


Lesenswert?

Hallo zusammen,

MC ist für mich ziemliches Neuland

ich habe hier den oben beschriebenen Controller mit Softune

folgendes Problem:

ich brauche eine Wartezeit von 5us.. wie kann ich das in C schaffen?!

delay-funktion? nop-funktion? sleep?

wenn euch Infos fehlen einfach meckern ;)

MfG
Sven Geisenhof

von spk (Gast)


Lesenswert?

Hallo Sven,

ich würde sagen solche Wartezeiten mit nops hinzutricksen ist evil ;-). 
So eine MCU bringt doch viele schöne Peripherals mit, mit denen man 
sowas machen kann.

Die eigentlich erste Frage wäre wofür Du die 5 us brauchst. Willst Du 
einfach einen Pin alle 5 us toggeln. Dann kannst Du das sicherlich 
mittels Output Compare Unit erschlagen.

Soll die Applikation aber wirklich 5 us warten hilft dir der Reload 
Timer. Implementiere Dir eine Funktion sleep(), die als Parameter die 
Zeit in einer sinnvollen Einheit hat. In sleep berechnest Du dann damit 
den Wert, der den CLKP Taktzyklen/gegebener Wartezeit entspricht 
(TMRLR). Konfigurierst TMCSR entsprechend (TMCSR:CSL so das die Zeit 
passt, TMCSR:RELD=0, TMCSR:INTE=0, TMCSR:CNTE=1, TMCSR:TRG=1). Dann 
wartest Du in einer while-Schleife bis TMCSR:UF=1 ist. Hinterher noch 
ein bisschen aufräumen - fertig.

Wenn Du in der Zwischenzeit die MCU nicht warten lassen willst kannst Du 
auch noch den Interrupt des Reload Timers aktivieren und dann in der 
Interrupt Service Routine das ganze behandeln und die MCU macht in den 
us bis zum Interrupt was sinnvolles ;-).

Viele Grüße
spk

von Sven_Geisenhof (Gast)


Lesenswert?

ja hallöchen erstmal :)

vielen dank für die tips.. ich "versuche" das mal umzusetzen

die wartezeiten benötige ich zum schalten 2er pins :) bzw zur 
kommunikation mit einem sensor ;)

beste grüße
sven geisenhof

von Werner W. (toemi)


Lesenswert?

Hallo Sven,
wie kommst Du denn zu dem 'alten' MB91360?
Wie auch immer, Beispiele findest Du hier:
http://mcu.emea.fujitsu.com/mcu_product/detail/MB91F362GBPVSR.htm#software

Dennoch empfehle ich dir für neue Projekte auf die MB91460 Serie (32bit) 
oder 16FX/MB96xxx Serie (16bit) zu wechseln. Die bieten mehr 
Performance, bessere Energibillanz und bessere Ressourcen:
http://mcu.emea.fujitsu.com

Gruß,
Toemi

von Sven (Gast)


Lesenswert?

so hallo nochmal,

also das board war halt vorhanden und deshalb wird es genutzt :D

bin jetzt auch des problems herr geworden :)

im "serieneinsatz" wird dann ein aktueller fujitsu eingesetzt aber zum 
einarbeiten in die materie MC hat der "alte" gereicht ;)

PS: die Umsetzung ist hier bei mikrocontroller.net schon realisiert für 
mein Problem und zwar "EVIL" mit nops ;)

grüße

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.