Hallo, Ich muss mich für die Uni mit einem µC auseinandersetzen und komme zur Zeit einfach nicht weiter. Aufgabe: einen EKG-Simulator bauen Ich möchte ein diskretisiertes EKG-Signal per PWM mit einem µC ausgeben und schicke es dann wieder über einen Tiefpass, um das Signal analog vorliegen zu haben Mein Problem ist nun, dass ich jeden Array-Wert meines EKG Signals 160 PWM-Durchgänge lang behalten möchte und dann soll der nächste Array-Wert in die PWM geholt werden. Wie schaffe ich es nun, der PWM zu signalisieren, wann sie sich den neuen Array-Wert holen soll? Kann man da irgendwie bei jedem PWM Durchgang einen Interrupt setzen und dann die Interrupts zählen oder so? Kenne mich da einfach noch kaum aus und weiß nicht, was möglich ist... Ich programmiere einen µC der Familie MSP430, genauer den F2274. Viele Dank für jegliche Hilfe!
"Diskretisiert" soll wohl bedeuten, dass dir irgendwelche Punkte des EKG-Verlaufs in einem Zeitraster vorliegen. Warum sollen diese, (von einem lebenden Testobjekt) sich doch fortwährend ändernden Daten, 160 mal wiederholt werden, anstatt den Verlauf darzustellen? Entweder du begreifst die D/A-Wandlung mit PWM nicht, oder ich versteh dein Anliegen nicht.
> Warum sollen diese, (von einem lebenden Testobjekt) > sich doch fortwährend ändernden Daten, 160 mal > wiederholt werden, anstatt den Verlauf darzustellen? Ich schätze mal, damit er aufs Timing der Datenpunkte hinkommt. Ich wollte ja schon schreiben: > Kann man da irgendwie bei jedem PWM Durchgang einen Interrupt setzen Natürlich! Nur weil ein Timer auch noch einen Pin rumwurschtelt, vergisst er ja nicht auf seine Interrupts. Aber dann hab ich gelesen, dass er einen MP430 nimmt. Ich bin mir zwar ziemlich sicher, dass das bei dem genauso ist (alles andere wäre wohl dämlich zu nennen), aber mit dem MP hab ich nun mal keine Erfahrung. swaechter, probiers halt einfach aus. Timer soll PWM erzeugen und in der ISR toggelst du eine LED. Plain and simpel. Danach weißt du es genau.
TI-datasheet zum MSP430F22x4: * Timer_A3 * Timer_A3 is a 16-bit timer/counter with three capture/compare * registers. Timer_A3 can support multiple capture/compares, * PWM outputs, and interval timing. Timer_A3 also has extensive * interrupt capabilities. * Interrupts may be generated from the counter on overflow * conditions and from each of the capture/compare registers. Wird wohl gehen!
swaechter schrieb: > Mein Problem ist nun, dass ich jeden Array-Wert meines EKG Signals 160 > PWM-Durchgänge lang behalten möchte und dann soll der nächste Array-Wert > in die PWM geholt werden. Nachteil von dem Verfahren ist, dass eine Treppenfunktion als analoges Ausgangssignal herauskommt. Besser wäre eine lineare Interpolation zwischen den Stützstellen. Realisieren läßt sich das, indem bei jedem PWM-ISR ein Phasenackumulator hochgezählt und damit der neue PWM Schwellwert festgelegt wird.
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.