mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 Generelle PWM Frage


Autor: PROJECT_X (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
servus,

hab auf meiner platine einen sender mit dem P1.1/TA0
verbunden.
ist es mit dem TA0 auch möglich PWM mit einstellbarer
Dutycycle zu erzeugen??
Oder geht das nur mit den TA1 und TA1 ausgägngen??

danke!

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau die selbe Frage wollte ich gerade für Timer B stellen :) Hab eine 
Platine gemacht wo TB0 und TB1 als PWM Ausgänge benutzt werden sollen. 
Jetzt hab ich festgestellt das alle Beispiele von TI nur TB1 und höher 
verwenden, weil das TBCCR0 Register (für TB0) als Maximalwertspeicher 
benutzt wird.
Leider kann ich an der Platine nix mehr Ändern :( Gibt es Hoffnung?

Autor: PROJECT_X (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, bei mir ist es nicht ganz so schlimm,
wird beim ersten redesign geändert, falls
es keine andere lösung gibt.
hab eine notlösung gefunden, warte aber noch ab,
ob jemand eine bessere lösung hat als ich!

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich könnte was mit Interrupts basteln, aber das Ding soll natürlich noch 
was anderes machen ausser Interrupts alle paar ms.
Wie sieht deine Lösung aus?

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ein PWM Signal kann an TA0 / TB0 nicht erzeugt werden, denn wie 
vorher bereits gesagt, TA0 / TB0 dienen der Definition der 
Grundfrequenz. Der DutyCycle kann nur mit TA1 / TB1 und aufwärts 
definiert werden.
Ein Murks mit einem software PWM bleibt wohl die einzige Möglichkeit, 
sofern das Layout nicht mehr geändert werden kann.

Autor: PROJECT_X (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ja, bei der software lösung hab ich ein problem
hab da so eine DELAY function mit den timerb gmacht, aber
des funzt nicht so richtig.

wird der sensor einmal angestoßen, wird gesendet und
die led blinkt
beim 2ten mal anstoßen geht der MSP schlafen
und wenn ich ihn ein drittes mal anstoß dann
hängt er in der while schleife der
delayfunktion fest.
das passiert aber nur, wenn die delay funktion im main nicht 5000
wie in der delay funktion der ISR steht.
also wenn beide delay funktionen 5000, oder einen anderen gleichen
wert haben, geht alles, ist er unterschiedlich, dann hängts
wieder in der while schleife der delay funkt.

was ist da falsch?!?!

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde das ganze so umschreiben, dass Du gar keine Delays mer 
benötigst. Solche Programme sind meist nicht wartbar, da das Timing 
überhaupt nicht mehr stimmt, wenn man an der falschen Stelle was am Code 
ändert oder es funktioniert sogar überhaupt nicht mehr.

Die Erzeugung des PWM Signals würde ich komplett im Timer IRQ machen, es 
sind ja nur ein paar Zeilen einfacher Code.

Irgend sowas vielleicht (nicht getestet):

// Interruptroutine
#pragma vector=TIMERB0_VECTOR
__interrupt void count_CCRO()
{
  irq_count += 1;

  // Grundfrequenz bestimmen
  if (irq_count > max_count)
  {
    irq_count = 0;
  }

  // PWM generieren
  if (irq_count < pwm_sollwert)
  {
    redON;
  }
  else
  {
    redOFF;
  }
}

Das sollte dann äusserst stabil laufen, fast egal was Du im main() noch 
so machst.

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.