www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CC1110 (8051) - Problem mit Timer1, PWM für Servo


Autor: Raoul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:

//  Pinbelegung konfigurieren:
//  -> USART 0 auf Alternative 1 (P0)
//  -> USART 1 auf Alternative 2 (P1)
//  -> Timer1 auf Alternative 2 (P1)

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

P1SEL |= BIT2 | BIT1 | BIT0;
 

// TIMER SETUP  

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

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

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

// Interrupts aktivieren
IEN1 |= (1<<BIT1);
EA = 1;
  
// T1 Control: "Module Mode" setzen (10)
T1CTL |= (1<<BIT1);  
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

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.