- Akku Tests und Balkonkraftwerk Speicher         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 32 von 32

Thema: RC-gesteuerter RP6

  1. #31
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Zu 1: Die Funktion writeInteger() wird in RP6uart.c folgenderweise definiert:
    Code:
    /**
     * Write a number (with specified base) to the UART.
     *
     * Example:
     *
     *			// Write a hexadecimal number to the UART:
     *			writeInteger(0xAACC,16);
     *			// Instead of 16 you can also write "HEX" as this is defined in the
     *			// RP6RobotBaseLib.h :
     *			writeInteger(0xAACC, HEX);
     *			// Other Formats:
     *			writeInteger(1024,DEC);  	// Decimal
     *			writeInteger(044,OCT);		// Ocal
     *			writeInteger(0b11010111,BIN); // Binary
     */
    void writeInteger(int16_t number, uint8_t base)
    {
    	char buffer[17];
    	itoa(number, &buffer[0], base);
    	writeString(&buffer[0]);
    }
    Erster Parameter ist der 16bit Wert der angezeigt werden soll, zweiter Parameter die Zahlenbasis der Ausgabe. Diese Basis wird direkt an itoa (integer to ascii) weitergereicht. Eine Auswahl von gebräuchlichen Basen werden in RP6uart.h definiert und vor dem Kompilieren durch die entsprechenden Werte ersetzt:
    #define HEX 16
    #define DEC 10
    #define OCT 8
    #define BIN 2
    Und weil ich mein kleines Köpfchen nicht mit allem Müll überladen will, merke ich mir nicht die Definitionen sondern gebe die Basis direkt als Ziffer ein

    Zu 2: Wenn deine Progammvariante per Copy&Paste aus meinem Programm zusammengesetzt ist (es scheint mir so), dann sollte es auch funktionieren. Zu den zu erwartenden Werten: Bei Servosteuerungen wird meist ein 100kHz-Takt verwendet, weil dann 100 Einheiten genau einer Millisekunde entspricht. Da die Timer1-Overflow-ISR des RP6 mit knapp 20kHz aufgerufen wird, sollte der Wert für eine Millisekunde (das ist ungefähr die Mitte meiner RS2-Servos) etwas größer als 20 sein. (Die 26 von oben sind etwas außerhalb der Mitte.)

    Zu 3: Nein, ohne C-Control PRO MEGA128 kann man das M128 nicht verwenden. Das C-Control ist der Microkontroller des M128 (mit einem ATMega12:

    Zitat Zitat von Conrad Onlinekatalog
    Mit diesem Modul können Sie die in Basic und CompactC programmierbaren C-Control PRO MEGA128 Module zur Steuerung des RP6 über den I²C Bus verwenden.
    Leider köchelt Conrad hier sein eigenes Süppchen, Basic und CompactC sind zwar verbreitet, aber leider kein echter Standart. Da ich noch keinen Kontakt zum C-Control hatte, würde ich mir ein M32 zulegen.

    Gruß

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

  2. #32
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205
    Natürlich ist das dein Programm. Ich habe es eben nur ein bisschen erweitert und unnötige Kommentare rausgestrichen. Also du hast ja gesagt dass das Programm funktionieren sollte. Es soll nämlich die gelesenen Werte (14 bis 38 ) in Motorbefehle umwandeln. Tja wenn das so ist brauch ich mir nur noch die Fernsteueranlage kaufen und kann den RP6 dann mit dieser Fernsteuern. Danke
    Nichts existiert durch sich allein!
    Bild hier  

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

12V Akku bauen