Na das läuft auf ein recht einfaches getchar/putchar hinaus.... Schau mal da....
https://www.roboternetz.de/community...-Progr%E4mchen
Gefunde mit Forensuche "Terminal"
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
Na das läuft auf ein recht einfaches getchar/putchar hinaus.... Schau mal da....
https://www.roboternetz.de/community...-Progr%E4mchen
Gefunde mit Forensuche "Terminal"
Sind Sie auch ambivalent?
Vielen Dank ;->
Hat geklappt *happy*
Könnte ich den auch damit eine Servo steuern?
Code:
Egal was ich abschicke, der Servo zappelt immer nur kurz hoch.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; }
mfG
Philip
Geändert von AsuroPhilip (22.05.2011 um 11:56 Uhr)
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
> 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
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
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?
Lesezeichen