ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2013/11/03
    بناب
    153
    3

    کمک به راه اندازی ماژول +NRF24L01

    با سلام .
    بنده دوتا ماژول +nrf24l01 گرفتم و با کتابخانه و برنامه ای ک دوستمون منطقه ازاد قرار داده بودند، اون رو برای دوتا 18f452 کامپایل کردم.
    اما کامل جواب نگرفتم.
    کامپایلر ccs 4.130 و میکرو هم 18f452 . برنامه رو هم قرار میدم.
    مشکل اینه ک اون مقداری ک قراره از یک طرف فرستاده بشه،توی سمت گیرنده ک با پورت سریال ب کامپیوتر وصله با علامت سوال جایگزین شده است.
    ممنون
    سمت فرستنده:
    کد:
    #include <18f452.h>
    #device PASS_STRINGS = IN_RAM 
    #use delay(xtal=20MHz)
    #include <stdio.h>
    #include <nrf2401.h>
    
    #FUSES NOWDT          //No Watch Dog Timer
    
    #use rs232(baud=4800, UART1, ERRORS)
    #define CE pin_d0
    
    
       
         
     
      
    void main()
    {
    int8 da=0; 
    setup_spi(SPI_MASTER | SPI_L_TO_H | SPI_CLK_DIV_16);
    init_NRF24L01();
    
    delay_ms(100); 
    
    mirf_config_rx_mod();
     
     
    
      while(TRUE) 
      {  
    
    mirf_Reads_PAYLOAD(mirf_PAYLOAD); 
    
     
    printf("=Reads_PAYLOAD=%s\n\r",read_bufer);
    
    
    da=mirf_read_reg(STATUS);
    printf("STATUS=%X \n\r",da);
    da=(da| 0x70);
    mirf_write_reg(STATUS,da); 
    
    da=mirf_read_reg(STATUS);
    printf("STATUS=%X \n\r",da);
    
    delay_ms(500);
      }
    
    }
    و سمت فرستنده :
    کد:
    #include <18f452.h>
    #device PASS_STRINGS = IN_RAM 
    #use delay(xtal=20MHz)
    #include <nrf2401.h>
    #include <stdio.h>
    
    #FUSES NOWDT,HS          //No Watch Dog Timer
    #define CE pin_d0
             
    void main()  
    {
    int8 da;
    setup_spi(SPI_MASTER | SPI_L_TO_H | SPI_CLK_DIV_16);
    init_NRF24L01();
    delay_ms(500);  
     
     
    mirf_config_tx_mod();
      
      while(TRUE) 
      {  
    
    mirf_send_data(mirf_PAYLOAD);
    da=mirf_status();
    da=(da| 0x70);
    mirf_write_reg(STATUS,da); 
    delay_ms(10);  
      }
     
    }

    و فایل کتابخانه ماژول :
    کد:
    #define mirf_CSN_hi  output_high(PIN_A5);
    #define mirf_CSN_lo  output_low(PIN_A5);
    
    #define mirf_CE_hi  output_high(PIN_D0);
    #define mirf_CE_lo  output_low(PIN_D0); 
      
    #define RADDR      (byte *)"HADI0"//addres Recive
    #define TADDR      (byte *)"HADI0"//adrres transfer
    
    /* Memory Map */
    #define CONFIG   0x00 
    #define EN_AA    0x01
    #define EN_RXADDR  0x02
    #define SETUP_AW  0x03
    #define SETUP_RETR 0x04
    #define RF_CH    0x05
    #define RF_SETUP  0x06
    #define STATUS   0x07
    #define OBSERVE_TX 0x08
    #define CD     0x09
    #define RX_ADDR_P0 0x0A
    #define RX_ADDR_P1 0x0B
    #define RX_ADDR_P2 0x0C
    #define RX_ADDR_P3 0x0D 
    #define RX_ADDR_P4 0x0E
    #define RX_ADDR_P5 0x0F
    #define TX_ADDR   0x10
    #define RX_PW_P0  0x11
    #define RX_PW_P1  0x12
    #define RX_PW_P2  0x13
    #define RX_PW_P3  0x14
    #define RX_PW_P4  0x15
    #define RX_PW_P5  0x16
    #define FIFO_STATUS 0x17
    
    /* Bit Mnemonics */
    #define MASK_RX_DR 6
    #define MASK_TX_DS 5
    #define MASK_MAX_RT 4
    #define EN_CRC   3
    #define CRCO    2
    #define PWR_UP   1
    #define PRIM_RX   0
    #define ENAA_P5   5
    #define ENAA_P4   4
    #define ENAA_P3   3
    #define ENAA_P2   2
    #define ENAA_P1   1
    #define ENAA_P0   0
    #define ERX_P5   5
    #define ERX_P4   4
    #define ERX_P3   3
    #define ERX_P2   2
    #define ERX_P1   1
    #define ERX_P0   0
    #define AW     0
    #define ARD     4
    #define ARC     0
    #define PLL_LOCK  4
    #define RF_DR    3
    #define RF_PWR   1
    #define LNA_HCURR  0    
    #define RX_DR    6
    #define TX_DS    5
    #define MAX_RT   4
    #define RX_P_NO   1
    #define TX_FULL   0
    #define PLOS_CNT  4
    #define ARC_CNT   0
    #define TX_REUSE  6
    #define FIFO_FULL  5
    #define TX_EMPTY  4
    #define RX_FULL   1
    #define RX_EMPTY  0
    
    /* Instruction Mnemonics */
    #define R_REGISTER  0x00
    #define W_REGISTER  0x20
    #define REGISTER_MASK 0x1F 
    #define R_RX_PAYLOAD 0x61
    #define W_TX_PAYLOAD 0xA0
    #define FLUSH_TX   0xE1
    #define FLUSH_RX   0xE2
    #define REUSE_TX_PL  0xE3
    #define NOP      0xFF
    
    #define mirf_CH      2
    #define mirf_PAYLOAD   16
    int8 bufer[40];
    int8 read_bufer[5];
    int8 send_buffer[mirf_PAYLOAD]={"Salam Bar Mahdi"}; 
    ///**************************************************************************************
    void mirf_config_tx_mod(void);
    void mirf_config_rx_mod(void);
    void init_NRF24L01(void);
    int8 mirf_read_reg(int8 reg);
    void mirf_write_reg(int8 reg,int8 value );
    void fu_FLUSH_TX_RX(void);
    void set_address_rx_tx(int8 reg,int8 *address,int8 WIDTH);
    void mirf_read_reg_array(int8 reg,int8 WIDTH);
    void mirf_Reads_PAYLOAD(int8 WIDTH); 
    void mirf_send_data(int8 WIDTH); 
    int8 mirf_status(void);
    int8 mirf_data_ready(void);
    int8 mirf_max_rt_reached(void);
     
    ///**************************************************************************************
    void mirf_config_rx_mod(void){
    
    mirf_write_reg(EN_AA, 0x01);
    mirf_write_reg(EN_RXADDR,0x01);
    mirf_write_reg(SETUP_AW,0x03);
    mirf_write_reg(SETUP_RETR, 0x18);
    mirf_write_reg(RF_CH, mirf_CH);
    mirf_write_reg(RF_SETUP, 0x07); 
    set_address_rx_tx(RX_ADDR_P0, TADDR, 5);
    set_address_rx_tx(TX_ADDR, TADDR, 5);
    mirf_write_reg(RX_PW_P0, mirf_PAYLOAD);
    mirf_write_reg(CONFIG, 0x0B); 
    
      
    }
    ///**************************************************************************************
    void mirf_config_tx_mod(void){
    
     
    mirf_write_reg(EN_AA, 0x01); 
    mirf_write_reg(EN_RXADDR,0x01);
    mirf_write_reg(SETUP_AW,0x03);
    mirf_write_reg(SETUP_RETR, 0x18);
    mirf_write_reg(RF_CH, mirf_CH);
    mirf_write_reg(RF_SETUP, 0x07); 
    set_address_rx_tx(RX_ADDR_P0, TADDR, 5); 
    set_address_rx_tx(TX_ADDR,TADDR, 5);
    mirf_write_reg(RX_PW_P0, mirf_PAYLOAD);
    mirf_write_reg(CONFIG, 0x0A); 
    
     
     
    }
    ///**************************************************************************************
    void init_NRF24L01(void){
    
    mirf_CE_lo;
    mirf_CSN_hi;
    }
    ///**************************************************************************************
    int8 mirf_status(void){
    int8 data,merge;
    
      merge=(R_REGISTER|(REGISTER_MASK & STATUS));
      mirf_CSN_lo;
      spi_write(merge);
      data =spi_read (NOP); 
      mirf_CSN_hi;
      return(data);
    }
    ///**************************************************************************************
    int8 mirf_data_ready(void){
    int8 data,merge;
    
      merge=(R_REGISTER|(REGISTER_MASK & STATUS));
      mirf_CSN_lo;
      spi_write(merge);
      data =spi_read (NOP); 
      mirf_CSN_hi;
      data=data & (1<<RX_DR);
      return(data);
    
    }
    ///**************************************************************************************
    int8 mirf_max_rt_reached(void){
    int8 data,merge;
    
      merge=(R_REGISTER|(REGISTER_MASK & STATUS));
      mirf_CSN_lo;
      spi_write(merge);
      data =spi_read (NOP); 
      mirf_CSN_hi;
      data=data & (1<<MAX_RT);
      return(data);
    
    }
    ///**************************************************************************************
    int8 mirf_read_reg(int8 reg) {
    int8 data,merge;
    
      merge=(R_REGISTER|(REGISTER_MASK & reg));
      mirf_CSN_lo;
      spi_write(merge);
      data =spi_read (NOP); 
      mirf_CSN_hi;
      return(data);
    }
    ///**************************************************************************************
    void mirf_write_reg(int8 reg,int8 value ){
    int8 merge;
    
      merge=(W_REGISTER|(REGISTER_MASK & reg));
      mirf_CSN_lo;
      spi_write(merge);
      spi_write (value); 
      mirf_CSN_hi;
      
    }
    ///**************************************************************************************
    void fu_FLUSH_TX_RX(void){
    mirf_CSN_lo;
    spi_write(FLUSH_TX); 
    mirf_CSN_hi;
    //
    mirf_CSN_lo;
    spi_write(FLUSH_TX); 
    mirf_CSN_hi;
    
    }
    ///**************************************************************************************
    void set_address_rx_tx(int8 reg,int8 *address,int8 WIDTH){
    int8 merge,i=0;
     
      merge=(W_REGISTER|(REGISTER_MASK & reg));
      mirf_CSN_lo;
      
      spi_write(merge);
      while(i<WIDTH){
             merge=address[i];
             spi_write(merge);
             i++;
             }
      mirf_CSN_hi;
    }
    
    ///**************************************************************************************
    void mirf_read_reg_array(int8 reg,int8 WIDTH){
    int8 i=0,merge;
    
      merge=(R_REGISTER|(REGISTER_MASK & reg));
      mirf_CSN_lo;
      
      spi_write(merge);
      while(i<WIDTH){
             bufer[i] =spi_read (NOP); 
             i++;
             }
      mirf_CSN_hi;
    }
    ///**************************************************************************************
    void mirf_Reads_PAYLOAD(int8 WIDTH){
    int8 i=0;
    mirf_CE_hi; 
    mirf_CSN_lo;
    spi_write(R_RX_PAYLOAD);
    while(i<WIDTH){
             read_bufer[i] =spi_read (NOP); 
             i++;
           }
    mirf_CSN_hi;
    
    mirf_CSN_lo;
    spi_write(FLUSH_RX); 
    mirf_CSN_hi;
     
    
    }
    ///**************************************************************************************
    void mirf_send_data(int8 WIDTH){
    int8 i=0,merge=0;
    
    mirf_CSN_lo;
    spi_write(FLUSH_TX); 
    mirf_CSN_hi;
    
    mirf_CE_hi; 
    mirf_CSN_lo;
    spi_write(W_TX_PAYLOAD);
    while(i<WIDTH){
             merge=send_buffer[i] ;
             spi_write(merge);
             i++;
           }
    mirf_CSN_hi;
    
    mirf_CE_hi; // Start transmission
    delay_us(50);
    mirf_CE_lo;
    
    }

    اینم از لینک عکس :
    http://www.4shared.com/photo/dTxGoXd_ba/noproblem.html
    :sad:

    اضافه شده در تاریخ :
    ایا اندازه بافر در قسمت گیرنده و فرستنده باید یکی باشد؟
    رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ*ای*و زغم و اندوه دل آزردهآ*ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ*شود**وآنچه دلت خواست نه آن میآ*شود.
    ....
  2. #2
    2013/11/03
    بناب
    153
    3

    پاسخ : کمک به راه اندازی ماژول +NRF24L01

    با سلام خدمت دوستان و اشنایان و اساتید.
    بحمدلله و ثنائه.
    مدارم با برنامه نمونه ای ک در لینک زیر قرار دارد راه افتاد.
    با ccs v 5.012 تست شده با دو میکروی 16f877a و 18f452 هم کار میکند.
    من الله التوفیق
    ممنون از همه مخصوصا اقای عبدی بزرگوار.
    رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ*ای*و زغم و اندوه دل آزردهآ*ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ*شود**وآنچه دلت خواست نه آن میآ*شود.
    ....
  3. #3
    2015/02/20
    33
    0

    پاسخ : کمک به راه اندازی ماژول +NRF24L01

    کدوم لینک؟؟؟؟
    :question:
  4. #4
    2013/11/03
    بناب
    153
    3

    پاسخ : کمک به راه اندازی ماژول +NRF24L01

    ببخشید:
    http://www.iranmicro.ir/forum/attachment.php?attachmentid=5971&d=1371241470
    رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ*ای*و زغم و اندوه دل آزردهآ*ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ*شود**وآنچه دلت خواست نه آن میآ*شود.
    ....
  5. #5
    2015/02/20
    33
    0

    پاسخ : کمک به راه اندازی ماژول +NRF24L01

    بازم نشد . . .
    :smile:
  6. #6
    2013/11/03
    بناب
    153
    3

    پاسخ : کمک به راه اندازی ماژول +NRF24L01

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ*ای*و زغم و اندوه دل آزردهآ*ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ*شود**وآنچه دلت خواست نه آن میآ*شود.
    ....
  7. #7
    2015/02/20
    33
    0

    پاسخ : کمک به راه اندازی ماژول +NRF24L01

    :mrgreen:
    من دیگه حرفی ندارم . . .
    :biggrin:
  8. #8
    2012/07/07
    172
    5

    پاسخ : کمک به راه اندازی ماژول +NRF24L01

    دوستان در مورد MPLAB نظری ندارید؟
    من با C18 و C30 کار میکنم...
نمایش نتایج: از 1 به 8 از 8

موضوعات مشابه

  1. [آموزش]راه اندازی ماژول +nRF24L01
    توسط Ali-8701533 در انجمن ماژول های RF - ISM Band و بلوتوث
    پاسخ: 921
    آخرين نوشته: 2020/03/30, 01:49
  2. راه اندازی ماژول nRF24l01 با میکرو
    توسط hoshang.am در انجمن میکروکنترلرهای AVR
    پاسخ: 10
    آخرين نوشته: 2019/12/29, 21:35
  3. مشکل در راه اندازی ماژول nRF24L01
    توسط mohsensh74 در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2016/03/31, 05:58
  4. راه اندازی ماژول NRF24L01 با ارتباط سریال
    توسط RahimEdison در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2016/02/23, 11:55
  5. کمک در راه اندازی ماژول nrf24l01 + هدر و کدویژن
    توسط captanbalck در انجمن ماژول های RF - ISM Band و بلوتوث
    پاسخ: 0
    آخرين نوشته: 2016/02/01, 23:16

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •