mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-12-23 01:29:33 +00:00
set rxlen to zero before enabling interrupts.
This commit is contained in:
parent
2288cdecbb
commit
004143b6b8
@ -291,17 +291,16 @@ cc1020_read(void *buf, unsigned short size)
|
|||||||
memcpy(buf, (char *)cc1020_rxbuf + HDRSIZE, len);
|
memcpy(buf, (char *)cc1020_rxbuf + HDRSIZE, len);
|
||||||
RIMESTATS_ADD(llrx);
|
RIMESTATS_ADD(llrx);
|
||||||
|
|
||||||
|
// reset receiver
|
||||||
|
cc1020_rxlen = 0;
|
||||||
|
|
||||||
CC1020_SET_OPSTATE(CC1020_RX | CC1020_RX_SEARCHING);
|
CC1020_SET_OPSTATE(CC1020_RX | CC1020_RX_SEARCHING);
|
||||||
//cc1020_rxstate = CC1020_RX_SEARCHING;
|
|
||||||
if ((cc1020_state & CC1020_TURN_OFF) && (cc1020_txlen == 0)) {
|
if ((cc1020_state & CC1020_TURN_OFF) && (cc1020_txlen == 0)) {
|
||||||
cc1020_off();
|
cc1020_off();
|
||||||
} else {
|
} else {
|
||||||
ENABLE_RX_IRQ();
|
ENABLE_RX_IRQ();
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset receiver
|
|
||||||
cc1020_rxlen = 0;
|
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -451,14 +450,12 @@ interrupt(UART0RX_VECTOR) cc1020_rxhandler(void)
|
|||||||
if (pktlen == 0 || pktlen > sizeof (cc1020_rxbuf)) {
|
if (pktlen == 0 || pktlen > sizeof (cc1020_rxbuf)) {
|
||||||
cc1020_rxlen = 0;
|
cc1020_rxlen = 0;
|
||||||
CC1020_SET_OPSTATE(CC1020_RX | CC1020_RX_SEARCHING);
|
CC1020_SET_OPSTATE(CC1020_RX | CC1020_RX_SEARCHING);
|
||||||
//cc1020_rxstate = CC1020_RX_SEARCHING;
|
|
||||||
}
|
}
|
||||||
} else if (cc1020_rxlen > HDRSIZE) {
|
} else if (cc1020_rxlen > HDRSIZE) {
|
||||||
if (cc1020_rxlen == pktlen) {
|
if (cc1020_rxlen == pktlen) {
|
||||||
// disable receiver
|
// disable receiver
|
||||||
DISABLE_RX_IRQ();
|
DISABLE_RX_IRQ();
|
||||||
CC1020_SET_OPSTATE(CC1020_RX | CC1020_RX_PROCESSING);
|
CC1020_SET_OPSTATE(CC1020_RX | CC1020_RX_PROCESSING);
|
||||||
//cc1020_rxstate = CC1020_RX_PROCESSING;
|
|
||||||
|
|
||||||
// call receiver to copy from buffer
|
// call receiver to copy from buffer
|
||||||
process_poll(&cc1020_receiver_process);
|
process_poll(&cc1020_receiver_process);
|
||||||
|
Loading…
Reference in New Issue
Block a user