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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren