صفحه 5 از 7 نخستنخست ... 34567 آخرینآخرین
نمایش نتایج: از 41 به 50 از 68
Like Tree9 لایک

موضوع: NRF24L01P USB Module

  1. #41
    Junior Member
    تاریخ عضویت
    Jul 2014
    نوشته ها
    1
    سلام
    ببخشید من با nrf (دو طرف میکرو)کار کردم و هیچ مشکلی در ارتباط دو nrf نیست.با دو تا از این ماژولا هم که به دو کامپیوتر وصل کردم ارتباط گرفتم و مشکلی نیست.
    در ارتباط با یه ماژول usb و یک nrf (یک طرف pc و یک طرف nrf).لطفا تنظیمات مربوط به سمت میکرو در موارد زیر چیست؟ دوستانی که جواب گرفتند لطفا راهنمایی کنند؟
    1. bit rate
    2.crc چند بایت؟
    3.pay load
    4.تنظیمات auto ack و auto retransmit
    ابن تنظیمات در سمت ماژول usb مشخص نیست .فقط فرکانس و کانال و آدرس دیتا پایپ آورده شده و حتی شماره دیتا پایپ معلوم نیست. احتمالا data pipe0 isj.
    ممنون
    لایک کردن

  2. #42
    Junior Member
    تاریخ عضویت
    Oct 2014
    نوشته ها
    8
    سلام
    من با این کد که ضمیمه کردم می تونم از PC به Arduino اطلاعات بفرستم البته چند بار که ارسال می کنم یک بار ارسال میشه و یکسری کاراکتر اضافه هم همراهش هست که در مجموع بلا استفاده است.
    از Arduino هم که اصلا هیچ چیز ارسال نمیشه.
    این کد پیشنهادی همین تاپیک هست؛ با برداشتی که از توضیحات داشتم، تابع setup رو تغییر دادم.
    لطفآ راهنمایی کنید چه اشکالی در کد هست که جواب نمیده؟
    آیا آدرس ارسال و دریافت ماژول در Arduino باید همین آدرسی باشه که برای دانگل تنظیم میشه و هر دو یک آدرس باشند؟(مشابه همین کد)
    کد:
    /* # Be name Khoda! # A Mirf example to test the latency between two Ardunio. # Company : AftabRayaneh # Website : http://shop.aftabrayaneh.com # Developers : Reza Najafi, Elham Rasekh # Date : 09.09.2013 # Version : 3.0 * Pins: * Hardware SPI: * MISO -> 12 * MOSI -> 11 * SCK -> 13 * * Configurable: * CE -> 8 * CSN -> 7 */ #include <SPI.h> #include <Mirf.h> #include <nRF24L01.h> #include <MirfHardwareSpiDriver.h> const int MAX_BUFFER_LEN = 16; //byte Address[5]={0x43,0x34,0x10,0x11,0x11}; //String Receive_Address = (String *) Address; //A name that is dedicated to this station; MAX is 5 Char. //String Send_Address = Address; //A name that is dedicated to another station; MAX is 5 Char. String strMirfBuffer=""; byte Transfer_Lock=0; void setup() { Serial.begin(9600); Setup_Mirf(); // initializing overall needed... sendData("TALK"); } void loop() { if (!Mirf.isSending()) check_MirfBuffer(); read_SerialBuffer(); } //This function checks mirf data availability. if data is available, put it in the buffer and generates an event. void check_MirfBuffer() { if (Mirf.dataReady()) { while(Mirf.dataReady()) { int tmp_index=0; byte tmp_buffer[4]={0}; Mirf.getData(tmp_buffer); while(tmp_buffer[tmp_index] && tmp_index<4 ) { strMirfBuffer = strMirfBuffer + char(tmp_buffer[tmp_index]); tmp_index++; } if (strMirfBuffer.length() >= MAX_BUFFER_LEN ) buffer_ready(); if (!Mirf.dataReady()) delay(2); } } else if (strMirfBuffer.length()>0 ) buffer_ready(); } //This function sends a 4 byte packet void sendPacket(char packet[5]) { Mirf.send((byte *)packet); while(Mirf.isSending()); } //This function sends data void sendData(String strData) { int StrLen=0; String tmp_Str=""; Serial.print("sending data: "); Serial.print(strData); Transfer_Lock=1; StrLen=strData.length(); Serial.print(" : "); Serial.println(StrLen); //parsing the data to 4 character packets (byte *)packet while (StrLen>0) { char tmp_Char[5]={0}; if(StrLen>4) { tmp_Str=strData.substring(0,4); strData=strData.substring(4); } else { tmp_Str=strData; strData=""; } tmp_Str.toCharArray(tmp_Char, 5);; sendPacket(tmp_Char); StrLen=strData.length(); } Transfer_Lock=0; } //This function parses received commands from another nrfs. void buffer_ready() { if (strMirfBuffer == "TALK") { sendData("HURRAY !"); Serial.println("Talking..."); } //and parse other commands so on ... else { Serial.print("<"); Serial.print(strMirfBuffer); Serial.println(">"); } clear_buffer(); } //This function forms a buffer of serial data and send it void read_SerialBuffer() { if(Serial.available()) { char CharData; String StrSerialBuffer=""; while (Serial.available() && StrSerialBuffer.length() < MAX_BUFFER_LEN ) { CharData=Serial.read(); StrSerialBuffer=StrSerialBuffer + CharData; if (!Serial.available()) delay(1); } while (Transfer_Lock); //wait for transfer process sendData(StrSerialBuffer); } } //This function initializes overall needed for wireless communication void Setup_Mirf() { char Receive_Adr_Char[6]={0x43,0x34,0x10,0x11,0x11,0x00}; char Send_Adr_Char[6]={0x43,0x34,0x10,0x11,0x11,0x00}; //Receive_Address.toCharArray(Receive_Adr_Char, 6); //Send_Address.toCharArray(Send_Adr_Char, 6); Mirf.spi = &MirfHardwareSpi; Mirf.init(); Mirf.setRADDR((byte *)Receive_Adr_Char); Mirf.setTADDR((byte *)Send_Adr_Char); Mirf.payload = sizeof(unsigned long); Mirf.channel = 0x28; Mirf.configRegister(RF_SETUP, 0x07); Mirf.config(); //reg - Start byte rf_setup = 0; Mirf.readRegister( RF_SETUP, &rf_setup, sizeof(rf_setup) ); if (rf_setup != 0) Serial.println("Beginning ... "); else { Serial.println( "Wireless did not initialize!" ); while (rf_setup==0); } delay(100); } //This function clears the buffer void clear_buffer () { strMirfBuffer=""; }
    خروجیArduino برای ارسال کارکترهای b,c,d,e,f از کامپیوتر (البته بعد از چندین بار ارسال!)
    کد:
    <b�؟> <c*�}> <d�Vً> <eحww> <f��>
    ویرایش توسط safdari : 10-11-2014 در ساعت 06:45 AM

  3. #43
    Junior Member
    تاریخ عضویت
    Oct 2014
    نوشته ها
    8
    این انجمن چقدر فعاله! انجمن های متن باز معمولآ به ساعت نکشیده کلی جواب ارسال میکنند؛ چطور اینجا که اسپانسر هم داره اینقدر بدون فعالیته؟

    لطفآ مسئول انجمن یا سایر دوستانی که از این دانگل با یک برد Arduino ارتباط گرفتن راهنمایی کنند و یا در صورت امکان برنامه ای که جواب گرفتند رو روی سایت قرار بدهند.

    اگر اونطور که به نظر میاد چیپ این دانگل +nRF24LU1 باشه و شانس آورده باشیم و نوع فلش دارش رو استفاده کرده باشه و OTP نباشه، میشه برنامه روی دانگل رو عوض کرد تا با تنظیمات دلخواه و تو مد دلخواه کار کنه.
    این چیپ یک پردازنده با معماری 8051 داره. الان برنامه رو فلش دانگل، دستور AT که برای کانفیگ دانگل ارسال میکنیم رو دریافت و تنظیمات رو اعمال میکنه. همچنین نوع اتصال USB و سایر موارد از این دست تو این برنامه نوشته شده.
    یک سورس کد نمونه برای این چیپ پیدا کردم که با Keil 8051 نوشته شده ؛ در حال بررسی هستم که ببینم میشه دانگل رو فلش کرد یا نه؟!
    با توجه به اینکه روی چیپ دانگل رو پوشوندن نمیشه فهمید که دقیقآ چه چیپی استفاده شده. اگر دانگل رو باز کنید 7 تا test point داره که احتمالآ باید پایه های برنامه ریزی فلش تو همین پایه ها باشه.
    فعلآ فقط میشه با حدس و گمان پیش رفت تا ببینیم چطور میشه. یا یک دانگل رو خراب میکنیم یا به یک نتیجه ای میرسیم.
    اگر دوستان اطلاعاتی در این مورد دارند لطف کنند تا شاید زودتر به نتیجه برسیم.
    شاید اینکار خیلی کار پر زحمت و بی فایده به نظر بیاد چون به هر حال این دانگل داره کار میکنه ولی در صورت جواب گرفتن اول اینکه میشه دانگل رو برای استفاده خاصی customized کرد و از اون مهم تر ارضاء حس کنجکاوی است البته اگر مشغله کارهای دیگه بزاره
    سورس کدی که پیدا کردم اتفاقآ در مورد Arduino هست. یک پروژه متن باز که با ارتباط این چیپ و نوع +NRF24L01، بشه برد Arduino رو بصورت بیسیم پروگرام کرد. اگر موفق شدم اون برنامه رو روی این دانگل فلش کنم در اختیار دوستان قرار خواهم داد.

  4. #44
    Member
    تاریخ عضویت
    Aug 2014
    نوشته ها
    76
    تا جایی که من با این ماژول ها کار کردم ، اینا خیلی نسبت به نویز محیطی حساس هستن، و در کل من پیشنهاد میکنم اگر قدرت برنامه نویسیتون در حد منه(پایینه) از این ماژول ها استفاده نکنید و به فکر جایگزین باشید
    البته با برنامه نویسی خوب و قوی میشه مشکلات این ماژول رو تا حدودی بر طرف کرد، مثل حذف کاراکتر های بی معنی و به هم ریختگی و کرش کردن پاکت ها
    جناب/سرکار صفدری عزیز:
    مشکل اینجاست که پروژه های متن باز کلا توی این مملکت آدم حساب نمیشن، ببخشید اینطور میگم اما خیلی از ما ها(از خودم مثال میزنم) حاضر نیستیم پروژه هامون رو به اشتراک بذاریم. دلمون میخواد همیشه نسبت به بقیه برتری داشته باشیم که البته راهش این نیست.
    به هر حال مشکل دیگه ای که وجود داره اینه که تعداد افراد فارسی زبان متخضض در آردوینو بسیار کم هستن یا اگر هم هستن وقت ندارن! انشالله که با کمک همدیگه بتونیم قدرت علمی خودمون رو افزایش بدیم

    موفق باشید
    لایک کردن

  5. #45
    Junior Member
    تاریخ عضویت
    Oct 2014
    نوشته ها
    8
    نقل قول نوشته اصلی توسط bunnysa نمایش پست ها
    تا جایی که من با این ماژول ها کار کردم ، اینا خیلی نسبت به نویز محیطی حساس هستن، و در کل من پیشنهاد میکنم اگر قدرت برنامه نویسیتون در حد منه(پایینه) از این ماژول ها استفاده نکنید و به فکر جایگزین باشید
    البته با برنامه نویسی خوب و قوی میشه مشکلات این ماژول رو تا حدودی بر طرف کرد، مثل حذف کاراکتر های بی معنی و به هم ریختگی و کرش کردن پاکت ها
    جناب/سرکار صفدری عزیز:
    مشکل اینجاست که پروژه های متن باز کلا توی این مملکت آدم حساب نمیشن، ببخشید اینطور میگم اما خیلی از ما ها(از خودم مثال میزنم) حاضر نیستیم پروژه هامون رو به اشتراک بذاریم. دلمون میخواد همیشه نسبت به بقیه برتری داشته باشیم که البته راهش این نیست.
    به هر حال مشکل دیگه ای که وجود داره اینه که تعداد افراد فارسی زبان متخضض در آردوینو بسیار کم هستن یا اگر هم هستن وقت ندارن! انشالله که با کمک همدیگه بتونیم قدرت علمی خودمون رو افزایش بدیم

    موفق باشید
    سلام
    در مورد حساس بودن به نویز : آیا زمانی که دوتا از این ماژول رو با هم استفاده می کنید باز هم همین حساس بودن وجود داره؟ (منکه مشکلی نداشتم!)
    برنامه نویس خوب و قوی رو نمی دونم با چه محکی میشه سنجید ولی تا حدودی امیدوارم باشم. به هر حال من کامپیوتر نرم افزار خوندم و پایان نامه ارشدم هم یه قسمتی اش مربوط به embedded programming هست؛ چهار سالی هم هست که درسهای مختلف کامپیوتر و یکسری درسهای برق رو درس میدم.
    ولی این مشکل ربطی به برنامه نویسی نداره تنظیمات این ماژول با ماژول روی Arduino یکسان نیست و یک مشکل تنظیمات هست نه ماژول. فقط همین دلیل برای این ادعا کافیست که دوتا از ماژول یکسان با هم خوب کار میکنند! مگر اینکه چیپ ماژول چیز دیگری باشد وگر نه با این چیپ ( +nRF24LU1) باید بتوان ارتباط پایدار ایجاد کرد و مشابه این کار هم زیاد انجام شده و تو اینترنت موجود هست.
    اونطور ها هم نیست که متن باز ها آدم حساب نشن، کامپیوتری ها گاهآ انجمن های خیلی فعال هم دارند ولی در مجموع من هم ترجیح میدم انجمن های انگلیسی زبان رو دنبال کنم و فعال باشم تا فارسی زبان .مشکل این ماژول هم اینه که خیلی بی نام و نشونه آدم نمیدونه تو یه انجمن دیگه اصلآ چی بپرسه یا دنبال چی باشه! ماژول های مشابه ولی نام دار این مشکل رو ندارند و خوب طبیعتآ باید گرون تر هم باشند.با این هزینه این ماژول فوق العاده است.(به شرطی که کار کنه!)

    به هر حال ممنون از پاسخ تون و من هم امیدوارم و هم اعلام آمادگی میکنم که اگر این انجمن بخواد فعال باشه، همکاری خواهم کرد.

  6. #46
    Member
    تاریخ عضویت
    May 2014
    نوشته ها
    38
    من اطلاعات رو از کامپیوتر بدون استفاده از این ماژول USB ارسال کردم.

    به کامپیوتر یک Arduino Uno متصل بود که اطلاعات رو از کامپیوتر از طریق پورت USB دریافت می کرد (تا سقف 64 بایت که سایز بافر Serial آردوئینو محسوب میشه) و از طریق یک ماژول RF24 به یک برد مشابه ارسال می کرد.

  7. #47
    Member
    تاریخ عضویت
    Aug 2014
    نوشته ها
    76
    نقل قول نوشته اصلی توسط safdari نمایش پست ها
    سلام
    در مورد حساس بودن به نویز : آیا زمانی که دوتا از این ماژول رو با هم استفاده می کنید باز هم همین حساس بودن وجود داره؟ (منکه مشکلی نداشتم!)
    برنامه نویس خوب و قوی رو نمی دونم با چه محکی میشه سنجید ولی تا حدودی امیدوارم باشم. به هر حال من کامپیوتر نرم افزار خوندم و پایان نامه ارشدم هم یه قسمتی اش مربوط به embedded programming هست؛ چهار سالی هم هست که درسهای مختلف کامپیوتر و یکسری درسهای برق رو درس میدم.
    ولی این مشکل ربطی به برنامه نویسی نداره تنظیمات این ماژول با ماژول روی arduino یکسان نیست و یک مشکل تنظیمات هست نه ماژول. فقط همین دلیل برای این ادعا کافیست که دوتا از ماژول یکسان با هم خوب کار میکنند! مگر اینکه چیپ ماژول چیز دیگری باشد وگر نه با این چیپ ( +nrf24lu1) باید بتوان ارتباط پایدار ایجاد کرد و مشابه این کار هم زیاد انجام شده و تو اینترنت موجود هست.
    اونطور ها هم نیست که متن باز ها آدم حساب نشن، کامپیوتری ها گاهآ انجمن های خیلی فعال هم دارند ولی در مجموع من هم ترجیح میدم انجمن های انگلیسی زبان رو دنبال کنم و فعال باشم تا فارسی زبان .مشکل این ماژول هم اینه که خیلی بی نام و نشونه آدم نمیدونه تو یه انجمن دیگه اصلآ چی بپرسه یا دنبال چی باشه! ماژول های مشابه ولی نام دار این مشکل رو ندارند و خوب طبیعتآ باید گرون تر هم باشند.با این هزینه این ماژول فوق العاده است.(به شرطی که کار کنه!)

    به هر حال ممنون از پاسخ تون و من هم امیدوارم و هم اعلام آمادگی میکنم که اگر این انجمن بخواد فعال باشه، همکاری خواهم کرد.


    سلام مجدد
    آره حتی زمانی که دوتا یا چند تا رو با هم استفاده کردم بازهم به نویز ها حساس بود. حتی به نویز های موبایل و ولتاژ برق ac ! در واقع همین خروجی های بی معنی که در سریال مونیتور میبینیم همون دیتا های خطایی هست که تحت تاثیر نویز ها یه این شکل در اومده
    بسیار از آشنایی با شما خوشحال شدم امیدوارم از وجودتون بتونیم استفاده کنیم و همیشه موفق و پیروز باشید
    یکی دیگه از مشکلات ما در ایران اینه که تکنولوژیمون وابسته به اونور هست و از خودمون چیزی نداریم. پس اینجا به نظر من مسئولیت کسانی که توانایی بالاتری دارند و زبان انگلیسیشون هم خوبه، سنگین تر میشه، چون به هر حال ما باید بتونیم به هم زبونای خودمون بهتر کمک کنیم!

  8. #48
    Member
    تاریخ عضویت
    Aug 2014
    نوشته ها
    76
    نقل قول نوشته اصلی توسط d3lphi نمایش پست ها
    من اطلاعات رو از کامپیوتر بدون استفاده از این ماژول USB ارسال کردم.

    به کامپیوتر یک Arduino Uno متصل بود که اطلاعات رو از کامپیوتر از طریق پورت USB دریافت می کرد (تا سقف 64 بایت که سایز بافر Serial آردوئینو محسوب میشه) و از طریق یک ماژول RF24 به یک برد مشابه ارسال می کرد.

    دوست عزیز اگرا براتون مقدور هست اطلاعات پروژه تون رو(سیم بندی، کد و ...) برای ما هم بنویسید تا از تجربه تون استفاده بشه
    ممنون

  9. #49
    Junior Member
    تاریخ عضویت
    Oct 2014
    نوشته ها
    8
    نقل قول نوشته اصلی توسط d3lphi نمایش پست ها
    من اطلاعات رو از کامپیوتر بدون استفاده از این ماژول USB ارسال کردم.

    به کامپیوتر یک Arduino Uno متصل بود که اطلاعات رو از کامپیوتر از طریق پورت USB دریافت می کرد (تا سقف 64 بایت که سایز بافر Serial آردوئینو محسوب میشه) و از طریق یک ماژول RF24 به یک برد مشابه ارسال می کرد.
    ممنون
    این موضوع در مورد دانگل یو اس بی هست و اینکه این مورد شما مثال همین سایت هست و قبلآ گذاشته شده. به هر حال ممنون

  10. #50
    Junior Member
    تاریخ عضویت
    Nov 2014
    نوشته ها
    3
    سلام دوستان . راستش خیلی وقت گذاشتم ولی متاسفانه نشد این ماژول رو راه بندازم. برای همین مزاحم اوقات دوستان شدم.

    راستش من هم یک برد درایور usb این ماژول NRF24L01+ بهمراه خود ماژول خریدم . هدر برنامم هم کدیه که در زیر گذاشتم. میشه کمک کنید و این دستور کانفبگش رو بفرمایید (AT+SET=05060001030700). راستش هر چی زدم نشد .

    خیلی گیرم بخدا . ممنون میشم کمک کنید


    [
    QUOTE]
    #ifndef __nRF24L01+_H
    #define __nRF24L01+_H

    #include <mega32.h>
    #include <nRF24L01+.h>
    #include <stdio.h>
    #include <delay.h>
    // SPI functions
    #include <spi.h>


    #define CE PORTB.3
    #define CSN PORTB.4

    /* Instruction Mnemonics */
    #define R_REGISTER 0x00
    #define W_REGISTER 0x20
    #define REGISTER_MASK 0x1F
    #define ACTIVATE 0x50
    #define R_RX_PL_WID 0x60
    #define R_RX_PAYLOAD 0x61
    #define W_TX_PAYLOAD 0xA0
    #define W_ACK_PAYLOAD 0xA8
    #define FLUSH_TX 0xE1
    #define FLUSH_RX 0xE2
    #define REUSE_TX_PL 0xE3
    #define NOP 0xFF


    /* 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
    #define DYNPD 0x1C
    #define FEATURE 0x1D




    #pragma used+
    /* library function prototypes */

    flash unsigned char Base_Addrs[5]={0x00,0x01,0x03,0x07,0x00};
    unsigned char Temp_Addrs[5]={0x00,0x01,0x03,0x07,0x00};
    unsigned char payload[33];
    unsigned char Command_Reg = 0,Status_Reg = 0,State = 0;
    char Opr_Mode;
    bit send_actived = 0;


    void Set_Reg(unsigned char ins)
    {
    int i;
    CSN = 0;
    Status_Reg=spi(ins);
    switch(ins & 0xE0)
    {
    case 0x00:
    {
    if((ins & 0x1F)==0x0A || (ins & 0x1F)==0x0B || (ins & 0x1F)==0x10)
    {
    for(i=4;i>=0;i--)
    {
    Temp_Addrs[i]=spi(NOP);
    }
    }
    else
    {
    Command_Reg=spi(NOP);
    }
    break;
    }
    case W_REGISTER:
    {
    if((ins & 0x1F)==0x0A || (ins & 0x1F)==0x0B || (ins & 0x1F)==0x10)
    {
    for(i=4;i>=0;i--)
    {
    spi(Base_Addrs[i]);
    }
    }
    else
    {
    spi(Command_Reg);
    }
    break;
    }
    case R_RX_PL_WID:
    {
    if((ins & 0x01)==1)
    {
    i=payload[0];
    while(i!=0)
    {
    payload[i]=spi(NOP);
    i--;
    }
    }
    else
    {
    Command_Reg=spi(NOP);
    }
    break;
    }
    case W_TX_PAYLOAD:
    {
    i=payload[0];
    while(i!=0)
    {
    spi(payload[i]);
    i--;
    }
    break;
    }

    }
    CSN=1;
    delay_us(10);
    }




    // External Interrupt 2 service routine
    interrupt [EXT_INT2] void ext_int2_isr(void)
    {
    // Place your code here
    if(Opr_Mode==0)
    {
    Set_Reg(NOP);
    if(Status_Reg & W_REGISTER)
    {
    State = 2;
    Set_Reg(FIFO_STATUS);
    if((Command_Reg & 0x01)==0)
    {
    Set_Reg(R_RX_PL_WID);
    if(Command_Reg<=32)
    {
    payload[0]=Command_Reg;
    Set_Reg(R_RX_PAYLOAD);
    State = 3;
    }
    else
    Set_Reg(FLUSH_RX);
    }
    }
    else
    {
    State = 4;
    }
    }
    else
    {
    Set_Reg(R_RX_PL_WID);
    if(Command_Reg>32)
    {
    Set_Reg(FLUSH_RX);
    }
    else
    {
    payload[0]=Command_Reg;
    Set_Reg(R_RX_PAYLOAD);
    State = 1;
    }
    }
    Command_Reg = 0x7E;
    Set_Reg(0x27);
    Set_Reg(FLUSH_TX);
    }





    void Send_Data(char num , char *data)
    {
    int counter = 0;

    payload[0] = num;

    for(counter=0;counter<num;counter++)
    payload[counter+1] = *(data+counter);

    if(send_actived)
    {
    send_actived = 0;
    if((Temp_Addrs[4]==Base_Addrs[4]) && (Temp_Addrs[3]==Base_Addrs[3]) && (Temp_Addrs[2]==Base_Addrs[2]) && (Temp_Addrs[1]==Base_Addrs[1]) && (Temp_Addrs[0]==Base_Addrs[0]))
    {
    Set_Reg(FLUSH_TX);
    Set_Reg(W_TX_PAYLOAD);
    delay_ms(10);
    CE = 1;
    delay_us(20);
    CE = 0;
    delay_ms(10);
    }
    else
    State = 5;
    }

    if(State!=0)
    {
    send_actived=1; //faal sazi ersal mojadad
    State=0;
    }
    }



    void nRF_Config(char mode)
    {
    // Port B initialization
    // Func7=Out Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
    // State7=0 State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0xB0;

    CSN = 1;
    CE = 0;


    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: On
    // INT2 Mode: Falling Edge
    GICR|=0x20;
    MCUCR=0x00;
    MCUCSR=0x00;
    GIFR=0x20;


    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 2000.000 kHz
    // SPI Clock Phase: Cycle Start
    // SPI Clock Polarity: Low
    // SPI Data Order: MSB First
    SPCR=0x50;
    SPSR=0x00;


    #asm("sei")

    delay_ms(110);

    Opr_Mode = mode;

    Command_Reg = 0x01;
    Set_Reg(0x21);

    Command_Reg = 0x01;
    Set_Reg(0x22);

    Command_Reg = 0x03;
    Set_Reg(0x23);

    Command_Reg = 0x2f;
    Set_Reg(0x24);

    Command_Reg = 0x01;
    Set_Reg(0x25);

    Command_Reg = 0x06;
    Set_Reg(0x26);

    Set_Reg(0x2A);

    Set_Reg(0x30);

    Command_Reg = 0x01;
    Set_Reg(0x3C);

    Command_Reg = 0x07;
    Set_Reg(0x3D);

    if(mode==0)
    {
    Command_Reg = 0x4E;
    Set_Reg(W_REGISTER);
    delay_ms(100);
    send_actived = 1;
    }
    else
    {
    Command_Reg = 0x3F;
    Set_Reg(W_REGISTER);
    delay_ms(5);
    CE = 1;
    }
    }


    #pragma used-


    //#pragma library nRF24L01+.lib


    #endif
    [/QUOTE]

صفحه 5 از 7 نخستنخست ... 34567 آخرینآخرین

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

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

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

SEO by vBSEO