From 54e9fb333dda40dcb934d60a970d42d7bbfccd0b Mon Sep 17 00:00:00 2001 From: travisutk Date: Fri, 24 Dec 2010 02:07:17 +0000 Subject: [PATCH] Saves and restores MDMCFG settings. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@805 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- shellcode/chipcon/cc1110/reflexframe.c | 27 ++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) 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; } } -- 2.20.1