Werbung
Hallo,
ich habe gerade ein kleines Programm geschrieben, um den CTC-Modus für einen Schrittmotor zu nutzen. Leider verändert sich die Frequenz bei Verschiedenen werten von OCR0A nicht. Kann mir jemand weiter helfen?
Das Board ist ein Arduino Mega
Code:#include <avr/io.h> #include <avr/interrupt.h> int step = 13; void setup() { pinMode(step, OUTPUT); // Timer 0 konfigurieren TCCR0A = 0b01000000; // CTC Modus, OC0 wird getoggelt TCCR0B = 0b00000011; // Prescaler 64 OCR0A = 24; //Obergrenze auf 24 festgelegt } void loop() { }
Schau' Dir TCCR0A nochmal genau an.
ich hatte es so verstanden, dass ich bei den ersten 2 stellen (01) angebe, dass OC0 getoggelt wird und mit den letzten beiden (00) die pwm-betriebsart deaktiviere
- - - Aktualisiert - - -
ahh manchmal ist es hilfreicher, sich die mühe zu machen, statt bei mikrocontroller.net ins datenblatt zu schauen.
funktioniert soweit ich weisCode:TCCR0A = 0b01000010; // CTC Modus, OC0 wird getoggelt TCCR0B = 0b00001101; // Prescaler 1024
Er hat ja nicht von Fehler sondern von Zumutung geschrieben. Wenn Du es im Binärcode so schnell erkennst, dann ist das schon ne Sache - ich bin langsam, ich brauche da hilfen . . . und initialisiere meine CTC z.B. so (mega164-1284, 20MHz):... binär gemacht weil ich da am schnellsten erkenne, wie ich die register konfiguriere. Wo ist denn jetzt der Fehler?
Code:// ============================================================================== = // == Timer Aufgabe: Servo mit Soft-PWM ansteuern auf wählbarem Port // - - - - - - - - - - - - - - - - void TC1TMR_init(void) // Init Timer/Counter 1 für 2 ms Servoperiode { // TCCR1B |= (1<<WGM12); // WGM12 => CTC, TOP = OCR1A S135 TCCR1B |= (1<<CS11); // CS11+10 <=> clk/8 => 2,500 MHz S136 OCR1A = OCR1AV; // 10x OCR1AV = 63990=> alle 25,60 ms ein Interrupt // Interrupt zählt bis 6400 ! OCR1B = OCR1BV; // OCR1B = {???} => 1-2 ms Rampe // - - - - - - - - - - - - - - - - } // ============================================================================== =
Geändert von oberallgeier (23.06.2013 um 19:08 Uhr) Grund: Nachtrag: Controllertyp
Ciao sagt der JoeamBerg
Lesezeichen