- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 22

Thema: Servo 180 Grad drehen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Globi:
    Ich habe eine neue Base "...\RP6Lib\RP6baseservo\ mit RP6BaseServoLib.h & *.c
    Wenn du die Servos mit meiner Lib (Link in 29.3., 18:34 siehe oben!) ansteuern willst, geht das nur mit den Original-Libs des RP6, denn dafür sind sie geschrieben.

    Wie gesagt: Poste mal dein Programm und die veränderten Libs.

    Grundsätzlich ist es nicht gut, viele Dinge gleichzeitig zu verändern (andere Libs, neues Programm, unbekannte Programmteile von anderen Leuten ...). Bleib am besten erst bei den Original-Libs, bis du das alles besser verstehst.
    Gruß
    Dirk

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    28.03.2011
    Beiträge
    8
    Hallo alle miteinander,
    nun habe ich es endlich geschaft (nach eingehender Literatur) und fachkundiger anleitung in etwa 13 Forumsbeiträge
    Die Ansteuerung von Port ADC0 läuft ja über DDRA |= 1; und in der Positionsbestimmung PORTA |= 1; .
    Mein Programm:
    Code:
    #include "RP6RobotBaseLib.h"
    
    uint8_t i;
    int main(void)
    {
       initRobotBase(); 
       DDRA |= 1; 
    
       while(true)
       {
          for(i=0;i<100; i++)
          {
             PORTA |= 1;
             sleep(5);
             PORTA &= ~1;
             sleep(200-5);
          }
    	  for(i=0;i<100; i++)
          {
             PORTA |= 1;
             sleep(15);
             PORTA &= ~1;
             sleep(200-15);
          }
          for(i=0;i<100; i++)
          {
             PORTA |= 1;
             sleep(25);
             PORTA &= ~1;
             sleep(200-25);
          }
    	  for(i=0;i<100; i++)
          {
             PORTA |= 1;
             sleep(15);
             PORTA &= ~1;
             sleep(200-15);
          }
       }
       return(0);
    }
    Nun meine Frage: wie kann ich den ADC1 Port ansteuern?
    Ich habe keine brauchbaren Infos gefunden wie ich den Port 1 ansteuern kann.
    könnte mir vieleicht jemand helfen?
    danke

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    ADC1 ist ein normaler Port pin und definiert in RP6RobotBase.h

    #define ADC1 (1 << PINA1) // ADC1 (Input)

    Folglich kannst Du den als Port steuern wie auch deine anderen Portleitungen.

    Details zum ADC findest Du im Datenblatt des Prozessors, welche auf der RP6 CD zu finden ist.

    Und da ich nicht nur meckere, lobe ich nun doch mal das du am Thema dran bleibst.
    LG Rolf
    Sind Sie auch ambivalent?

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Sensationell, Glückwunsch zum Erfolg :)

    ADC1 ist der zweite Portpin und wird mit

    DDRA |= 2; // Datenrichtung Ausgang
    PORTA |= 2; // high
    PORTA &= ~2; // low

    angesprochen. Beispiel:
    PHP-Code:
    int main(void)
    {
       
    initRobotBase();
       
    DDRA |= 1+2;

       while(
    true)
       {
          for(
    i=0;i<100i++)
          {
             
    PORTA |= 1;
             
    sleep(5);
             
    PORTA &= ~1;
             
    PORTA |= 2;
             
    sleep(15);
             
    PORTA &= ~2;
             
    sleep(200-5-15);
          }
    ... 
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Berechtigungen

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

LiFePO4 Speicher Test