bool_t at45db041b_ready(void)
{
    u8_t data;

    // If flag has already been set, then take short-cut
    if(at45db041b_ready_flag)
    {
        return TRUE;
    }

    // Get Flash status
    data = at45db041b_get_status();

    // See if Flash is ready
    if(BIT_IS_HI(data, AT45DB041B_STATUS_READY))
    {
        // Set flag
        at45db041b_ready_flag = TRUE;
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}
static const char* cmd_line_handler_led(int argc, char* argv[])
{
    if(BIT_IS_HI(PORT_LED_O,BIT_LED_O))
    {
        return "LED is on";
    }
    else
    {
        return "LED is off";
    }
}
示例#3
0
bool twi_busy(void)
{
    // IF TWI Interrupt is enabled then the peripheral is busy
    if(BIT_IS_HI(TWCR,TWIE))
    {
        return true;
    }
    else
    {
        return false;
    }
}
示例#4
0
bool_t tmr_poll_has_exipred(void)
{
    // See if timer overflow flag is set
    if(BIT_IS_HI(TIFR, TOV1))
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}
bool_t uart_poll_rx_data_available(void)
{
    // See if data received flag is set
    if(BIT_IS_HI(UCSRA,RXC))
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}
示例#6
0
u08 CHandler::test() {
  u08 cca, cca_cnt, mode;
  cca = 0;
  cca_cnt = 0;

  BIT_SET_LO(PORTD, 5);
  _delay_us(10);
  BIT_SET_HI(PORTD, 5);

  mode = cc1101->readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1F;
  if (mode == MARC_STATE_TXFIFO_UV) {
    cc1101->cmdStrobe(CC1101_SFTX);
  }
  if (mode == MARC_STATE_RXFIFO_OV) {
    cc1101->cmdStrobe(CC1101_SFRX);
  }

  // ================= wait for IDLE MODE ==================
  if ((mode == MARC_STATE_IDLE || mode == MARC_STATE_RX)) {
    cca_cnt = 0;
    // ================= SET RX MODE==========================
    cc1101->cmdStrobe(CC1101_SRX);
    // =================== wait 800us for RX MODE ============
    do {
      mode = cc1101->readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1F;
      cca_cnt++;
      _delay_us(10); // IDLE TO RX takes 800us page 54 in datasheet
    } while ((mode != MARC_STATE_RX) && (cca_cnt < 200));
    if (cca_cnt >= 200) {
      cc1101->cmdStrobe(CC1101_SIDLE); // FORCE IDLE MODE
      return false;
    }
    //================= Send Packet to FIFO ==================
    cc1101->writeReg(CC1101_TXFIFO, sizeof(TAG::sRfTag));
    cc1101->writeBurstReg(CC1101_TXFIFO, (u08*) &tag, sizeof(TAG::sRfTag));
    mode = cc1101->readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1F;
    cc1101->rssiValidWait();
    cc1101->cmdStrobe(CC1101_STX);
    while (BIT_IS_HI(READ_GD0,PIN_GD0))
      ;
    // ================= Wait 725 us for IDLE MODE ===========
    cca_cnt = 0;
    do {
      mode = cc1101->readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1F;
      _delay_us(10); // TX to IDle with calibration - 725 us
    } while ((mode != MARC_STATE_IDLE));
    return true;
  }
  return false;
}