Forum: Mikrocontroller und Digitale Elektronik Brücke zwischen Pin und LED herstellen - für zwei unterschiedliche Timer


von Antonowan225 (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend,

zurzeit arbeite ich am folgendem Projekt:
Beitrag "MSP430 F5529 Wobbel-Generator"

In diesem Zusammenhang möchte folgendes realisieren:

Dem User Guide entnehme ich, dass Timer A1 "von Natur aus" an P2.0 und 
Timer B0 an P7.4 ihre jeweiligen Ausgangssignale abgeben. jetzt möchte 
das Ausgangssignal von Timer A1 und Timer B0 durch einen gemeinsamen Pin 
übertragen.  Gleichzeitg soll eine Brücke zur roten LED an P4.7 
realisiert werden. Ich hatte ursprünglich nur eine Brücke zw Timer B0 
P7.4 und LED realisiert. Habe euch dazu das Programm angehängt. Doch nun 
weiß ich nicht weiter.

Vielen Dank im Voraus.

MfG

von Wolfgang (Gast)


Lesenswert?

Antonowan225 schrieb:
> Dem User Guide entnehme ich, dass Timer A1 "von Natur aus" an P2.0 und
> Timer B0 an P7.4 ihre jeweiligen Ausgangssignale abgeben. jetzt möchte
> das Ausgangssignal von Timer A1 und Timer B0 durch einen gemeinsamen Pin
> übertragen.

Und auf welchen Timer soll dieser gemeinsame Pin dann hören?
Spätestens wenn Timer A1 und Timer B0 unterschiedlicher Meinung sind, 
hast du ein Problem.

von Antonowan225 (Gast)


Lesenswert?

Wolfgang schrieb:
> Und auf welchen Timer soll dieser gemeinsame Pin dann hören?
> Spätestens wenn Timer A1 und Timer B0 unterschiedlicher Meinung sind,
> hast du ein Problem.

ich habe in meinem Programm zwei verschiedene Modi. Modus == 1 bedeutet, 
dass Timer B0 arbeitet und Timer A1 gestoppt ist; Mouds == 2 bedeutet, 
dass Timer A1 arbeitet und Timer B0 gestoppt ist. Siehe Funktion void 
Modiwechsel (void)

von Antonowan225 (Gast)


Lesenswert?

Antonowan225 schrieb:
> ich habe in meinem Programm zwei verschiedene Modi. Modus == 1 bedeutet,
> dass Timer B0 arbeitet und Timer A1 gestoppt ist; Mouds == 2 bedeutet,
> dass Timer A1 arbeitet und Timer B0 gestoppt ist. Siehe Funktion void
> Modiwechsel (void)

mit anderen Worten: die Timer werden nie gleichzeitig arbeiten, der Pin 
bekommt in Abhängigkeit vom eingestellten Modus sein Siganl

von Peter D. (peda)


Lesenswert?

Antonowan225 schrieb:
> mit anderen Worten: die Timer werden nie gleichzeitig arbeiten, der Pin
> bekommt in Abhängigkeit vom eingestellten Modus sein Siganl

Warum kann man dann nicht den selben Timer für beides benutzen?
Es dürfte einfacher sein, den Timer umzukonfigurieren, als den Pin.

von Antonowan225 (Gast)


Lesenswert?

Peter D. schrieb:
> Antonowan225 schrieb:
> mit anderen Worten: die Timer werden nie gleichzeitig arbeiten, der Pin
> bekommt in Abhängigkeit vom eingestellten Modus sein Siganl
>
> Warum kann man dann nicht den selben Timer für beides benutzen?
> Es dürfte einfacher sein, den Timer umzukonfigurieren, als den Pin.

Weil ich zwei unabhängige isr haben wollte... hätte zwar ein anderes ccr 
Register wählen können, jedoch kann ich dann den Wobbel nicht unabhängig 
voneinander einstellen

von Antonowan225 (Gast)


Lesenswert?

Antonowan225 schrieb:
> Peter D. schrieb:
>> Antonowan225 schrieb:
>> mit anderen Worten: die Timer werden nie gleichzeitig arbeiten, der Pin
>> bekommt in Abhängigkeit vom eingestellten Modus sein Siganl
>>
>> Warum kann man dann nicht den selben Timer für beides benutzen?
>> Es dürfte einfacher sein, den Timer umzukonfigurieren, als den Pin.
>
> Weil ich zwei unabhängige isr haben wollte... hätte zwar ein anderes ccr
> Register wählen können, jedoch kann ich dann den Wobbel nicht unabhängig
> voneinander einstellen

hat jemand eine idee?

von Wolfgang (Gast)


Lesenswert?

Antonowan225 schrieb:
> hat jemand eine idee?

ODER-Gatter?

von Wolfgang (Gast)


Lesenswert?

Antonowan225 schrieb:
> Weil ich zwei unabhängige isr haben wollte...

Und warum tut es nicht ein Flag, das am Anfang der isr abgefragt wird?

von Antonowan225 (Gast)


Lesenswert?

Antonowan225 schrieb:
> Peter D. schrieb:
>> Antonowan225 schrieb:
>> mit anderen Worten: die Timer werden nie gleichzeitig arbeiten, der Pin
>> bekommt in Abhängigkeit vom eingestellten Modus sein Siganl
>>
>> Warum kann man dann nicht den selben Timer für beides benutzen?
>> Es dürfte einfacher sein, den Timer umzukonfigurieren, als den Pin.
>
> Weil ich zwei unabhängige isr haben wollte... hätte zwar ein anderes ccr
> Register wählen können, jedoch kann ich dann den Wobbel nicht unabhängig
> voneinander einstellen

hat jemand eine idee?

Wolfgang schrieb:
> Und warum tut es nicht ein Flag, das am Anfang der isr abgefragt wird

was meisnt du damit?

würde es funktionieren, wenn ich in der ISR abfrage, ob ich im Modus 1 
oder Modus 2bin?

von Antonowan225 (Gast)


Lesenswert?

Antonowan225 schrieb:
> würde es funktionieren, wenn ich in der ISR abfrage, ob ich im Modus 1
> oder Modus 2bin?

das Problem ist dann nur, wie ich die Frequenz oder Pulsbreite veränder. 
Denn eins von dem beiden ist abhängig vom Modus immer fest vorgegeben. 
Guckt euch bitte das Programm an (die Timer B und A1 und ISR dieser)

von Antonowan225 (Gast)


Angehängte Dateien:

Lesenswert?

so, habe das ganze Problem umgangen, indem ich nur einen Timer verwende. 
Über eine If Anweisung wird der Modus abgefragt und eine entsprechende 
Frequenz gefahren. Jedoch jetzt die Frage: Ich habe die LED an P1.0 über 
den PIn 7.4 speisen lassen, da dort durch den Timer B0 über Vector CCR2 
die ISR abläuft. Jedoch leuchtet die LED überhaupt nicht. Hat einer eine 
Idee was ich falsch gemacht haben könnte?

Port 7.4 (LED_WG) wird in System Start/Stop initialisiert weil, sie 
einmal über PWM und einmal als BIN-OUT angesteuert wird

von Antonowan225 (Gast)


Lesenswert?

Antonowan225 schrieb:
> so, habe das ganze Problem umgangen, indem ich nur einen Timer
> verwende.
> Über eine If Anweisung wird der Modus abgefragt und eine entsprechende
> Frequenz gefahren. Jedoch jetzt die Frage: Ich habe die LED an P1.0 über
> den PIn 7.4 speisen lassen, da dort durch den Timer B0 über Vector CCR2
> die ISR abläuft. Jedoch leuchtet die LED überhaupt nicht. Hat einer eine
> Idee was ich falsch gemacht haben könnte?
>
> Port 7.4 (LED_WG) wird in System Start/Stop initialisiert weil, sie
> einmal über PWM und einmal als BIN-OUT angesteuert wird

mein erster Ansatz war, dass ich den Timer starte, ohne dass ich PWM_Dir 
und den Modus vorgebe. Ändert trzd nichts am Ergebnis

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.