[Tinyos-help] Read/write registers of CC2420 with Boomerang
Ole Bischoff
s01item2 at item.uni-bremen.de
Wed Jun 7 07:04:19 PDT 2006
Hi,
I'm using Boomerang and TelosB and want to read/write some
registers of the CC2420. I know that I can use the functions of
the CC2420Control-interface, but I really would like to know how
the resource handler works. So I wrote a little module that increases
the RF-power of the radio and displays the value on the LEDs.
My program should work like a simple 3-bit counter (Blink example),
but when I start it on my tmote the default RF-power value (0x1F)
is displayed on the LEDs. When I change line37 of RegCC2420M.nc
to "call Radio.SetRFPower(rh, m_value) " the whole thing works fine.
Perhaps someone can help me with this problem a.k.a. resource handler.
Best regards,
Ole Bischoff
RegCC2420.nc
01 configuration RegCC2420 {
02 }
03 implementation {
04 components Main
05 , RegCC2420M
06 , TimerC
07 , LedsC
08 , CC2420RadioC
09 , HPLCC2420C;
10
11 components new CC2420ResourceC() as RadioResource;
12
13 Main.StdControl -> TimerC;
14 Main.StdControl -> RegCC2420M;
15
16 RegCC2420M.TimerRFPower -> TimerC.Timer[unique("Timer")];
17
18 RegCC2420M.Resource -> RadioResource.ResourceCmdAsync;
19
20 RegCC2420M.HPLRadio -> HPLCC2420C.HPLCC2420;
21 RegCC2420M.Radio -> CC2420RadioC.CC2420Control;
22
23 RegCC2420M.Leds -> LedsC;
24 }
RegCC2420M.nc
01 module RegCC2420M {
02 provides {
03 interface StdControl;
04 }
05 uses {
06 interface Leds;
07 interface Timer as TimerRFPower;
08 interface CC2420Control as Radio;
09 interface HPLCC2420 as HPLRadio;
10 interface ResourceCmdAsync as Resource;
11 }
12 }
13 implementation {
14
15 /************************* VARIABLES *******************************/
16 uint8_t m_value = 3;
17
18 /************************* STD CONTROL *****************************/
19 command result_t StdControl.init() { return SUCCESS; }
20
21 command result_t StdControl.start() {
22 call TimerRFPower.start( TIMER_REPEAT, 1000 );
23 return SUCCESS;
24 }
25
26 command result_t StdControl.stop() {
27 return SUCCESS;
28 }
29
30 /************************* TIMER ***********************************/
31 event result_t TimerRFPower.fired() {
32 call Resource.request(RESOURCE_NONE);
33 return SUCCESS;
34 }
35
36 async event void Resource.granted(uint8_t rh) {
37 call HPLRadio.write(rh, CC2420_TXCTRL, m_value);
38
39 call Leds.set(call Radio.GetRFPower()/4);
40
41 if (m_value == 31) {
42 call TimerRFPower.stop();
43 call Leds.set(0);
44 }
45
46 m_value += 4;
47
48 call Resource.release();
49 }
50 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.millennium.berkeley.edu/pipermail/tinyos-help/attachments/20060607/a1383c6b/attachment.htm
More information about the Tinyos-help
mailing list