PWM - AT89C51ED2

OP #3165335
Lesenswert?
• ▲
▼
Hallo,
ich stehe hier vor einem Problem.
Da ich eigentlich nur mit C programmiere, und da auch nur die eher 
einfacheren Befehle weis, wollte ich euch mal fragen, ob ihr mir 
weiterhelfen könnt.

Ziel ist es, an einem Port ein PWM Signal zu erzeugen.
Folgenden Code habe ich von meinem Lehrer bekommen, und er meinte ich 
sollte mir das mal ansehen. Nur kann ich mir darauf nicht wirklich was 
zusammenreimen. Ich lese mir schon den halben Tag das Datenblatt zum uC 
durch, aber irgendwie hilft mir das auch nicht weiter
1
#include <stdio.h>                /* standard I/O .h-file              */
2
#include <stdlib.h>               /* standard library .h-file          */
3
#include <ctype.h>                /* character functions               */
4
#include "reg51xd2.H" // SFR
5

6
bit ausgabe=0;          // Flag für Ausgabe
7
unsigned char cnt_down=1;  // Interruptzähler
8

9
unsigned int i;
10

11

12

13
timer0() interrupt 1 using 1 // Int Vector at 000BH, Reg Bank 1 
14
{
15
   CCAP0H--;         // P1.3
16
   CCAP4H++;         // P1.7
17

18
   
19

20
   if(!--cnt_down)    
21
    { cnt_down=28;
22
      ausgabe=1;
23
    } 
24
}
25

26
void main(void)
27
  { 
28
    CKCON0=0xFF; // X2 fast mode, peripherie NORMAL 12 cycles
29
    TMOD=0x21; // Timer0 Modus1, Timer1 Modus2
30
  TH1=0xff;
31
  //TH0=0x80;
32
    PCON |=0x80;  // 115kBaud
33
  SCON=0x50;
34
  TR0 = 1; TR1 = 1;   // Timer0 und Timer1 EIN
35
    TI=1;      // Start TxD COM      
36
  IEN0=0x82; // Interrupt Timer0 freigeben
37
    cnt_down=1;
38

39
  CMOD=0;       // f_CLK/6 für PWM
40
  CCON|=0x40;   // CR=1: PCA counter EIN
41

42
  CCAPM0=0x42;  // P1.3: Komparatorfunktion EIN (Bit6), PWM EIN (Bit1)
43
  CCAPM4=0x42;  // P1.7: Komparatorfunktion EIN (Bit6), PWM EIN (Bit1)
44

45
  
46

47
    while(1)
48
   {if(ausgabe)
49
      {
50
      ausgabe=0; 
51
    }
52
   } 
53
  }

mfg chris

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.