پاسخ : راه اندازی ماژول RFM70
اگر نمونه کد این ماژول را دارید ممنون میشم که بزارید
اگر نمونه کد این ماژول را دارید ممنون میشم که بزارید
oo: :angry: 
[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;
}
دیدگاه