示例#1
0
文件: main.c 项目: centurysys/RIOT
void* pir_handler(void *arg)
{
    msg_t msg_q[1];
    msg_init_queue(msg_q, 1);

    printf("Registering PIR handler thread...     %s\n",
           pir_register_thread(&dev) == 0 ? "[OK]" : "[Failed]");

    msg_t m;
    while (msg_receive(&m)) {
        printf("PIR handler got a message: ");
        switch (m.type) {
            case PIR_STATUS_HI:
                puts("something started moving.");
                break;
            case PIR_STATUS_LO:
                puts("the movement has ceased.");
                break;
            default:
                puts("stray message.");
                break;
        }
    }
    puts("PIR handler: this should not have happened!");

    return NULL;
}
示例#2
0
void* pir_handler(void *arg)
{
    (void) arg; /* unused */

    msg_t msg_q[1];
    msg_init_queue(msg_q, 1);

#ifndef TEST_PIR_POLLING
    printf("Registering PIR handler thread...     %s\n",
           pir_register_thread(&pir) == 0 ? "[OK]" : "[Failed]");
#endif

    msg_t m;
    while (msg_receive(&m)) {
        printf("PIR handler got a message: ");
        switch (m.type) {
            case PIR_STATUS_HI:
                puts("something started moving.");
                gpio_set(led_red);
                gpio_clear(led_green);
                break;
            case PIR_STATUS_LO:
                puts("the movement has ceased.");
                gpio_set(led_green);
                gpio_clear(led_red);
                break;
            default:
                puts("stray message.");
                break;
        }
    }
    puts("PIR handler: this should not have happened!");

    return NULL;
}