AVR USB1287 PWM

Gast #1046390
Lesenswert?

Hallo zusammen,

Ich habe den AVR USBKEY (mit ATUSB1287) mit welchem ich einen Servomotor 
mittels PWM ansteuren möchte. Das PWM läuft, hat aber die falsche 
Frequenz, resp.  Periodendauer. Die Periodendauer sollte 20ms betragen, 
ist aber effektiv 160ms. Hat jemand von euch eine Idee, an was das liege 
könnte?
Angehängte Dateien:
Gast #1046685
Lesenswert?

Der prescaler für den Timer 3 ist doch auf 8, oder hab ich was 
überschaut?! Im TCCR3B sind folgende Bits gesetzt: WGM33 für PWM modus 
und CS31 für Prescaler: TCCR3 hat den Wert 0b00010010, was Hex 0x12 
enstpricht.
Gast #1046719
Lesenswert?

>hab ich was überschaut?!

Ich habe nicht geschaut -- kein Realname und einige Tippfehler.

Die knappe Antwort gab es nur für die Großbuchstaben.

Der AT90USB1287 hat doch einen Prescaler für den Takt des Prozessors.
Soweit ich mich erinnere hat der USBKEY einen 8 MHz Quarz, aber der 
Prescaler teilt vorgabemässig durch 8. Dann läuft eben der gesamte uC 
nur mit 1 MHz, dass passt zum Fehlerbild. Prescaler kann man per Fuses 
(evtl. problematisch mit USBKEY) oder per Software umstellen. Ein Blick 
ins Datenblatt schadet nicht. Der avr-gcc Code sieht ungefähr so aus:

http://www.ssalewski.de/USB-Sources/SUDD.c

int main(void)
{
  cli();
  CLKPR = (1<<7);
  CLKPR = 0;

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