static void hal_io_check() {
    uint8_t i;
    for (i = 0; i < NUM_DIO; ++i) {
#ifdef ARDUINO
        if (dio_states[i] != digitalRead(pins.dio[i])) {
#else
        if (dio_states[i] != pins.dio[i]) {
#endif
            dio_states[i] = !dio_states[i];
            if (dio_states[i])
                radio_irq_handler(i);
        }
    }
}

// -----------------------------------------------------------------------------
// SPI

#ifdef ARDUINO
static const SPISettings settings(10E6, MSBFIRST, SPI_MODE0);
#endif

static void hal_spi_init () {
#ifdef ARDUINO
    SPI.begin();
#endif
}

void hal_pin_nss (u1_t val) {
#ifdef ARDUINO
    if (!val)
        SPI.beginTransaction(settings);
    else
        SPI.endTransaction();
    //Serial.println(val?">>":"<<");
    digitalWrite(pins.nss, val);
#else
	pins.nss = val;
#endif
}

// perform SPI transaction with radio
u1_t hal_spi (u1_t out) {
#ifdef ARDUINO
   u1_t res = SPI.transfer(out);
#else
  u1_t res = device.write(out);
#endif
/*
    Serial.print(">");
    Serial.print(out, HEX);
    Serial.print("<");
    Serial.println(res, HEX);
    */
    return res;
}
示例#2
0
static void hal_io_check() {
	uint8_t i;
	for (i = 0; i < NUM_DIO; ++i) {
		if (dio_states[i] != digitalRead(pins.dio[i])) {
			dio_states[i] = !dio_states[i];
			if (dio_states[i])
				radio_irq_handler();
		}
	}
}
示例#3
0
static void hal_io_check() {
    uint8_t i;
    for (i = 0; i < NUM_DIO; ++i) {
        if (lmic_pins.dio[i] == LMIC_UNUSED_PIN)
            continue;

        if (interrupt_flags[i]) {
            interrupt_flags[i] = false;
            radio_irq_handler(i);
        }
    }
}
示例#4
0
static void hal_io_check() {
    uint8_t i;
    for (i = 0; i < NUM_DIO; ++i) {
        if (lmic_pins.dio[i] == LMIC_UNUSED_PIN)
            continue;

        if (dio_states[i] != digitalRead(lmic_pins.dio[i])) {
            dio_states[i] = !dio_states[i];
            if (dio_states[i])
                radio_irq_handler(i);
        }
    }
}