Hallo, ich arbeite zur Zeit mit dem NEC V850 und versuche eine PWM zu erzeugen. Hat jemand schon einmal eine PWM programmiert und könnte mir mal den Quelltext zum Vergleich zur Verfügung stellen? Mein Problem ist, dass die Ausgänge zum entsprechenden Timerkanal nicht mit getoggelt werden. Weiterhin bekomme ich Interrupts bei den CC0 und CC1-Werten, welche aber bei jedem Durchlauf anders sind. Daher vermute ich, dass ich in der Initialisierung noch einen Fehler habe. Aus dem Datenblatt habe ich leider auch keine Informationen gewonnen die zur Lösung des Problems führen. Hier ein kurzer Codeausschnitt für die Initialisierung: TAA2CTL0 = 0x07; // internal count TAA2CTL1 = 0x04; // set operation mode PWM TAA2CCR0 = 0x61A8; // compare value TAA2CCR1 = 0x11A8; TAA2IOC0 = 0x0F; // enable Timer output TAA2IOC1 = 0x00; TAA2CTL0 |= 0x80; // start Timer TAA2 TAA2CCIC0 = 0x03; // enable Timer TAA2CC0 interrupt TAA2CCIC1 = 0x03; // enable Timer TAA2CC1 interrupt
Hier ist der Code für den NECV850e/Dx3, um ein PWM-Signal zu generieren, // Timer 0 auf 200 ms setzen TP0CCR0 = time200ms; //Bei 140ms soll Zustand wechseln TP0CCR1 = time140ms; TP0CTL0 = 0x86; /* Independent operation mode, software trigger * control: no operation, internal clock, PWM-mode */ TP0CTL1 = 0x04; /*CompareRegister, CompareRegister, */ TP0OPT0 = 0x00; Dann kannst du ja mal vergleichen Hier werden zwei Interrupts erzeugt, die dann in einer Interrupt-Tabelle jeweils einer Funktion zugeordnet werden müssen, die dann die Port-Pins setzten bzw. rücksetzen mfg Daniel
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.