پاسخ : راه اندازی ماژول RFM70
اگر نمونه کد این ماژول را دارید ممنون میشم که بزارید
اگر نمونه کد این ماژول را دارید ممنون میشم که بزارید
[left] char RFM_Read_Reg(char register_address){ char read_address= register_address; char register_value=0; char i; RFM_CLOCK_LOW(); SELECT_RFM(); //Lower CS pin. printf("Read Reg "); for(i=8; i>=1; i--){ RFM_CLOCK_LOW(); if((read_address & (1<<(i-1)))==(1<<(i-1))){ RFM_COM_PORT |= RFM_MOSI; printf("1"); } else { RFM_COM_PORT &= ~RFM_MOSI; printf("0"); } delay_us(1); RFM_CLOCK_HIGH(); delay_us(1); } printf("="); for(i=8; i>=1; i--){ RFM_CLOCK_LOW(); delay_us(1); CLOCK_HIGH(); if((RFM_COM_PIN & RFM_MISO)==RFM_MISO){ register_value |= (1<<(i-1)); printf("1"); } else { register_value &= ~(1<<(i-1)); printf("0"); } delay_us(1); } UNSELECT_RFM(); RFM_CLOCK_LOW(); printf("\r"); return register_value; } [/left]
UINT8 SPI_RW(UINT8 value) { UINT8 bit_ctr; for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit { if(value & 0x80) { MOSI=1; } else { MOSI=0; } value = (value << 1); // shift next bit into MSB.. SCK = 1; // Set SCK high.. value |= MISO; // capture current MISO bit SCK = 0; // ..then set SCK low again } return(value); // return read UINT8 } /************************************************** Function: SPI_Write_Reg(); Description: Writes value 'value' to register 'reg' /**************************************************/ void SPI_Write_Reg(UINT8 reg, UINT8 value) { CSN = 0; // CSN low, init SPI transaction op_status = SPI_RW(reg); // select register SPI_RW(value); // ..and write value to it.. CSN = 1; // CSN high again }
char RFM_Read_Reg(char register_address){ char read_address= register_address; char register_value=0; char i=0; RFM_SCK=0; RFM_CS=0; //Lower CS pin. printf("Read Reg "); for(i=0; i<8; i++){ RFM_SCK=1; RFM_MOSI=(read_address & 0x80)>>7; printf("%d",RFM_MOSI); RFM_SCK=0; read_address = (read_address << 1); } printf("="); for(i=0; i<8; i++){ RFM_SCK=1; register_value = register_value | (RFM_MISO<<(7-i)); printf("%d",RFM_MISO); RFM_SCK=0; } RFM_SCK=0; RFM_CS=1; printf("\r"); return register_value; }
دیدگاه