-         

Ergebnis 1 bis 4 von 4

Thema: Servo Ansteuerung fail

  1. #1
    Neuer Benutzer Öfters hier Avatar von derpfälzer
    Registriert seit
    17.08.2011
    Beiträge
    10

    Frage Servo Ansteuerung fail

    Anzeige

    Servus ich habe folgendes Problem ich habe den unten stehenden Code benutzt um meinen Servo zu testen.

    Ich gehe davon aus das ich den Timer1 zur ansteuerung benutzen kann oder hab ich das völlig falsch verstanden?
    Ich habe alle möglichen Tuts gelesen komme aber selbst nicht drauf....
    Nun hab ich den Servo an die richtigen Pins angeschlossen und er ist gelaufen und der Raupenantrieb war aus.
    Nichts am Programm verändert und später nochmal probiert.... jetzt laufen die Raupenmotoren aber nicht mehr der Servo?
    Klärt mich auf ich steh im Wald...

    Code:
    // Servoansteuerung mit Timer1                                         31.1.2010 mic
    
    // Einfach und elegant, warum finde ich das erst jetzt? Timer1 (RP6-Motoransteuerung)
    // läuft ja sowieso im Hintergrund. Deshalb kann man die "klassische" Servoansteuerung
    // in die Overflow-ISR einbauen und mit ca. 19kHz aufrufen lassen. Timersetup der Lib:
    // Mode 10, Phase Correct mit ICR1 als Top ergibt bei ICR1=210 ca. 8MHz/420=19047,6Hz ;)
    
    // Drehbereich meiner RS-2-Servos ist von ca. 14 bis ca. 38
    
    #include "RP6RobotBaseLib.h"
    
    volatile uint8_t servo1, servo2, servo3, p; 	// Servopositionen und Impulszähler
    uint8_t c; 												// ein Char zur freien Verfügung
    
    int main(void)
    {
       initRobotBase();
       servo1=servo2=servo3=26;	// Servomitte?
       TIMSK |= (1 << TOIE1); 		// Die Timer1 Overflow-ISR zur Servoansteuerung
    	DDRA |= (E_INT1);          // Servopins auf Ausgang setzen
       DDRC |= (SCL);
       setLEDs(1);                // und los!
       startStopwatch1();
       startStopwatch2();
       startStopwatch3();
    	while(1)
       {
       
    		   {
    			servo1=servo2=servo3=26; // mitte
       		p=50; while(p);          // warten bis 50 Impulse gesendet (ca. 1 Sek.)
       		servo1=servo2=servo3=14; // links
       		p=50; while(p);
       		servo1=servo2=servo3=38; // rechts
       		p=50; while(p);
    		}
    			task_RP6System(); // Verträglichkeitstest ;)
    		
       }
       return 0;
    }
    ISR (TIMER1_OVF_vect)
    {
    	static uint16_t servocount=1;
    	if(servocount > servo1) PORTA &= ~E_INT1; else PORTA |= E_INT1; 		// PA4 XBUS 8
    	if(servocount > servo2) PORTC &= ~SCL; else PORTC |= SCL; 				// PC0 XBUS 10
    	if(servocount > servo3) PORTC &= ~SDA; else PORTC |= SDA; 				// PC1 XBUS 12
    	if(servocount < 400) servocount++; else {servocount=1; if(p) p--;} 	// p = 1/50 Sek
    }
    gruß derpfälzer

  2. #2
    Neuer Benutzer Öfters hier Avatar von derpfälzer
    Registriert seit
    17.08.2011
    Beiträge
    10
    So Problem gelöst .... vorerst.
    Ich hatte irgendwo wahrscheinlich noch ein Programmrest.
    Der Servo lässt sich ansteuern.
    Jetzt nochmal den Timer1 kann ich trotzdem für den Servo verwendung mit den Antriebsmotoren ohne das die sich stören ?

    gruß derpfälzer

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Die stören sich nicht. Mit dem Setzen des TOIE1-Bit im TIMSK-Register wird bei jedem Überlauf zusätzlich die Servo-ISR abgearbeitet:

    TIMSK |= (1 << TOIE1);

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Neuer Benutzer Öfters hier Avatar von derpfälzer
    Registriert seit
    17.08.2011
    Beiträge
    10
    Alles klar danke dir dann bin ich ja beruhigt

    grüßle

Ähnliche Themen

  1. RP6 Servo Ansteuerung
    Von Robotoni im Forum Robby RP6
    Antworten: 109
    Letzter Beitrag: 04.04.2011, 17:50
  2. AX-12+ Servo ansteuerung
    Von Sven04 im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 10.09.2009, 19:03
  3. Ansteuerung Servo mit Servo Fkt. oder mit PWM?
    Von cosanostra im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 14.11.2007, 11:26
  4. Antworten: 3
    Letzter Beitrag: 02.11.2007, 03:41
  5. Antworten: 8
    Letzter Beitrag: 08.04.2006, 18:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •