X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=shellcode%2Fchipcon%2Fcc1110%2Freflexframe.c;h=b4f6765a46af98bafabdd73b5f6e282c6062e624;hp=8273862fc3081d6f585eaba7c32428190aae5bde;hb=54e9fb333dda40dcb934d60a970d42d7bbfccd0b;hpb=31f2df6e0211831dc06482858b4e9d32d19e4ab4 diff --git a/shellcode/chipcon/cc1110/reflexframe.c b/shellcode/chipcon/cc1110/reflexframe.c index 8273862..b4f6765 100644 --- a/shellcode/chipcon/cc1110/reflexframe.c +++ b/shellcode/chipcon/cc1110/reflexframe.c @@ -2,6 +2,26 @@ #include "cc1110-ext.h" char __xdata at 0xfe00 packet[256] ; + +char __xdata at 0xfdf0 cfg[5] ; +//! Save MDMCFG* +void save_settings(){ + cfg[0]=MDMCFG0; + cfg[1]=MDMCFG1; + cfg[2]=MDMCFG2; + cfg[3]=MDMCFG3; + cfg[4]=MDMCFG4; + +} +//! Restore MDMCFG* +void restore_settings(){ + MDMCFG0=cfg[0]; + MDMCFG1=cfg[1]; + MDMCFG2=cfg[2]; + MDMCFG3=cfg[3]; + MDMCFG4=cfg[4]; +} + void carrier(){ // Set the system clock source to HS XOSC and max CPU speed, // ref. [clk]=>[clk_xosc.c] @@ -60,6 +80,8 @@ void main(){ //Disable interrupts. RFTXRXIE=0; + save_settings(); + //carrier(); //idle a bit. @@ -67,6 +89,7 @@ void main(){ while(MARCSTATE!=MARC_STATE_IDLE); while(1){ + restore_settings(); //idle a bit. RFST=RFST_SFSTXON; while(MARCSTATE!=MARC_STATE_FSTXON); @@ -92,9 +115,9 @@ void main(){ carrier(); RFON; - sleepMillis(2000); + //sleepMillis(2000); - //sleepMillis(500); + sleepMillis(500); HALT; } }