CC1110 (8051) - Problem mit Timer1, PWM für Servo

Gast #1697926
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Problem mit dem Timer1 bei einem CC1110-Mikroprozessor.

Ich möchte ein am P1_1-Pin angeschlossenes Servo mit dem Timer1 per PWM 
(20ms dutycycle, 1-2ms pwm-Länge) ansteuern. Dazu habe ich, dem 
Datenblatt Abschnitt 12.6.5 folgend angenommen, dass das wohl ohne 
selbstgeschriebene Interrupt-Routine funktioniert, sofern man den 
Anweisungen auf Seite 114 nach dem fettgedruckten "Edge Aligned" folgt 
und T1CCTL1.CMP auf 110 setzt.

Aus irgendeinem Grund funktioniert mein Code jedoch nicht, ich befürchte 
dass ich irgendeinen notwendigen Schritt übersehen habe.

Hier mein Code:
1
//  Pinbelegung konfigurieren:
2
//  -> USART 0 auf Alternative 1 (P0)
3
//  -> USART 1 auf Alternative 2 (P1)
4
//  -> Timer1 auf Alternative 2 (P1)
5

6
PERCFG = (PERCFG & ~PERCFG_U0CFG) | PERCFG_U1CFG | PERCFG_T1CFG;
7

8
P1SEL |= BIT2 | BIT1 | BIT0;
9
 
10

11
// TIMER SETUP  
12

13
// Channel 0 Compare Register setzen (nur zum Testen auf 3fff, wird später die gewünschte PWM-Impulslänge)
14
T1CC0L = 0xFF;
15
T1CC0H = 0x3F;
16

17
// Channel 1 Compare Register setzen (wird später die 50Hz des PWM-Signals für das Servo)
18
T1CC1L = 0xFF;
19
T1CC1H = 0x7F;
20

21
// Channel Control: CMP auf 110 setzen; Mode auf "Compare"
22
T1CCTL1 |= ((1<<BIT4) | (1<<BIT5)); 
23
T1CCTL1 &=~ (1<<BIT3);
24
    
25
T1CCTL1 |= (1<<BIT2);
26

27
// Interrupts aktivieren
28
IEN1 |= (1<<BIT1);
29
EA = 1;
30
  
31
// T1 Control: "Module Mode" setzen (10)
32
T1CTL |= (1<<BIT1);  
33
T1CTL &=~ (1<<BIT0);


Am Pin P1_1 ist das Signal einfach dauerhaft auf "Low". Leider habe ich 
mit Timern bei diesem Mikrocontroller keine Erfahrung, deswegen kann es 
gut sein, dass ich irgendetwas ganz einfaches übersehen habe.

Ich würde mich sehr freuen, wenn mir da jemand weiterhelfen kann :-)

- Raoul


Datenblatt zum CC1110f8:
http://www.ti.com/lit/gpn/cc1110f8 (PDF ca. 3,7 MB)

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.