this receive works
This commit is contained in:
parent
0f400b4341
commit
2d68c30934
18
lib/maca.c
18
lib/maca.c
|
@ -110,6 +110,7 @@ volatile packet_t* get_free_packet(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void post_receive(void) {
|
void post_receive(void) {
|
||||||
|
volatile uint32_t i;
|
||||||
disable_irq(MACA);
|
disable_irq(MACA);
|
||||||
last_post = RX_POST;
|
last_post = RX_POST;
|
||||||
/* this sets the rxlen field */
|
/* this sets the rxlen field */
|
||||||
|
@ -119,7 +120,7 @@ void post_receive(void) {
|
||||||
if(dma_rx == 0) {
|
if(dma_rx == 0) {
|
||||||
dma_rx = get_free_packet();
|
dma_rx = get_free_packet();
|
||||||
if (dma_rx == 0) {
|
if (dma_rx == 0) {
|
||||||
printf("trying to fill MACA_DMARX but out of packet buffers\n");
|
printf("trying to fill MACA_DMARX but out of packet buffers\n\r");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,15 +130,16 @@ void post_receive(void) {
|
||||||
*MACA_TMREN = (1 << maca_tmren_sft);
|
*MACA_TMREN = (1 << maca_tmren_sft);
|
||||||
/* start the receive sequence */
|
/* start the receive sequence */
|
||||||
enable_irq(MACA);
|
enable_irq(MACA);
|
||||||
/* *MACA_CONTROL = ( (1 << maca_ctrl_asap) |
|
*MACA_CONTROL = ( (1 << maca_ctrl_asap) |
|
||||||
(1 << maca_ctrl_auto) |
|
(1 << maca_ctrl_auto) |
|
||||||
(1 << maca_ctrl_prm) |
|
(1 << maca_ctrl_prm) |
|
||||||
(maca_ctrl_seq_rx));
|
(maca_ctrl_seq_rx));
|
||||||
*/
|
|
||||||
*MACA_CONTROL = (
|
/* *MACA_CONTROL = (
|
||||||
(1 << maca_ctrl_asap) | ( 4 << PRECOUNT) |
|
(1 << maca_ctrl_asap) | ( 4 << PRECOUNT) |
|
||||||
(1 << maca_ctrl_prm) |
|
(1 << maca_ctrl_prm) |
|
||||||
(maca_ctrl_seq_rx));
|
(maca_ctrl_seq_rx));*/
|
||||||
|
for(i=0; i<1000; i++) { continue; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -182,7 +184,11 @@ void post_tx(void) {
|
||||||
*MACA_TMREN = (1 << maca_tmren_cpl);
|
*MACA_TMREN = (1 << maca_tmren_cpl);
|
||||||
/* do the transmit */
|
/* do the transmit */
|
||||||
enable_irq(MACA);
|
enable_irq(MACA);
|
||||||
*MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) |
|
/* *MACA_CONTROL = ( (1 << maca_ctrl_prm) | ( 4 << PRECOUNT) |
|
||||||
|
(maca_ctrl_mode_no_cca << maca_ctrl_mode) |
|
||||||
|
(1 << maca_ctrl_asap) |
|
||||||
|
(maca_ctrl_seq_tx)); */
|
||||||
|
*MACA_CONTROL = ( (1 << maca_ctrl_prm) |
|
||||||
(maca_ctrl_mode_no_cca << maca_ctrl_mode) |
|
(maca_ctrl_mode_no_cca << maca_ctrl_mode) |
|
||||||
(1 << maca_ctrl_asap) |
|
(1 << maca_ctrl_asap) |
|
||||||
(maca_ctrl_seq_tx));
|
(maca_ctrl_seq_tx));
|
||||||
|
|
11
tests/per.c
11
tests/per.c
|
@ -16,7 +16,7 @@
|
||||||
#define DEBUG_MACA 1
|
#define DEBUG_MACA 1
|
||||||
|
|
||||||
/* how long to wait between session requests */
|
/* how long to wait between session requests */
|
||||||
#define SESSION_REQ_TIMEOUT 10 /* phony seconds */
|
#define SESSION_REQ_TIMEOUT 10000 /* phony seconds */
|
||||||
|
|
||||||
enum STATES {
|
enum STATES {
|
||||||
SCANNING,
|
SCANNING,
|
||||||
|
@ -47,7 +47,7 @@ uint32_t get_time(void) {
|
||||||
#define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8))
|
#define random_short_addr() (*MACA_RANDOM & ones(sizeof(short_addr_t)*8))
|
||||||
|
|
||||||
void build_session_req(volatile packet_t *p) {
|
void build_session_req(volatile packet_t *p) {
|
||||||
p->length = 4;
|
p->length = 16;
|
||||||
p->data[0] = 0xff;
|
p->data[0] = 0xff;
|
||||||
p->data[1] = 0x01;
|
p->data[1] = 0x01;
|
||||||
p->data[2] = 0x23;
|
p->data[2] = 0x23;
|
||||||
|
@ -72,9 +72,10 @@ void session_req(short_addr_t addr) {
|
||||||
void print_packet(packet_t *p) {
|
void print_packet(packet_t *p) {
|
||||||
volatile uint8_t i,j;
|
volatile uint8_t i,j;
|
||||||
if(p) {
|
if(p) {
|
||||||
for(j=0; j < (p->length)%16; j++) {
|
printf("len 0x%02x:",p->length);
|
||||||
|
for(j=0; j < ((p->length)%16)-1; j++) {
|
||||||
for(i=0; i<p->length; i++) {
|
for(i=0; i<p->length; i++) {
|
||||||
printf("%x02 ",p->data[i]);
|
printf("%02x ",p->data[j*16+i]);
|
||||||
}
|
}
|
||||||
printf("\n\r");
|
printf("\n\r");
|
||||||
}
|
}
|
||||||
|
@ -145,7 +146,7 @@ void main(void) {
|
||||||
sesid = open_session(p->addr);
|
sesid = open_session(p->addr);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
session_req(my_addr);
|
// session_req(my_addr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue