Gast
#665942
Salu zusammen
Irgendwie drängen sich immer noch Fragen auf, ich weiss nicht genau ob
ich da grundsätzlich einen Überlegungsfehler drin habe, oder ob es so
einfach nicht funktionieren kann.
Folgendes:
Ich habe eine Interruptroutine die angesprochen wird wenn Zeichen im
Uart RX reinkommen:
unsigned char nmeabuffer[512];
interrupt (UART1RX_VECTOR) usart1_rx(void)
{
_DINT();
{
nmeabuffer[j] = RXBUF1;
j++;
}
_EINT();
}
Im main habe ich dann einfach irgendwo gefragt
if(j > 505)
{
....
}
Nun ist mir das immer abgestürzt.
Habe es nun folgendermassen gelöst:
interrupt (UART1RX_VECTOR) usart1_rx(void)
{
_DINT();
if(j < 505)
{
nmeabuffer[j] = RXBUF1;
j++;
}
_EINT();
}
if (j >= 504)
{
....
}
das läuft, aber ich frage mich ob das so richtig ist. Eigentlich möchte
ich nicht irgendwann nachdem die 505 Zeichen im nmeabuffer erreicht sind
den buffer verarbeiten sondern DIREKT nachdem er voll ist. Wie löse ich
das? Ich programmiere auf einem MSP430 mit mspgcc
Danke schonmal im Voraus
Greets