-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Frage zu Servo ansteuerung von RN-Wissen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.06.2005
    Alter
    27
    Beiträge
    203

    Frage zu Servo ansteuerung von RN-Wissen

    Anzeige

    Hallo,
    ich bin endlich wieder da. Habe mal 2-3 Jahre ausflug auf einer x86 Architektur gemacht.
    Jetzt kann ich C so schon ein Bisschen und so ab jetzt gibts ein RN-Control zu Hl-Abend.
    So jetzt zur Frage, ich blick das Code beispiel für den Servoansteuerung nicht (also ich weiß, dass einige Konstanten in den fehlenden includes stehen aber die Syntax/Sinn macht mir bei den Zitierten Stellen probleme) im RN-Wissen bereich von hier:
    Code:
    OCR2 = F_CPU/100000;			//alle 10µS ein IRQ
    Wie komme ich da auf die 10µs die Angegeben sind und bei welcher Frequenz?

    Später kommt dann:

    Code:
    #define SERVOPIN 7
    #define SERVOPORT PORTD
    
    if(count>servopos)SERVOPORT&=~(1<<SERVOPIN);
    Was macht die Tilde (ok ich mach selten was mit Bittweisen Operanten aber ist die Tilde nicht dafür da zum Interviren?) Warum mach ich nicht:
    Code:
    #define SERVOPIN 7
    #define SERVOPORT PORTD
    volatile unsigned char servopos;
    static int count;
    
    if(count>servopos)SERVOPORT&=(0<<SERVOPIN);
    Danke für eure Bemühungen schon im Vorraus.
    MfG

    der aller dümmste Anfänger

    bitte bei schwerwiegenden Rechtschreibfehlern oder Unleserlichkeiten eine PN schreiben
    Danke

    http://www.openmoko.org/

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.06.2005
    Alter
    27
    Beiträge
    203
    Code:
    #define Servopin 7
    #define Servoport PORTD
    volatile unsinged char seropos;
    static int count;
    if(count>servopos)SERVOPORT&=~(1<<SERVOPIN);
    :
    Code:
    #define servopin 7
    (1<<servopin) => 10000000
    ich aber genau
    Code:
    01111111
    brauche muss ich mit der Tilde machen da sonst mit meiner Version dies rauskäme:
    Code:
    00000000
    Drinsteht und mit dem Und wurde im Ganzen Port nur 0 anliegen, egal was die Anderen Ports machen.
    Stimmt das so?
    Und bei:
    Code:
    OCR2=F_CPU/10^5
    ganz einfach wenn man mal die Definition von Frequenz anschaut grob gesagt Zyklen pro s. und um auf eine 10µs zu kommen brauch ich halt nur CPU-Frequenz/10^5.
    Stimmt das auch?

    Jetzt neue Frage was macht:
    Code:
    #define DDRSERVO DDRD
    #define SERVOPIN 7
    DDRSERVO|=(1<<SERVOPIN);
    DDR sind die (ich nenne sie einfachshalber Register kann man das so sagen?) Register die bestimmen welcher Port ein Ein-/Ausgang ist?
    Und ich will kein Selbstgespräch führen. und meine doch recht große Anzahl an Beiträgen sind eigentlich blos Zustimmung zu guten Projekten
    MfG

    der aller dümmste Anfänger

    bitte bei schwerwiegenden Rechtschreibfehlern oder Unleserlichkeiten eine PN schreiben
    Danke

    http://www.openmoko.org/

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Für das DDRSERVO usw. muss es am Anfang des Code ein #define geben, oder es sind Registernamen..
    Irgend welche Zeilen herausnehmen macht wenig Sinn. Derjenige des das kommentieren will, muss sich immer den gesamten Code ansehen, oder zumindest einen größeren Teil davon.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.06.2005
    Alter
    27
    Beiträge
    203
    Ok ich habe die Defines dazu geschrieben, aber restlichen Code weggelassen, sonst wird nicht klar wo ich was nicht verstehe, und auserdem hab ich einen Link auf die Entsprechende RN-Wissen Seite gelegt.
    MfG

    der aller dümmste Anfänger

    bitte bei schwerwiegenden Rechtschreibfehlern oder Unleserlichkeiten eine PN schreiben
    Danke

    http://www.openmoko.org/

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Code:
    OCR2 = F_CPU/100000;         //alle 10µS ein IRQ
    Hier wird die CPU wohl 10MHz sein, sonst würde alle 10 Takte ein Interrupt erfolgen.
    Register und IO zugriffe siehe hier http://www.mikrocontroller.net/artic...f_auf_Register
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.06.2005
    Alter
    27
    Beiträge
    203
    Also, sind meine vermutungen die ich anstelle in der 2. Post richtig?

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Ja, ist richtig.
    DDRSERVO ist ja gleich DDRD, hast du ja im #define festgelegt.
    DDRD ist das Data Direction Register PortD
    Mit DDRSERVO|=(1<<SERVOPIN); stelltst du PortD7 auf Ausgang.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.06.2005
    Alter
    27
    Beiträge
    203
    Danke. Wo kann ich das hier als gelöst makieren?

  9. #9
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Warum willst du den Thread löschen? Weil du die Antworten auf deine Fragen zum großen Teil selbst erarbeit und rausgefunden hast?

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

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.06.2005
    Alter
    27
    Beiträge
    203
    Nicht löschen sondern nur von außen erkenn bar dass er gelöst ist, sehe gerade so schöne Icons nehme den Haken.
    MfG

    der aller dümmste Anfänger

    bitte bei schwerwiegenden Rechtschreibfehlern oder Unleserlichkeiten eine PN schreiben
    Danke

    http://www.openmoko.org/

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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