X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Ftda5250%2FTda5250RadioP.nc;h=9b82771c9f92c34a7bbb20a03a2f709a140cea07;hb=6f238a6eff8c98f2edcef995ca6bb9069a1a4f63;hp=20d39dcf9e563cbb0650354613aac7349a2b89f3;hpb=9b335cc16cefd4a8ea239727ac508f8b97da2cd5;p=tinyos-2.x.git diff --git a/tos/chips/tda5250/Tda5250RadioP.nc b/tos/chips/tda5250/Tda5250RadioP.nc index 20d39dcf..9b82771c 100644 --- a/tos/chips/tda5250/Tda5250RadioP.nc +++ b/tos/chips/tda5250/Tda5250RadioP.nc @@ -54,6 +54,7 @@ module Tda5250RadioP { interface Tda5250Control; interface RadioByteComm; interface ResourceRequested; + interface ClkDiv; } uses { interface HplTda5250Config; @@ -86,6 +87,7 @@ implementation { /**************** Radio Start *****************/ task void startDoneTask() { + signal ClkDiv.startDone(); signal SplitControl.startDone(SUCCESS); } @@ -135,18 +137,22 @@ implementation { switch(mode) { case RADIO_MODE_ON_TRANSITION: call HplTda5250Config.reset(); + // call HplTda5250Config.SetRFPower(240); + // call HplTda5250Config.SetClockOnDuringPowerDown(); call HplTda5250Config.SetRFPower(255); call ConfigResource.release(); atomic radioMode = RADIO_MODE_ON; post startDoneTask(); break; case RADIO_MODE_OFF_TRANSITION: + signal ClkDiv.stopping(); call HplTda5250Config.SetSleepMode(); call ConfigResource.release(); atomic radioMode = RADIO_MODE_OFF; post stopDoneTask(); break; case RADIO_MODE_SLEEP_TRANSITION: + signal ClkDiv.stopping(); call HplTda5250Config.SetSlaveMode(); call HplTda5250Config.SetSleepMode(); atomic radioMode = RADIO_MODE_SLEEP; @@ -405,6 +411,7 @@ implementation { signal Tda5250Control.RssiStable(); break; case RECEIVER_DELAY : + signal ClkDiv.startDone(); delayTimer = RSSISTABLE_DELAY; call DelayTimer.start(TDA5250_RSSI_STABLE_TIME-TDA5250_RECEIVER_SETUP_TIME); if (call DataResource.immediateRequest() == SUCCESS) { @@ -414,6 +421,7 @@ implementation { } break; case TRANSMITTER_DELAY : + signal ClkDiv.startDone(); if (call DataResource.immediateRequest() == SUCCESS) { switchDataResource(); } else { @@ -443,4 +451,8 @@ implementation { } default async event void RadioByteComm.txByteReady(error_t error) { } + default async event void ClkDiv.startDone() { + } + default async event void ClkDiv.stopping() { + } }