PUBLIC void vWatchdog_init(){ #if defined WATCHDOG_INTERNAL vAHI_WatchdogStart(12);// Prescaler is equal 12 -> 16392 ms timeout period #elif defined WATCHDOG_EXTERNAL vAHI_WatchdogStop(); // ”становить вывод через который передаЄтс¤ импульс на внешний Watchdog vAHI_DioSetDirection(0, WATCHDOG_IMPULSE); vAHI_DioSetPullup(0, WATCHDOG_IMPULSE); #elif vAHI_WatchdogStop(); #endif }
PUBLIC void vJenie_CbInit(bool_t bWarmStart) { vUtils_Init(); if(bWarmStart==FALSE) { (void)u32AHI_Init(); sHomeData.bStackReady=FALSE; /* Initialise buttons, LEDs and program variables */ vInitEndpoint(); /* Set DIO for buttons and LEDs */ vLedControl(LED1, FALSE); vLedControl(LED2, FALSE); vLedInitRfd(); vButtonInitRfd(); #ifdef NO_SLEEP vAHI_WakeTimerEnable(E_AHI_WAKE_TIMER_1, TRUE); #endif /* Set SW1(dio9) to input */ vAHI_DioSetDirection(E_AHI_DIO9_INT, 0); /* set interrupt for DIO9 to occur on button release - rising edge */ vAHI_DioInterruptEdge(E_AHI_DIO9_INT, 0); /* enable interrupt for DIO9 */ vAHI_DioInterruptEnable(E_AHI_DIO9_INT, 0); /* Set SW2(dio10) to input */ vAHI_DioSetDirection(E_AHI_DIO10_INT, 0); /* set interrupt for DIO9 to occur on button release - rising edge */ vAHI_DioInterruptEdge(E_AHI_DIO10_INT, 0); /* enable interrupt for DIO9 */ vAHI_DioInterruptEnable(E_AHI_DIO10_INT, 0); /* Set up peripheral hardware */ vALSreset(); vHTSreset(); /* Start ALS now: it automatically keeps re-sampling after this */ vALSstartReadChannel(0); sHomeData.eAppState = E_STATE_REGISTER; switch(eJenie_Start(E_JENIE_END_DEVICE)) /* Start network as end device */ { case E_JENIE_SUCCESS: #ifdef DEBUG vUtils_Debug("Jenie Started"); #endif #ifdef HIGH_POWER /* Set high power mode */ eJenie_RadioPower(18, TRUE); #endif break; case E_JENIE_ERR_UNKNOWN: case E_JENIE_ERR_INVLD_PARAM: case E_JENIE_ERR_STACK_RSRC: case E_JENIE_ERR_STACK_BUSY: default: /* Do something on failure?? */ break; } }else{ /* Set up peripheral hardware */ vALSreset(); vHTSreset(); /* Start ALS now: it automatically keeps re-sampling after this */ vALSstartReadChannel(0); switch(eJenie_Start(E_JENIE_END_DEVICE)) /* Start network as end device */ { case E_JENIE_SUCCESS: #ifdef HIGH_POWER /* Set high power mode */ eJenie_RadioPower(18, TRUE); #endif break; case E_JENIE_ERR_UNKNOWN: case E_JENIE_ERR_INVLD_PARAM: case E_JENIE_ERR_STACK_RSRC: case E_JENIE_ERR_STACK_BUSY: default: /* Do something on failure?? */ break; } } /* set watchdog to long timeout - override setting in JenNet startup */ #ifdef WATCHDOG_ENABLED vAHI_WatchdogStart(254); #endif }