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
Tja, da wird dir wohl nur die Alternative offenstehen, entweder weiterhin zu verzweifeln oder dich um eine passende Programmierung (aus deiner Hand) für den µC zu kümmern. Matlab läuft doch auf dem PC, gelle? Und zwischen PC und dem LPC1768 müßte irgend eine Strippe verlaufen, über welche sich beide Geräte miteinander verständigen können - ja? Und welche? Und was kann die Firmware im µC? Und gibt es ein Übertragungsprotokoll? Und hast du es gelesen? Oder.. sollst du eine Firmware für den LPC1768 schreiben, mittels derer man irgendwelchen Schnickschnack von Matlab auf den Ports des µC stattfinden lassen kann? W.S
Kauf dir ein LPCXpresso1769, bei Watterott für ein Apple und ein Ei zu bekommen und lade dir die IDE von NXP herunter, kostenlos und hilft. Zusätzlich könnte es interessant sein LPCOpen zu verwenden, so heisst neuerdings CMSIS bei NXP. Unter den Beispielprogrammen findest du auch die Verwendung der PWM! Auch interessant könnte es sein den PC über Ethernet mit dem LPCXpresso zu verbinden, wegen der Geschwindigkeit!
:
Bearbeitet durch User
Hellmut Kohlsdorf schrieb: > Kauf dir ein LPCXpresso1769, bei Watterott für ein Apple und ein Ei zu > bekommen und lade dir die IDE von NXP herunter, kostenlos und hilft. Wenn du ein Apple bei Wattenrot dafür hinblätterst, verzichten die sogar großzügig auf das Ei...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.