الکتروبو | علم به زبان ساده

آموزش علوم به زبان ساده

۵ مطلب در تیر ۱۳۹۶ ثبت شده است

نصب فریمور eLua روی برد آموزشی LPC1768

به نام خدا

سلام!

راستش وقتی با ماژول وایفای ESP8266-01 کار میکردم. (NodeMCU روش نصب کردم) خیلی لذت میبردم که بدون نیاز به کامپایل برنامه میشه به صورت آنلاین روش پروگرم کرد! منظورم اینه که دیگه نیاز نیست میکرو رو ریست کنی و وصل کنی به پروگرمر و... فقط همونجوری که روشنه وصلش میکنی به UART و براش برنامه مینویسی! تازه ویژگی های LUA خیلی بیشتر از ایناست. مثلا میتونی چند تا برنامه رو همزمان داشته باشی. یعنی میتونی هر وقت خواستی برنامه مورد نظرت رو اجرا کنی ...

۰ نظر موافقین ۰ مخالفین ۰
علی فلاح

اجرای برنامه های mbed روی برد های آموزشی LPC1768

به نام خدا

سلام خدمت دوستان عزیز و هموطنان گرامی

امروز دنبال این میگشتم که چظور میکرو LPC1768 رو با کابل Ethernet به اینترنت وصل کنم. تا اینکه به این صفحه رسیدم. (این سایت برای کشور عزیزمون تحریمه، باید با فیلتر شکن بازش کنید). اینجا بود که تازه با سایت mbed آشنا شدم!

اول دیدم ابتدای کد نوشته #include "mbed.h" خوب بنابراین دنبال کتابخانه mbed.h گشتم. که به این صفحه رسیدم. دیدم یه عالم کتابخونه برای این میکرو نوشتن که خیلی هم کیفیت برنامه نویسی خوبی دارن و با زبان C++ میشه ازش استفاده کرد.

با خوشحالی کتابخونه رو دانلود کردم و رختم توی Keil ولی جواب نگرفتم. هی ارور میداد که فلان چیز تعریف نشده undefine. گفتم برم یه سورس ازش پیدا کنم و از اون استفاده کنم. که فهمیدم سایت mbed خودش کامپایلر آنلاین داره و بدون دردسر میشه از اونجا همه چیز کامپایل کرد (با کتاب خونه های خودش) این واقعا عالی بود. (برای استفاده از کامپایلر آنلاین باید ثبت نام کنید)

برید ثبت نام کنید و با کمک صفحات زیر یه برنامه بسازید

ساخت یک برنامه 

شروع با برد LPC1768


مثلا من برنامه زیر رو نوشتم! (البته من از همون لینک اولی توی قسمت کد گزینه زرد که نوشه import program رو زدم) فقط رفتم به جای LED1 نوشتم p26

#include "mbed.h"
DigitalOut myled(p26);
int main() {
    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}
چون برد ما با برد اونا متفاوته! الان LED برد آموزشی شرکت ECA به پایه p2.0 وصله تا P2.7 یعنی هشت تا LED. که پایه P2.0 میشه 26 البته خودمم هنوز نفهمیدم چرا. توی فایل PinNames.h اینجوری نوشته بود.
    // mbed DIP Pin Names
      , p5 = P0_9 
      , p6 = P0_8
      , p7 = P0_7
      , p8 = P0_6
      , p9 = P0_0
     , p10 = P0_1
      , p11 = P0_18
      , p12 = P0_17
     , p13 = P0_15
      , p14 = P0_16
      , p15 = P0_23
      , p16 = P0_24
      , p17 = P0_25
      , p18 = P0_26
      , p19 = P1_30
      , p20 = P1_31
      , p21 = P2_5
      , p22 = P2_4
      , p23 = P2_3
      , p24 = P2_2
      , p25 = P2_1
      , p26 = P2_0
      , p27 = P0_11
      , p28 = P0_10
      , p29 = P0_5
      , p30 = P0_4
حالا باید کد رو کامپایل کنید!
برای اینکار توی همون کامپایلر آنلاین یه گزینه داره نوشته Compile اونو که بزنید کامپایل میکنه و یک فایل باینری بهتون میده! حالا شما باید فایل باینری رو به Hex تبدیل کنید. چون برنامه ای برای پروگرم کردن فایل Bin نداریم. ولی فایل Hex رو میتونیمبا Flash Magic پروگرم کنید (با استفاده از UART)
خوب برای تبدیل فایل باینری به هگز میتونید اینجا رو ببینید. و برای دانلودش میتونید برید اینجا و دانلود کنید.
بعد از دانلود اونو از فایل zip خارج کنید و با cmd برید به اون پوشه و کد زیر رو تایپ کنید!
srec_cat.exe BinaryFile.bin -Binary -o HexFile.hex -Intel
توجه داشته باشید که اسم فایلی که با mbed کامپایل کردید رو باید به جای BinaryFile.bin قرار بدید و فایل خروجی شما اسمش میشه HexFile.hex 
البته برای راحتی بیشتر میتونید این خط بالا رو توی یه تکست (.txt) کپی کنید و اسمش رو بزارید compile.batکه هروقت روش کلیک کنید خودش این خط کد رو اجرا کنه!
یعنی میتونید فایل زیر رو به پوشه ای که دانلود کردید (برای تبدیل باینری به هگز) اضافه کنید.
خوب حالا باید با برنامه Flash Magic فایل هگز رو کامپایل کنید! انشالله که برنامه به خوبی اجرا بشه.
فعلا
یا علی مدد
۱ نظر موافقین ۰ مخالفین ۰
علی فلاح

