mikrocontroller.net

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


Autor: Sven_Geisenhof (Gast)
Datum:

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

Autor: spk (Gast)
Datum:

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

Autor: Sven_Geisenhof (Gast)
Datum:

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

Autor: Werner W. (toemi)
Datum:

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

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

Autor: Sven (Gast)
Datum:

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

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.