Forum: Mikrocontroller und Digitale Elektronik Tiny85 PWM läuft nicht


von Anna Nass (Gast)


Lesenswert?

Ich bin neu, was die AVR Programmierung angeht. Habe heute versucht auf
dem PB4 vom Tiny85 PWM von 150KHz auszugeben, leider passiert am Pin 
nichts.
Weiß jemand einen Rat, habe ich evtl. was vergessen?
1
void SignalGen (void) 
2
{
3
  
4
  // set SIGNAL PIN TO OUTPUT
5
  DDRB |=  (1 << CLKOUTSIGNAL);
6
  
7
  //PWM Frequency    Clock Selection    CS1[3:0]  OCR1C  RESOLUTION
8
  //150 kHz      PCK/2        0010    212    7.7
9
  
10
  //  CLKPS[3:0]: Clock Prescaler Select Bits 3 - 0 These bits define the division factor between the selected clo
11
  CLKPR = (1 << CLKPS1);
12
  
13
  // Init PWM registers
14
  TCCR1 = (1 << PWM1A) | (1 << CS11);  
15
16
  OCR1C = 212;
17
  
18
}

von hellseher (Gast)


Lesenswert?

glaskugelguck
42 oder 43 ist die Lösung !
Dahinten ein dreiköpfiger Affe !
Und wenn Dir jemand konkret helfen soll das GANZE Programm posten mit 
Angabe welcher Compiler und was denn nun das eigentliche Problem ist 
??????????

von Anna Nass (Gast)


Lesenswert?

Laufen tut er mit 8MHz internal osz..
In der Main wird die o.g. Funktion aufgeruffen, CLKOUTSIGNAL ist als PB4 
definiert.

hellseher schrieb:
> Angabe welcher Compiler und was denn nun das eigentliche Problem ist
AVR Studio 6.1 GCC Compiler. Problem: Pin zappelt nicht.

Ist es soweit ausreichend?

von Sebastian W. (wangnick)


Lesenswert?

Hallo,

ich nehme an CLKOUTSIGNAL ist PINB1?

Also erstens solltest du COM1A1 setzen, und zweitens sollte OCR1A noch 
irgend einen Wert zwischen 1 und 211 bekommen, der die Austastrate des 
PWM-Signals bestimmt.

Glaube ich zumindest.

LG, Sebastian

von Sebastian W. (wangnick)


Lesenswert?

Anna Nass schrieb:
> In der Main wird die o.g. Funktion aufgeruffen, CLKOUTSIGNAL ist als PB4
> definiert.

Ah. PB4 ist aber OC1B. Dann musst du anstelle von PWM1A und COM1A1 
stattdessen PWM1B ind COM1B1 in GTCCR setzen, und die Tastrate mit OCR1B 
bestimmen.

LG, Sebastian

von Anna Nass (Gast)


Lesenswert?

Danke Sebastian!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.