@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); } }
Lesezeichen