در ادامه توضیحات قبل:
شما در پروژه لینک بالا دوتا پوشه دارین : My R و My S خیلی یکی فرستنده و دیگری دریافت کننده است. Send Receive
داخل هر پوشه یک فایل کد و یک فایل کتابخونه است با بقیه کاری نداشته باشید اونا را «کدویژن» تولید کرده. nRF24L01+.h , S-R.c که یکی کتابخونه و دیگری سورس کد پروژه است.
تغییرات nRF24L01+.h
کتابخونه یا nRF24L01+.h را باز باید بکنید و یکسری تغییرات اعمال کنید. (بهتر بود نویسنده کتابخونه فایل کتابخونه را دو تیکه کنه ولی به هر حال دستش درد نکنه اینم نعمتی است.) تغییرات به شرح زیر هستن:
نوع میکروکنترلر را تغییر بدید به mega8
#include <mega32.h>
تغییر دوم پایه های زیر هستن که باید ببینید کجا وصل کردین تغییر بدین:
#define CE PORTB.3
#define CSN PORTB.4
طرف در کد از External Interrupt 2 یا وقفه خارجی شماره 2 استفاده کرده باید ببینید در ATmega8 این هستش که هیچ اگر نیست باید ایجا یک تغییراتی را اعمال کنید. یعنی بیایین ببینید چه وقفه خارجی در ATmega8 داریم که جایگزین کنین ولی به احتمال زیاد هستش و فقط به پایش دقت کنید.
interrupt [EXT_INT2] void ext_int2_isr(void)
و در این فایل یک تابعی به اسم nRF_Config هم هست که باید پایه ها و رجیسترهای آن را برای میکروکنترلر ATmega8 تغییر بدید شایدم نمیخواد باید چک کنید. کدهای زیر را در این فایل ببینید:
// 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;
// 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;
نکته خیلی مهم: این تغییرات باید در فایل سمت فرستند هم اعمال بشن.
خب تا اینجا ما فایل کتابخونه را تغییر دادیم یا پورتش کردیم به مگا8 الان وقت اینه که بریم فایل سورس را دست کاری کنیم.
تغییر فایل سورس S-R.c
توی این فایلم باید نوع میکروکنترلر را تغییر بدید و البته باید از منو Project -> Configure کدویژن هم نوع میکروکنترلر را عوض کنید.
#include <mega32.h>
در ضمن به کلاک میکروکنترلر دقت کنید. خیلی دقت کنید از همان منو Project -> Configure مقدارش را تنظیم و در موقع پروگرم کردن «فیوزبیت» ها را هم تنظیم کنید.
این پروژه LCD هم داره اگر لازم ندارین باید حذفش کنید از کد و تنظیمات. و صد در صد لازمه پایه هاش را تنظیم کنید اگر میخواهید استفاده کنید.
در فایل S-R.c هم باید این تغییرات اعمال بشن حواستون باشه.
خب فک کنم اینا را تغییر بدید با دقت باید بتونید پروژه را پورتش کنید به مگا8 و نهایتا اگر به میکروکنترلر تسلط ندارین میتونید آموزش ها را ببینید یا از مگا32 استفاده کنید.
مطالب زیر را هم ببینید میتونه شما را کمک کنه: