
Zitat von
Fabian E.
Du must nun eine Funktion getCommand() schreiben, die den übertragenen String in einen Befehl umwandelt

Ich brauche doch nur die Zahl, die ich per UART schicke!
Habs so versucht, klappt nicht:
Code:
char Buffer[UART_RECEIVE_BUFFER_SIZE + 1];
uint32_t Eingabe(void){
static buffer_pos = 0;
if(getBufferLength())
{
Buffer[buffer_pos]=readChar();
if(Buffer[buffer_pos]=='\n')
{
buffer_pos = 0;
return 1;
}
else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE)
{
buffer_pos = 0;
return 2;
}
buffer_pos++;
}
return 0;
}
void task_befehle(void)
{
Eingabe();
if(Eingabe())
{
long pos = atoi(Buffer);
if(pos < 180 && pos > 0)
{
servo1_position = pos;
}
else
if(pos < 360 && pos > 180)
{
servo2_position = pos - 180;
}
else
if(pos < 540 && pos > 360)
{
servo3_position = pos - 360;
}
else
if(pos == -1)
{
I2CTWI_transmitByte(PCF, 0);
}
else
if(pos == -2)
{
I2CTWI_transmitByte(PCF, 3);
}
}
}
Edit:
hab mir mal den wert von pos anzeigen lassen, ist wenn ich eine zahl sende, sendet er mir das zurück! Wenn ich mehrer Zahlen sende macht er nicht!
Edit2: Vielleicht mache ich es doch wie Fabian! @Fabian E. was sendes du denn von pc aus?
Lesezeichen