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"; } }
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; } }
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; } }
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; }