- Reichelt Elektronik    Werbung      
Ergebnis 1 bis 10 von 12

Thema: Delta X 4 Robot

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    15.01.2006
    Ort
    Düsseldorf
    Alter
    40
    Beiträge
    269
    Hey,

    was mich noch interessieren würde: Wie nimmst du die Befehle auf den µC der Beine entgegen?
    Wenn Du z.B. send_koordinates(4,50,-50,-140); aufrufst, was macht send_koordinates() mit den Variablen, wie verarbeitet sie diese und wie sendet sie die?


    Gruß
    tucow
    Gruß
    Andreas




    Mein: Humanoide // nanoCopter Projekt
    Das Raspberry Pi als: Wifi Access Point // Wifi Router

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    10.12.2011
    Beiträge
    6
    Hallo,

    also ich hab das so programmiert:

    *********Master Seite***********
    void send_koordinates(uint8_t bein,int16_t x, int16_t y, int16_t z)
    {
    if (bein == 1)
    {
    send_word_B1(x);
    send_word_B1(y);
    send_word_B1(z);
    }
    if (bein == 2)
    .
    .
    .

    void send_word_B1(int16_t word)
    {
    uint8_t high_byte;
    uint8_t low_byte;

    high_byte = word >> 8; //High anteil herrausnehmen
    low_byte = word & 0xff; //Low anteil herrausnehmen
    PORTB &= ~(1 << DDB3); //low (Chip des Beines 1 auswählen)
    SPI_MasterTransmit(high_byte);
    PORTB |= (1 << DDB3); // high
    PORTB &= ~(1 << DDB3); //low
    SPI_MasterTransmit(low_byte);
    PORTB |= (1 << DDB3); // high
    }

    void SPI_MasterTransmit(char cData)
    {
    SPDR = cData;/* Start transmission */
    while (!(SPSR & (1<<SPIF)));/* Wait for transmission complete */
    }

    ********Slave Seite**********

    volatile unsigned char dataarray[6];// global
    volatile int i = 0; // global


    ISR(SPI_STC_vect) //interrupt auf SPI
    {
    unsigned char data;
    data=SPDR;
    dataarray[i]=data;
    i++;
    }

    Es muss mit den timings sicher gestellt werden, dass i nicht mal falsch mitzählt sonst werden die Koordinaten falsch zugewiesen.
    Kann man sicher noch verbessern.

    Daten wieder zu einem 16 bit Wert zusammensetzen: word = (high_byte << 8 )|low_byte;

    Hoffe das hilft dir weiter

    Gruß
    LetsBuildBots

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 23.03.2011, 12:25
  2. Delta Roboter - ein Wochenendmärchen ;-)
    Von AlexAtRobo im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 8
    Letzter Beitrag: 08.03.2011, 07:11
  3. Delta Roboter
    Von Brantiko im Forum Mechanik
    Antworten: 87
    Letzter Beitrag: 26.08.2010, 22:17
  4. Delta Sigma Wandlung
    Von drafter im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 0
    Letzter Beitrag: 28.09.2005, 19:43
  5. delta-sigma wandler
    Von Mat1980 im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 04.04.2005, 18:28

Berechtigungen

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

    Werbung      LiFePO4 Speicher Test