Beispiel #1
0
void rfSendData(void)
{
    uint8 pTxData[20];
    uint8 ret;
    // Keep Receiver off when not needed to save power
    basicRfReceiveOff();
    //sprintf(pTxData,"distince:%u CM.", uWaveDistance());
    printf("goto while...\r\n");
    // Main loop
    while (TRUE) {
       printf("in while...\r\n");
       dht11_update(pTxData);
       printf("get data ok...\r\n");
       ret = basicRfSendPacket(RECV_ADDR, pTxData, sizeof pTxData);       
       if (ret == SUCCESS) {
          printf("send msg ok!!!\r\n");
          hal_led_on(1);
          halMcuWaitMs(100);
          hal_led_off(1);
          halMcuWaitMs(900); 
       } else {
          printf("send msg error!!!\r\n");
          hal_led_on(1);
          halMcuWaitMs(1000);
          hal_led_off(1);
       }
       
    }
}
Beispiel #2
0
void rfSendData(void)
{
  uint8 pTxData[20] ={'l','i','y','a','n','f','e','n','g','v','5','8','7','a','b',0};
    uint8 ret;
    uint8 recvCnt=0;
    uint8 ch=0;
    // Keep Receiver off when not needed to save power
    basicRfReceiveOff();
    
    // Main loop
    while (TRUE) {
      recvCnt=0;
      
       ret = basicRfSendPacket(0xffff, pTxData, sizeof pTxData); //广播地址      
       if (ret == SUCCESS) {
          printf("send msg ok\r\n");
          hal_led_on(1);
          halMcuWaitMs(100);
          hal_led_off(1);
          halMcuWaitMs(900); 
       } else {
          printf("send msg error\r\n");
          hal_led_on(1);
          halMcuWaitMs(1000);
          hal_led_off(1);
       }
       
    }
}
Beispiel #3
0
 __interrupt void T1_ISR(void)            
 {       
          
         
      ++counter;
      if(counter>myrate){
          counter=0;  
          dht11_update();
          sprintf(pTsxData,"shidu:%utmp%u℃\r\n", gdat1, gdat2);
          //printf("sensor data.....");
          //printf(pTsxData);
          //printf("\r\n");
          ret = basicRfSendPacket(0xffff, pTsxData, sizeof pTsxData);       
          ledflashcounter=8;
          hal_led_on(1);
          /*if (ret == SUCCESS) {
              printf("send msg ok\r\n");
           } else {
              printf("send msg error\r\n");
           }*/ 
      }
      if(ledflashcounter>0)
      {
          --ledflashcounter;
          if(ledflashcounter==0)
          {
               hal_led_off(1);
          }
      }
      T1IF=0;       
 }
Beispiel #4
0
void hal_cpu_enable_irqs_and_sleep(void){
	hal_led_off();
	__enable_irq();
	__asm__("wfe");	// go to sleep if event flag isn't set. if set, just clear it. IRQs set event flag

	// note: hal_uart_needed_during_sleep can be used to disable peripheral clock if it's not needed for a timer
	hal_led_on();
}
extern eOresult_t eo_theEMSdgn_checkEthLinksStatus_quickly(EOTheEMSdiagnostics_t* p, uint8_t *link1_isup, uint8_t *link2_isup)
{

//     uint8_t PHYaddr = 0x1;
//     uint8_t REGaddr = 0x1;
//     uint16_t status_link;
     char str[50];
//     #define LINK_IS_UP 0x00000004
    uint8_t linkst_mask, links_num;
    static uint8_t link_st[2] = {0};
    uint8_t state2notify = 0;
    
    
    if((NULL == p) || (NULL == link1_isup) || (NULL == link2_isup))
    {
        return(eores_NOK_nullpointer);
    }
    
    hal_eth_check_links(&linkst_mask, &links_num);
    
    if((linkst_mask & 0x01) == 0x01)
    {
        *link1_isup = 1;
        if(link_st[0] == 0)
        {
            snprintf(str, sizeof(str)-1, "Link 0 down --> up (mask=%d)", linkst_mask);
            hal_trace_puts(str);
            link_st[0] = 1;
            state2notify = 1;
        }
    }
    else
    {
         hal_led_on(hal_led1);
        if(link_st[0] == 1)
        {
            snprintf(str, sizeof(str)-1, "Link 0 up --> down (mask=%d)", linkst_mask);
            hal_trace_puts(str);
            link_st[0] = 0;
            state2notify = 1;
        }
 
        
    }

     if((linkst_mask & 0x02) == 0x02)
    {
        *link2_isup = 1;
         if(link_st[1] == 0)
        {
            snprintf(str, sizeof(str)-1, "Link 1 down --> up (mask=%d)", linkst_mask);
            hal_trace_puts(str);
            link_st[1] = 1;
            state2notify = 1;
        }
    }
    else
    {
        hal_led_on(hal_led2);
        if(link_st[1] == 1)
        {
            snprintf(str, sizeof(str)-1, "Link 1 up --> down (mask=%d)", linkst_mask);
            hal_trace_puts(str);
            link_st[1] = 0;
            state2notify = 1;
        }
    }
    
    if(state2notify)
    {
        eo_dgn_emsperiph.eth_dev.linksmask = linkst_mask;
        eo_theEMSdgn_Signalerror(&s_thedgn, eodgn_nvidbdoor_emsperiph , 0);
        snprintf(str, sizeof(str)-1, "Signal error %d ", linkst_mask);
        hal_trace_puts(str);
    }
//     snprintf(str, sizeof(str)-1, "LINKs mask %d ", linkst_mask);
//     hal_trace_puts(str);
 
    
    
//     *link1_isup = 0;
//     *link2_isup = 0;
//     
//     status_link = hal_eth_smi_read(PHYaddr, REGaddr);
//     if(EO_COMMON_CHECK_FLAG(status_link, LINK_IS_UP))
//     {
//         *link1_isup = 1;
//         snprintf(str, sizeof(str)-1, "LINK 1 is up!! %d", status_link);
//         hal_trace_puts(str);
//     }
//     
//     PHYaddr = 0x2;
//     status_link = hal_eth_smi_read(PHYaddr, REGaddr);
//     if(EO_COMMON_CHECK_FLAG(status_link, LINK_IS_UP))
//     {
//         *link2_isup = 1;
//         snprintf(str, sizeof(str)-1, "LINK 2 is up!! %d", status_link);
//         hal_trace_puts(str);
//     }
    
    return(eores_OK);

}