@radbruch

Senden tuht er jetzt ununterbrochen (soll ja auch so sein!)
Aber er "hört" nicht auf mich... und die Servos gehen in die MAX stellung?!?

Code:
    void task_befehle(void)
    {
        char uart_receive_buffer[UART_RECEIVE_BUFFER_SIZE+1];

        uint8_t uart_status;
        uint8_t read_pos = 0;
        uint8_t write_pos = 0; 
        uint8_t read_size = 0;
        uint8_t write_size = 0;

        static  uint8_t dummy;
        if(((uint8_t)(write_size - read_size)) < UART_RECEIVE_BUFFER_SIZE) 
        {
            uart_receive_buffer[write_pos++] = UDR;
            write_size++;
            if(write_pos > UART_RECEIVE_BUFFER_SIZE) 
            write_pos = 0;
            uart_status = UART_BUFFER_OK;
        }        
        else
        {    
        dummy = UDR;
        uart_status = UART_BUFFER_OVERFLOW;
        }


        long pos = atoi(uart_receive_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);
                            }
        }