Gast
#4010862
Hallo zusammen :) Ich bin momentan ein bisschen verzweifelt und hoffe, dass mir hier einer weiterhelfen kann. Ich habe folgendes Problem: Im zuge meines aktuellen Praktikums muss ich 2 Schrittmotoren mit einem mbed Lpc1768 über ein Matlab GUI ansteuern. Hierfür hab ich mir folgende Library von der mbed Seite geladen: http://developer.mbed.org/cookbook/Interfacing-with-Matlab Was ich also nun brauchte waren 2 Rechtecksignale an 2 Pins mit 50% Duty Cycle und variierbaren Perioden. Mein erster Plan war es die PwmOut() Funktion etwas zu entfremden und anstatt die Duty-Cycles einfach die Perioden zu verändern. Leider teilen sich auf dem Lpc1768 alle PWM-Pins die gleiche Periode was diese Variante also unnütz machte. Mein 2. Plan war es dann über einen Matlab timer und nem DigitalOut den jeweiligen Pin zu toggeln. Leider dauert so ein Set/Reset Zugriff über matlab ca 40ms was mir eine max. Periode von ca 10Hz ermöglicht. Ich brauche allerdings um die 70kHz max. Jetzt ist die einzige Idee die ich noch habe den Hardwaretimer zu nutzen (oder den Hardware Ticker über den ich durch meine Internetrecherche erfahren hab). Leider hab ich absolut keine Ahnung wie ich die Register mithilfe von Matlab anspreche und finde auch keine Beispielcodes oder ähnliches was mir helfen könnte :( Habe z.B. dieses Tutorial gefunden http://developer.mbed.org/media/uploads/robt/mbed_course_notes_-_timers_and_interrupts.pdf Leider ist es nur C++ Code den man so nicht umsetzen kann (alleine "Ticker" ist Matlab völlig unbekannt)... Weiterhin hab ich mir auch die M-files zu den Library Funktionen wie PwmOut oder DigitalOut angeguckt (die müssen ja irgendwie die Hardware setzen) aber auch hier Blick ich nicht wirklich durch. Meine einzige Vermutung bis jetzt ist, dass ich vielleicht die RPCFunction() Funktion nutzen müsste. Aber die Tutorials die ich dazu finde versteh ich leider auch nicht. Jetzt also meine Frage: Könnte mir irgendwer erklären wie ich so nen Hardware Timer mit Interrupt in Matlab initialisiere? Oder generell wie ich in die Register schreibe? Bei C war das alles viel einfacher man musste nur die library ranhängen und konnte die Register mit Registername = zu_setzende_bits; direkt ansprechen... Ich wäre über Hilfe und Rätschläge wirklich sehr dankbar da ich noch nicht so lange mit Matlab arbeite (die Tutorials im Internet für Matlab + mbed mehr als rar sind) und mit dem Projekt so nicht weiter komme. Mit freundlichen Grüßen Der Verzweifelte