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"
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 10: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
Lesezeichen