اطلاعیه

Collapse
No announcement yet.

دریافت مداوم با nrf24l01+

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دریافت مداوم با nrf24l01+

    با سلام خدمت همه دوستان بنده دو ماژول nrf رو به هم متصل کردم یکیش فرستنده که دایم یک عدد رو ارسال میکنه یکیشم گیرنده که اون عدد رو دریافت میکنه حالا مشکل کجاست ؟ ارسال کننده که دایم ارسالشو انجام میده ولی دریافت کننده یک بار دریافت میکنه و وقفه ایجاد میکنه و برای بار دوم دیگه دریافت انجام نمیشه تا ماژول رو vcc رو قطع وصل کنم. چند جا خوندم گفته بودند که 0xe2 رو ارسال کنم به ماژول من این کارو هم انجام دادم ولی کماکان یک بار دریافت میشه کسی میدونه این مشکل چطور حل میشه کمک کنه...

    و سوال دیگه ای که دارم اینه که چطور یک رجیستر رو توی ماژول تغییر بدم مثلا میخوام فرکانس کاریش رو تغییر بدم. البته توابعش رو نوشتم خواندن از رجیستر هام کار میکنه ولی نوشتنش کار نمیکنه

    void setRegister(int regAddress, int regData) {

    //
    // Save the CE state
    //

    int originalCe =0;
    if (bit_is_clear(PINB,PB3) == 0)
    originalCe=0;
    else
    originalCe=1;
    disable();
    //enable();
    int cn = (_NRF24L01P_SPI_CMD_WR_REG | ( regAddress & _NRF24L01P_REG_ADDRESS_MASK));

    CSN_LOW;

    uint8_t status =spi_fast_shift(_NRF24L01P_SPI_CMD_WR_REG);
    spi_fast_shift(regAddress);
    spi_fast_shift(_NRF24L01P_REG_ADDRESS_MASK);
    //spi_transfer_sync(cn,status,1);
    //char s [16];

    spi_fast_shift(regData );
    spi_fast_shift(_NRF24L01P_SPI_CMD_NOP);
    CSN_HIGH;
    if(originalCe == 1)
    PORTB |= _BV(CE) ;
    if(originalCe == 0)
    PORTB &= ~_BV(CE) ;

    ////_delay_ms(2000);
    //char s[16];
    //lcd_clrscr();
    //sprintf(s,"st: %d %d %d",status,a,cn);
    ////reseterror();
    //lcd_puts(s);
    _delay_us( _NRF24L01P_TIMING_Tpece2csn_us );


    }

    این تابع نوشتن داخل رجیستر هامه ولی کار نمیکنه کسی میتونه کمکم کنه؟

    #2
    پاسخ : دریافت مداوم با nrf24l01+

    یعنی کسی نبود بگه مشکل کجاست؟ و مشکل اول چطور حل میشه

    دیدگاه

    لطفا صبر کنید...
    X