I'm using the ez4300-RF2480 kit and a slightly modified ZASA demo app. There's one key location that, if I set a break point there, allows the application to run flawlessly. However, if I don't, the application fails under certain conditions. Here's the steps:
1. Modify the application to tick on 1ms timerA interrupts instead of the default 1s. This includes adding "000" to all the timing constants, which need to request ms ticks instead of sec ticks from halTimerSet( ... ). Set APP_DATA_CNF to FALSE.
2. Modify mtTx( ... ) to filter for "SRCE_REPORT" packets (0x0001) and interpret data as ASCII. Perhaps not important, but I set the baud to 115200 and have it wired through my own RS232 driver.
3. Set "APP_REPORT_INTERVAL 100" to cause the source devices to transmit data ever 100ms instead of the default 10sec. This is where the problems start. As low as 250ms seems to work pretty reliably if you don't continue to step 4.
4. In "AppExecHost()" set a breakpoint on the line for "appSrceData()". This is the first time appSrceData() is executed. Subsequent times run from appExecHal() due to the HAL_EVT_TIMER_APP flag that was just enabled in AppExecHost().
Run in debug mode with hardware breakpoints and only the breakpoint in line 4. When the program breaks, press F5 to resume. Note the green LED on the sink (coordinator) and red LED on the source blink approx every 100ms (104ms in my case). You should also see data streaming to hyperterminal if you're connected. You can even power off the source and power it back on. What's it's re-established the network it will immediately begin receiving packets at a rate of 10Hz..
5. Clear the breakpoints and reset the source device. Initialize as normal, either disconnected from the computer or in debug mode without the breakpoint mentioned in 4.
The device will connect and the red LED on the source will flash at a rate of about 10Hz, but the green LED on the sink (coordinator) will only blink ONCE. Only the first packet streams out the UART to hyperterminal as only the first packet made it through for some reason.
So there's the big question. Why does it work in 4 (with the breakpoint) but not in 5 (without the breakpoint). Does the zaccel have some "settling time" after initial configuration before you can send packets? But that doesn't seem right, as the first packet makes it through (or, if not the first, a packet early on) but none of the others do. But where else could the problem be located?
--Paul
Edit An alternate breakpoint location that provides valid behavior is on "appSetPoll();" in appExec().