-         

Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 44

Thema: RP6_M32 - M32 soll das was per uart geschick wird im Display ausgeben !?!

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251

    RP6_M32 - M32 soll das was per uart geschick wird im Display ausgeben !?!

    Anzeige

    Hallo,

    stehe mal wieder auf`m Schlauch ;->

    Ist es möglich, wenn ich im RP6_Loader, "123" tippe und es absende, dass es im Display steht???

    Habe schon viel probiert und gegooglet, habs aber nicht geschaft .

    Hoffe ihr könnt mir helfen ;->


    Vielen Dank
    Philip

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Na das läuft auf ein recht einfaches getchar/putchar hinaus.... Schau mal da....
    http://www.roboternetz.de/community/...-Progr%E4mchen
    Gefunde mit Forensuche "Terminal"
    Sind Sie auch ambivalent?

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Vielen Dank ;->

    Hat geklappt *happy*

    Könnte ich den auch damit eine Servo steuern?

    Code:

    Code:
    #include "RP6ControlLib.h"
    #include "RP6ControlServoLib.h"
    #include "RP6uart.h"
    
    
        char Buffer[UART_RECEIVE_BUFFER_SIZE + 1];
    
    
        uint8_t Eingabe(void){
    
                static buffer_pos = 0;
                if(getBufferLength()){
                Buffer[buffer_pos]=readChar();
                if(Buffer[buffer_pos]=='\n'){
                Buffer[buffer_pos] = '\0';
                buffer_pos = 0;
                return 1;
            }
                else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE) {
                Buffer[UART_RECEIVE_BUFFER_SIZE] = '\0'; 
                buffer_pos = 0;
                 return 2;
                }
                buffer_pos++;
            }        
        return 0;
    }
    
    void Warten(void){
    
    while(!Eingabe());
    
    }
    
    
    
    int main(void)
    {  
    
        initRP6Control();
        initLCD();
    
    
        setLEDs(0b111111);
        mSleep(500);
        setLEDs(0b000000);
        
        initSERVO(SERVO1);
    
        
        while(true)  
        {
            Warten();
            setCursorPosLCD(0, 0);
            writeStringLCD(Buffer);
            
            servo1_position =  Buffer;
    
             
    
    
            task_SERVO();
    
            
            mSleep(3);
        }
        return 0;
    }
    Egal was ich abschicke, der Servo zappelt immer nur kurz hoch.


    mfG
    Philip
    Geändert von AsuroPhilip (22.05.2011 um 11:56 Uhr)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von AsuroPhilip Beitrag anzeigen
    Vielen Dank ;->

    Hat geklappt *happy*

    Könnte ich den auch damit eine Servo steuern?

    Code:

    Code:
    #include "RP6ControlLib.h"
    #include "RP6ControlServoLib.h"
    #include "RP6uart.h"
    
    
        char Buffer[UART_RECEIVE_BUFFER_SIZE + 1];
    
    
        uint8_t Eingabe(void){
    
                static buffer_pos = 0;
                if(getBufferLength()){
                Buffer[buffer_pos]=readChar();
                if(Buffer[buffer_pos]=='\n'){
                Buffer[buffer_pos] = '\0';
                buffer_pos = 0;
                return 1;
            }
                else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE) {
                Buffer[UART_RECEIVE_BUFFER_SIZE] = '\0'; 
                buffer_pos = 0;
                 return 2;
                }
                buffer_pos++;
            }        
        return 0;
    }
    
    void Warten(void){
    
    while(!Eingabe());
    
    }
    
    
    
    int main(void)
    {  
    
        initRP6Control();
        initLCD();
    
    
        setLEDs(0b111111);
        mSleep(500);
        setLEDs(0b000000);
        
        initSERVO(SERVO1);
    
        
        while(true)  
        {
            Warten();
            setCursorPosLCD(0, 0);
            writeStringLCD(Buffer);
            
            servo1_position =  Buffer;
    
             
    
    
            task_SERVO();
    
            
            mSleep(3);
        }
        return 0;
    }
    Egal was ich abschicke, der Servo zappelt immer nur kurz hoch.


    mfG
    Philip
    Mit C kenne ich mich kaum aus, aber aber Du liest ein Char(), die PWM für ein Servo braucht aber einen Zahlen Wert?
    z.B. 0...255 oder täusche ich mich jetzt?

    Gruß Richard

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Ne char ist egal aber

    servo1_position = Buffer;

    das ist böse. Du weist den ZEIGER Buffer als wert für servo1_position zu.

    Du musst auch noch die ASCII Zeichen vom PC umwandeln.
    Schau Dir mal das Selftest Programm an.
    Oh und natürlich die Beispielprogramme zum UART (RP6BASE examples) da ist das auch gezeigt!

    MfG,
    SlyD

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Zitat Zitat von SlyD Beitrag anzeigen
    servo1_position = Buffer;

    das ist böse. Du weist den ZEIGER Buffer als wert für servo1_position zu.

    Du musst auch noch die ASCII Zeichen vom PC umwandeln.
    Wie wandelt man das denn um?

    Weil wenn ich 12 schreibe, steht im LCD auch 12, und diese 12 soll dann die servo1_position sein. Und wenn dan ne 13 kommt soll dann natürlich die servo1_position 13 sein.


    mfG
    Philip

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    > wenn ich 12 schreibe, steht im LCD auch 12,

    Klar, Das LCD versteht ja auch ASCII Codes also muss da nix umgewandelt werden


    s. z.B. RP6Base_Selftest.c ab Zeile 1265

    Code:
            if(getInputLine()) 
            {
    ...
    ...
                { 
                    pwm_tmp = atoi(receiveBuffer); 
                   
    ... fehlercheck ... 
    
                    if(pwm_tmp > 120){pwm_tmp = 120; writeString_P("\n--> Power limited to 120!");} 
                    else if(pwm_tmp < 0) {pwm_tmp = 0;} 
                    pwm = pwm_tmp; 
                     
                    writeString_P("\n--> Change speed to:"); 
                    writeInteger(pwm_tmp,DEC); 
                    writeChar('\n'); 
                                 
                    setMotorPower(pwm,pwm); 
                }


    MfG,
    SlyD

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Danke, hat geklappt ;->

    Kann ich auch mehrere Servos so steuern?

    Also wenn ich sende "1:100" soll der erste Servo auf 100 und wenn ich "2:50" sende der 2. auf 50, oder geht das nicht, bzw. anders?

    mfG
    Philip

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Zitat Zitat von AsuroPhilip Beitrag anzeigen

    Also wenn ich sende "1:100" soll der erste Servo auf 100 und wenn ich "2:50" sende der 2. auf 50, oder geht das nicht, bzw. anders?
    Keiner ne Idee?

  10. #10
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Zitat Zitat von AsuroPhilip Beitrag anzeigen
    Keiner ne Idee?
    Der Thread heist "RP6_M32 - M32 soll das was per UART geschick wird im Display ausgeben !?!"
    und nicht "Also wenn ich sende "1:100" soll der erste Servo auf 100 und wenn ich "2:50" sende der 2. auf 50,"

    Meine Idee wäre.. du versuchst es mal selbst mit nachdenken...

    Und nein ich bin nicht unfreundlich - aber das Du nach nicht mal 24 h schon off topic und ungeduldig nachstocherst ... ist unfein - und mit Verlaub - macht mich stinke stock sauer.
    Sind Sie auch ambivalent?

Seite 1 von 5 123 ... LetzteLetzte

Ähnliche Themen

  1. Asuro soll an Matlab ausgeben
    Von blueyo im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 05.03.2011, 20:14
  2. Antworten: 75
    Letzter Beitrag: 12.12.2010, 22:34
  3. Antworten: 13
    Letzter Beitrag: 21.11.2010, 19:41
  4. Crash Bobby soll Text auf Monitor ausgeben
    Von palermo im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 7
    Letzter Beitrag: 11.12.2006, 15:09
  5. Asuro soll Text ausgeben :D
    Von R3ð_BuLL© im Forum Asuro
    Antworten: 4
    Letzter Beitrag: 09.11.2006, 11:26

Berechtigungen

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