پروژه emWin حرفه ای همراه با کارت SD و پخش WAV و پشتیبانی از موس و اتصال UART

به نام خدا

سلام خدمت دوستان عزیز!

این پروژه از پارسال هست همون پارسال خواستم بزارم ولی با خودم گفتم بزار حرفه ای ترش کنم ولی دست از کار کشیدم. بنابراین امسال که دوباره اومدم سراغش گفتم بدون هیچ تغیری اول برای شما دوستان قرار بدم.

۰ نظر موافقین ۰ مخالفین ۰
علی فلاح

پردازنده 8086 با زبان VHDL

به نام خدا

سلام خدمت دوستان عزیز

بعد از سه ماه کار تصمیم گرفتم نتیجه ی کارم رو در اختیار شما بزرگواران قرار بدم!

راستش در سدد بودم که یک کامپیوتر بسازم بنابراین دست به کار شدم و ابتدا اتصال حافظه ی میکرو SD به FPGA رو بررسی کردم و آموزش اون رو اینجا قرار دادم. سپس برای نمایش متن نیاز به ارتباط با LCD بود پس به سراغ VGA رفتم و آموزش آن رو در اینجا قرار دادم. تا اینکه رسید به ورودی ها یعنی کیبورد و موس که بعد از یک سری کار روی اینها موفق به توصیف مداری که بتواند به کیبورد متصل شود، نشدم. در نهایت به سراغ قلب کامپیوتر یعنی پرازنده رفتم. نیاز بود تا پردازنده از یک سری دستور العمل پشتیبانی کند. باید دستور العمل ها را مشخص میکردم ولی برای نوشتن برنامه برای این پردازنده نیازمند کامپایلر و... بودیم بنابراین تصمیم گرفتم که دستور العمل های پردازنده مانند پردازنده ی معروف و مشهور اینتل یعنی 8086 باشد زیرا که برنامه و کامپایلر و شبیه ساز برای این پردازنده در اینترنت موجود است. بنابراین دست به کار شدم و مبنای کارم رو برنامه emu8086 قرار دادم. تا در نهایت بیش از 80 درصد دستور العمل های این پردازنده رو پورت کردم و به سراغ وقفه های dos رفتم تا با آن با نمایشگر ارتباط بر قرار کنم و روی LCD کاراکتر نمایش دهم. در اینجا بود که برای سخت افزار من (کارت SD) مشکلی پیش اومد و از ادامه ی کار باز ماندم. ولی کد مربوط به نمایش کاراکتر رو نوشتم اما از درستی عملکردش صحت حاصل نشده!

حال میخواهم این برنامه رو با تمام نقص هاش در اختیار شما بزرگواران قرار دهم.

نکته هایی که لازم است بدانید آن است که:

- پردازنده به صورت خودکار 512 بایت از کارت حافظه رو خوانده و در RAM قرار میدهد و از روی آن اجرا میکند!

- اکثر دستور العمل ها به جز شیفت ها پورت شدند

- برای دسترسی به لیست دستور العمل ها اینجا برید

- این کتاب به شما کمک میکند

- فقط 512 بایت RAM در FPGA برای برنامه قرار گرفته و تا 64 کیلو بایت پشتیبانی میشود

- هنوز سگمنت های کد و داده پورت نشدند و تغییر آنها به منظور دسترسی به آدرس آدرس:سگمنت تاثیری ندارد.

- ثبات های IP نشان دهنده آدرس برنامه و SP نشان دهنده آدرس آخرین مقدار پوش شده است و ثبات SS نشان دهنده آدرس سگمنت پشته است.

- وقفه 63h برای روشن کردن LED هاست (خودم اضافه کردم)

- اگر با چیز های عجیب و غریبی مواجه شدید کمی احتمال بدید که شاید مشکل از alias باشد زیرا این عبارت گاهی اوقات به خوبی جواب نمیدهد.

فعلا چیز دیگه ای به ذهنم نمیرسه!


دریافت
حجم: 21.7 مگابایت


موفق باشید

یا علی مدد...!

۰ نظر موافقین ۰ مخالفین ۰
علی فلاح

عبارت alias در VHDL چیست؟ و مشکل آن

به نام خدا

سلام

این عبارت به انگلیسی معنی لقب میده و تقریبا کار define در زبان  C رو انجام میده!

از طریق این عبارت شما میتونید برای هر بیت یا چند بیت از یک سیگنال یا متغیر یه اسم جدا تعریف کنید!

۲ نظر موافقین ۰ مخالفین ۰
علی فلاح