mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM7 PWM und UART gleichzeitig nutzen


Autor: Carsten Hamann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Mein Board: LPC2129 Olimex-LPC-P212X

Ich erzeuge an Pin P0.1 per PWM (PWM3)einen Takt.
Gleichzeitig möchte ich die UART1 (P0.8/P0.9)
nutzen.
PINSEL wurde richtig gesetzt!
Beides separat funktioniert wunderbar.
Sobald ich jedoch beides gleichzeitig laufen lassen
will, funktioniert die UART nicht mehr.
Wenn ich die PWM (per PWM_TCR=0) stoppe, läuft
die UART wieder!

Habe auch noch andere PWM-Ausgänge probiert, daran kann es auch nicht
liegen.

Hat jemand eine Idee woran das liegen könnte??

Autor: Carsten Hamann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal der PWM Code:


void PWM0_isr(void)
{
  PWM_IR       |= 0x00000001;  /* Clear match0 interrupt */
  VICVectAddr  = 0x00000000;
}

void init_PWM (void)
{
  VICVectAddr8 = (unsigned long)PWM0_isr;
  VICVectCntl8 = 0x00000028;
  VICIntEnable |= 0x00000100;

  PCB_PINSEL0 &= ~(3<<2);    //pwm3 p0.1
  PCB_PINSEL0 |= (2<<2);

  PWM_PR  = 0x00000000;
  PWM_PCR = 0x00002020;
  PWM_MCR = 0x00000003;
  PWM_MR0 = 1832;
  PWM_MR4 = 916;                       // 50% ca. 32768 KHz
  PWM_MR5 = 1832;
  PWM_LER = 0xF;
  PWM_EMR = 0x00210A8E;
  PWM_TCR = 0x00000002;
  PWM_TCR = 0x00000009;
}

Autor: Carsten Hamann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups, alten Code kopiert sry^^
hier der Richtige (Funktionierende):


  PCB_PINSEL0 &= ~(3<<2);    //pwm3 p0.1
  PCB_PINSEL0 |= (2<<2);

  PWM_PR    = 0x00000000;
  PWM_PCR = 0x00000808;
  PWM_MCR = 0x00000003;
  PWM_MR0 = 1832;
  PWM_MR2 = 916;PWM2
  PWM_MR3 = 1832;
  PWM_LER = 0xF;
  PWM_EMR = 0x00210A8E;
  PWM_TCR = 0x00000002;
  PWM_TCR = 0x00000009;

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe in meinem "T-Clock"-Spielzeug PWM und UART zusammen in Betrieb,
vielleicht hilft der Code etwas weiter:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm...

Martin Thomas

Autor: Carsten Hamann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werde mal versuchen mit Hilfe deines Codes meinen Fehler zu finden.
Danke dir :)

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.