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.