Ejemplo n.º 1
0
int main() {
  struct data_packet packet;
  packet.senderAddress = MY_ADDRESS;
  packet.receiverAddress = HOME_ADDRESS;

  led_init();
  TX_USART_Init(1200);
  sht1x_init();
  while(1) {
    _delay_ms(1000);
    uint16_t humidity = sht1x_read_humidity();
    uint16_t temperature = sht1x_read_temp();
    while (humidity == -1 || temperature == -1) {
      sht1x_reset();
      led_toggle();
      _delay_ms(100);
      humidity = sht1x_read_humidity();
      temperature = sht1x_read_temp();
    }

    packet.data[0] = humidity & 0xff;
    packet.data[1] = (humidity >> 8) & 0xff;
    packet.data[2] = temperature & 0xff;
    packet.data[3] = (temperature >> 8) & 0xff;

    send_packet(&packet);
    led_toggle();
  }
  return 0;
}
Ejemplo n.º 2
0
int main(void)
{
    led_init();    
    sht1x_init();
    //sser_init();
    
    wdt_enable(WDTO_1S);    
    /* Even if you don't use the watchdog, turn it off here. On newer devices,
     * the status of the watchdog (on/off, period) is PRESERVED OVER RESET!
     */
    /* RESET status: all port bits are inputs without pull-up.
     * That's the way we need D+ and D-. Therefore we don't need any
     * additional hardware initialization.
     */
    odDebugInit();
    DBG1(0x00, 0, 0);       /* debug output: main starts */
    usbInit();
    usbDeviceDisconnect();  /* enforce re-enumeration, do this while interrupts are disabled! */
    unsigned char i = 0;
    while(--i){             /* fake USB disconnect for > 250 ms */
        wdt_reset();
        _delay_ms(1);
    }
    usbDeviceConnect();
    sei();
    DBG1(0x01, 0, 0);       /* debug output: main loop starts */        
    for(;;){
        wdt_reset();
        usbPoll();
    }
    return 0;   /* never reached */
}
Ejemplo n.º 3
0
Archivo: sht1x.c Proyecto: chihchun/upm
int main()
{
    signal(SIGINT, sig_handler);

    //! [Interesting]

    // Instantiate a SHT1X sensor using D2 as the clock, and D3 as the
    // data pin.
    sht1x_context sensor = sht1x_init(2, 3);

    if (!sensor)
    {
        printf("sht1x_init() failed.\n");
        return 1;
    }

    // Every 2 seconds, update and print values
    while (shouldRun)
    {
        if (sht1x_update(sensor))
        {
            printf("sht1x_update() failed, exiting.\n");
            break;
        }

        printf("Temperature: %f C\n", sht1x_get_temperature(sensor));
        printf("Humidity:    %f RH\n", sht1x_get_humidity(sensor));
        printf("\n");

        upm_delay(2);
    }

    //! [Interesting]

    printf("Exiting\n");

    sht1x_close(sensor);

    return 0;
}