Help to convert Microchips IDE to Arduino IDE ?

My apologies for posting for help here again with how to sleep the “WifiRedback”. I’m sure it can be done I just don’t know how yet.

I had asked Microchip for help to learn how to sleep the “WifiRedback” and got a response with their code below. No help yet from Linkspirite either. Their code is over my head and asking for help on how to sleep the MRF24WBOMA module along with the Atmega328 chip on the “WifiRedback” The two modules MRF24WBOMA and Atmega328 talk to each other via SPI. No Rx or Tx. Use a removable USB shield to load the code, which is removed once programed. My code (not attached) works well except for the critical need for power save. I think the G2100.c code has a sleep_Duration ability allowing the MRF24WBOMA to sleep but don’t have a clue on how to do it. I have my router set for DTIM beacon set for 3 (300ms). I'm stumped on how to implement power save that includes both the WRF24WBOMA and Atmega328.

I’m a newbie to even complicate more.

Hardware: http://www.cutedigi.com/wireless/wifi/wifi-redback-1-0-arduino-yellowjacket-compatible.html Code: https://github.com/asynclabs/WiShield/downloads

Hi,  we can only help for Microchip product. Arduino is a third party and I would suggest to check the following pages:

http://arduino.cc/en/Main/Software
http://arduino.cc/forum/

Regarding your question please check the following code to to put the device into sleep mode and then wake it up:

BOOL MiMAC_PowerState(INPUT BYTE PowerState)
        {
            switch(PowerState)
            {
                case POWER_STATE_DEEP_SLEEP:
                    {
                        //;clear the WAKE pin in order to allow the device to go to sleep
                        PHY_WAKE = 0;
                        
                        #if defined(ENABLE_PA_LNA)
                            PHYSetLongRAMAddr(TESTMODE, 0x08);              // Disable automatic switch on PA/LNA
                            PHYSetShortRAMAddr(WRITE_GPIODIR, 0x0F);        // Set GPIO direction
                            PHYSetShortRAMAddr(WRITE_GPIO, 0x00);           // Disable PA and LNA
                        #endif
                        
                        // make a power management reset to ensure device goes to sleep
                        PHYSetShortRAMAddr(WRITE_SOFTRST, 0x04);
                        
                        //;write the registers required to place the device in sleep
                        PHYSetShortRAMAddr(WRITE_TXBCNINTL,0x80);
                        PHYSetShortRAMAddr(WRITE_RXFLUSH,0x60);
                        PHYSetShortRAMAddr(WRITE_SLPACK,0x80);
                    }
                    break;
                    
                case POWER_STATE_OPERATE:
                    {
                        #if 1
                            // use wake pin to wake up the radio 
                            // enable the radio to wake up quicker
                            
                            BYTE results;
                            MIWI_TICK t1, t2;
                            
                            //wake up the device
                            PHY_WAKE = 1;
                        
                            t1 = MiWi_TickGet();
                            
                            while(1)
                            {
                                t2 = MiWi_TickGet();
                                t2.Val = MiWi_TickGetDiff(t2, t1);
                                
                                // if timeout, assume the device has waken up
                                if( t2.Val > HUNDRED_MILI_SECOND)
                                {
                                    InitMRF24J40();
                                    //MiMAC_SetChannel(MACCurrentChannel);
                                    MiMAC_SetAltAddress(myNetworkAddress.v, MAC_PANID.v);
                                    break;
                                }
                            
                                results = PHYGetShortRAMAddr(READ_ISRSTS);
                                if((results & 0x40) != 0x00)
                                {
                                    break;
                                }
                            }
                    
                            while(1)
                            {
                                t2 = MiWi_TickGet();
                                t2.Val = MiWi_TickGetDiff(t2, t1);
                                
                                // if timeout, assume the device has waken up
                                if( t2.Val > HUNDRED_MILI_SECOND )
                                {
                                    InitMRF24J40();
                                    //MiMAC_SetChannel(MACCurrentChannel);
                                    MiMAC_SetAltAddress(myNetworkAddress.v, MAC_PANID.v);
                                    break;
                                }
                                
                                results = PHYGetLongRAMAddr(RFSTATE);
                                if( (results & 0xE0) == 0xA0 )
                                {
                                    break;
                                }
                                
                            }
                            
                            PHYSetShortRAMAddr(WRITE_RFCTL, 0x04);  
                            PHYSetShortRAMAddr(WRITE_RFCTL, 0x00);              
                        
                        #else
                        
                            // use reset to wake up the radio is more
                            // reliable
                            InitMRF24J40();
                            MiMAC_SetAltAddress(myNetworkAddress.v, MAC_PANID.v);
                            
                        #endif
                        
                        #if defined(ENABLE_PA_LNA)
                            #if defined(MRF24J40MC)
                                PHYSetShortRAMAddr(WRITE_GPIODIR, 0x08);
                                PHYSetShortRAMAddr(WRITE_GPIO, 0x08);
                            #else
                                PHYSetShortRAMAddr(WRITE_GPIODIR, 0x00);
                                PHYSetShortRAMAddr(WRITE_GPIO, 0);
                            #endif
                            PHYSetLongRAMAddr(TESTMODE, 0x0F);
                        #endif             
                    }
                    break;
                    
                default:
                    return FALSE;
            }
            return TRUE;
        }

Regards
Enzo