Fast PWM mittels PLL

OP #1946486
Lesenswert?

Aloha,

arbeite gerade mit meinem AT90PWM3B rum und bin im Datenblatt im "Power 
Stage Controller"-Kapitel auf "fast PWM" gestoßen.

Hört sich spannend an und wollte es daher gleich mal ausprobieren...
1
int main(void)
2
{
3
  DDRD = (1<<PD0);  // Ausgang setzen
4

5

6
  //    Sync?     Sync?      PSCOUT01    PSCOUT00
7
  PSOC0 = (0<<PSYNC01)|(0<<PSYNC01)|(0<<POEN0B)|(1<<POEN0A);
8
  OCR0SAH = 0x00;  // setze PSCOUT0A bei 0x00;
9
  OCR0SAL = 0x00;
10
  OCR0RAH = 0x01;  // loesche PSCOUT0A bei 0x01FF
11
  OCR0RAL = 0xFF;
12
  PCNF0  = (0<<PMODE01)|(1<<PMODE00);  // Two Ramp Mode
13
  PCNF0 |= (1<<PCLKSEL0);        // select fast clock
14

15

16
  PLLCSR  = (1<<PLLF);  // =1: PLL output 64MHz;  =0: PLL output 32MHz
17
  PLLCSR |= (1<<PLLE);  // activating PLL
18
  _delay_us(100);      // after enabling PLL, it takes about 100ms the PLL to lock
19
  while( (PLLCSR & (1<<PLOCK)) == 0x00 );
20

21

22
//  while( ((~PLLCSR & (1<<PLOCK))>>PLOCK) );  // while bit is clear
23
//  PLLCSR |= (1<<PCKE);
24

25
  PCTL0 = (1<<PRUN0);    //starts running PSC 0
26

27
  while(1);
28
}

leider kann ich an PSCOUT00 kein PWM Signal messen. Habe ich irgendwas 
vergessen?

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