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


von Carsten Hamann (Gast)


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??

von Carsten Hamann (Gast)


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;
}

von Carsten Hamann (Gast)


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;

von mthomas (Gast)


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_projects/glcd_dcf77/index.html

Martin Thomas

von Carsten Hamann (Gast)


Lesenswert?

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

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.