Hmm nun probier ich da schon eine Weile rum, aber irgendwie funktioniert da irgendwas nicht so wie es soll.
Mein Quelltext sieht derzeit so aus.
Code:
#include "RP6ControlLib.h"
#include "RP6I2CmasterTWI.h"
#include "RP6Control_I2CMasterLib.h"
void I2C_transmissionError(uint8_t errorState)
{
writeString_P("\nI2C ERROR - TWI STATE: 0x");
writeInteger(errorState, HEX);
writeChar('\n');
}
char receiveBuffer[8];
char dir_char[1], speed_1_char[3], speed_2_char[3];
void getInputLine(void)
{
clearLCD();
writeStringLCD("getinputline");
static uint8_t buffer_pos = 0;
if(getBufferLength())
{
receiveBuffer[buffer_pos] = readChar();
if((receiveBuffer[buffer_pos]=='\n')||(receiveBuffer[buffer_pos]=='\r'))
{
receiveBuffer[buffer_pos]='\0';
buffer_pos = 0;
}
else if(buffer_pos >= 8)
{
receiveBuffer[7]='\0';
buffer_pos = 0;
}
buffer_pos++;
}
}
uint8_t speed_1=0;
uint8_t speed_2=0;
uint8_t direction=0;
uint8_t speed_max=200;
int main(void)
{
initRP6Control();
initLCD();
mSleep(500);
I2CTWI_initMaster(100);
I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);
setLEDs(0);
mSleep(500);
sound(180,80,25);
sound(220,80,0);
while(1)
{
task_checkINT0();
task_I2CTWI();
clearLCD();
writeStringLCD("fertig");
mSleep(500);
clearLCD();
//uerbtragung in der form 1050080
//1. erste stelle richtung
//richtung vorwaerts -> 1
//richtung rueckwaerts -> 2
//drehen links -> 3
//drehen rechts -> 4
//2.-4. stelle speed_1 (linke kette)
//5.-7. stelle speed_2 (rechte kette)
getInputLine();
direction=atoi(dir_char);
speed_1=atoi(speed_1_char);
speed_2=atoi(speed_2_char);
writeStringLCD("d:");
writeIntegerLCD(direction, 10);
writeStringLCD("s1:");
writeIntegerLCD(speed_1, 10);
writeStringLCD("s2:");
writeIntegerLCD(speed_2, 10);
}
return 0;
}
Aber aus einem mir unerfindlichen Grund kommt er immer nur bis zur LCD Anzeige "fertig".
Anfangs hatte ich das getInputLine(); mal vor der LCD-Ausgabe für "Fertig", da ist er erst in diese funktion gegangen und hat mir den text "getinputline" angezeigt und danach "fertig". Doch jetzt wo ich die Reihenfolge der zwei getauscht habe macht er das auch nicht mehr.
Ich wär für jeden Hinweis dankbar.
Grüße vogel
Lesezeichen