There are a few problems with your app that could cause trouble:
- sendRadioBursts() is a non-blocking function, but it looks like you were hoping to just call it 100 times to have it send 100 packets.
- When switching between RX and TX modes, you will probably need to disarm the DMA channel at some point before rearming it. I don't think you have any code for doing that.
- Instead of "RFIF = RFIF & (1<<4);" you probably meant "RFIF = RFIF & ~(1<<4);"
The CC2511's radio is a complicated machine with lots of states (have you seen Figure 54 in the datasheet?) and it needs to be in the right state for it to work. When we add DMA (and interrupts) to the mix, it gets even more complicated to keep everything in the right state. You should probably add debugging code that prints MARCSTATE (and other important variables) to USB when requested. For example, since your receiver is supposed to receive something but is not, you should make sure radio is actually in receive mode by checking that the MARCSTATE is 13,14, or 15 and you should make sure the transmitter actually transmitted something.
However, I think it will be easier for you if you try to use our existing libraries and apps instead of making your own. We have radio libraries that can do two-way communication: radio_queue, radio_link and radio_com (which uses radio_link).
I think the test_radio_link app would be a good starting point for what you want to do (except that it uses ACKs). The test_radio_link app demonstrates how to do two-way packet-based communication between two Wixels. If you send a character 'a','b','c','d','e','f' or 'g' to one Wixel on its virtual COM port, it will send a packet to the other Wixel, which should tell you that it received the packet by sending a message to its virtual COM port. You should first get the unmodified app working the way you would expect, then slowly add features to the app and test frequently to make sure things are still working.