uint16_t rfxx_wrt_cmd(uint16_t aCmd) { uint8_t i; uint16_t temp = 0; LOW_SCK(); LOW_SEL(); //for (i=0; i<16; i++) { for (i = 0; i < sizeof(uint16_t); ++i) { temp <<= 1; if (SDO_HI()) temp |= 0x0001; LOW_SCK(); (aCmd & 0x8000) ? (HI_SDI()) : (LOW_SDI()); /* if (aCmd & 0x8000) HI_SDI(); else LOW_SDI(); */ HI_SCK(); aCmd <<= 1; } LOW_SCK(); HI_SEL(); return temp; }
void RFXX_PORT_INIT(void) { HI_SEL(); HI_SDI(); LOW_SCK(); SEL_OUTPUT(); SDI_OUTPUT(); SDO_INPUT(); SCK_OUTPUT(); }
void RFXX_PORT_INIT(void){ HI_SEL(); HI_SDI(); LOW_SCK(); //SET nFFS pin HI when using FIFO HI_DATA(); SEL_OUTPUT(); SDI_OUTPUT(); SDO_INPUT(); SCK_OUTPUT(); IRQ_IN(); DATA_OUT(); }
unsigned int RFXX_WRT_CMD(unsigned int aCmd){ unsigned char i; unsigned int temp; temp=0; LOW_SCK(); LOW_SEL(); for(i=0;i<16;i++){ if(aCmd&0x8000){ HI_SDI(); }else{ LOW_SDI(); } HI_SCK(); temp<<=1; if(SDO_HI()){ temp|=0x0001; } LOW_SCK(); aCmd<<=1; }; HI_SEL(); return(temp); }