ايران ويج

نسخه‌ی کامل: سیستم عامل برای AVR
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
ارور sram میده
میگه متغیرات بیش از حد مجاز میکرو هست !

دومی رو کار نکردم
با سلام خدمت دوستان

دارم روش کار می کنم. هنوز به طور کامل طراحی نشده و اصلی ترین قسمت یعنی متغیر ها و مقایسه ی اونا باقی مانده.
ولی تا الان تونستم موتور توابعی رو که مقدار بازگشتی ندارند ، راه بیاندازم....مثل lcd_write , lcd_box , lcd_cls , lcd_pset , io_setpin , waitms .
اگه این مورد رو هم درست کنم(انشاالله) فکر کنم قدم بعدی وصل کردن mmc یا sd به میکرو هست به طوری که بشه یک متن رو از داخلش خواند.
ظاهرا این سیستم عامل را میشه روی AVR ( البته فکر کنم سری های جدیدش AVR32 ) پیاده کرده
http://www.freertos.org

و به نقل از ویکیپدیا تعدادی دیگه سیستم عامل برای این مدل
http://en.wikipedia.org/wiki/AVR32

این avr32 توی ایران هست ؟
سلام.

همینطوری داشتم توی نت می گشم که اینو دیدم:

http://en.wikipedia.org/wiki/Arduino

http://andyplekhanov.narod.ru/hard/arduino/arduino.htm

http://www.arduino.cc/cgi-bin/yabb2/YaBB...1223055237

همچنین مشکل mmc نیز حل شده اما یه مشکل بزرگتر! sram مگا 32 کم اومدSad
خوب مگا 64 یا 128 !

این تیکش یعنی چی :

کد:
Official Arduinos have used the megaAVR series of chips, specifically the ATmega8, ATmega168, ATmega328, and ATmega1280. A handful of other processors have been used by Arduino clones. Most boards include a 5-volt linear regulator and a 16 MHz crystal oscillator (or ceramic resonator in some variants),
(۰۶-خرداد-۱۳۸۹, ۱۹:۴۶:۴۸)t3r!p3000 نوشته است: [ -> ]خوب مگا 64 یا 128 !

این تیکش یعنی چی :

کد:
Official Arduinos have used the megaAVR series of chips, specifically the ATmega8, ATmega168, ATmega328, and ATmega1280. A handful of other processors have been used by Arduino clones. Most boards include a 5-volt linear regulator and a 16 MHz crystal oscillator (or ceramic resonator in some variants),

خوبه، یعنی جالبه که حتی با مگا 8 هم کار میکنه! (8 کیلوبایت !!!!!!!)

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

برد خاصی نیست.انگار یه مبدل usb به RS232 روی برد گذاشتند با چند تا پین خروجی و pwm.
-----------------------------------------------------------------------------------
وضعیت سیستم عامل در حال طراحی:

کار های انحام شده:
-مبدل usb به سریال آماده است.
-ال سی دی گرافیکی آماده است.
- صفحه لمسی آماده است. با قابلیت کالیبره کردن نسبت به موقعیت های متفاوت و صفحه کلید مجازی.(امروز اشکالاتش رفع شد )
- زبان برنامه نویسی آماده شده اما هنوز پایه هاش. یعنی تستش کردم درست کار میکنه اما وقتی دستورات یکم زیاد می شه sram کم میاد.
- راه اندازی mmc از طریق avr dos که فرمت fat 16 , fat 32 رو ساپورت میکنه! قابلیت ارتقاء تا 2 گیگ.


مشکلات:
- طراحی برد برای مگا 128 یا 64 که باید روش خیلی فکر کرد(برای بهره گیری از adc و pwm , timer counter و serial و i2c و ...)
سلام.تااینجا رو من اومدم که توی mmc یک فایل txt درست میکنید و توش دستورات رو می نویسید...(atmega32,c.lcd ,mmc(fat32,fat)

اما من که پروندشو بستم و دیگه دنبالش نمی کنم.
چون اگه بخوام زبان برنامه نویسی رو بطور کامل روی میکرو پیاده کنم وقعا هر کاری کنم با avr نمیشه چون :1.سرعت کمه 2.sram کم داره



1. در هر سطر از فایل متنی(txt)باید یک دستور نوشته شود.
2. اگر از تابعی استفاده میکنید که هیچ مقدار ورودی ندارد باید پرانتزها را بگذارید مثل: ()lcd_cls
3. بزرگی یا کوچکی حروف فرقی نمیکند.
4. متغیرها از پیش تعیین شده هستند و با شماره ی خاص خودشان در دسترس هستند.
-برای استفاده از متغییر ها در توابع باید بصورت زیر آن ها را به تابع ارسال کنید: شماره ی متغیر + (اگر از متغیر integer استفاده می کنید => i) (رشته ای =>string=>s) ( اعشاری : d) + @
مثال : lcd_write(2,1,@s1) یعنی رشته ی @s1 را در مختصات x=1,y=2 بنویسد(lcd کاراکتری)
- برای مقدار دهی متغیر ها از تابعvar_set استفاده کنید بصورت:
var_set(dest_var,value)
dest_var: مثل متغیر ها نشانی را ارسال کنید اما فقط بجای @ از $@ استفاده کنید: var_set(@$s1,'Hello World')
value: مقدار هم جنس با متغیر است که قرار است متغیر با آن مقدار دهی شود.

-----------
- برای کپی کردن مقدار یک متغیر در دیگری از var_copy استفاده کنید:
var_copy(@$i1,@$i9)


[تصویر:  1276853736.jpg]

کد:
نمونه ی کد:

lcd_cls()
lcd_write(1,1,'Hello')
lcd_write(2,1,'World')
var_set(@$s1,'SalehJG')
var_copy(@$s2,@$s1)
waitms(100)
lcd_write(2,1,@s2)
waitms(1000)
lcd_cls()

[attachment=5099]
[attachment=5100]

pcb مدار mmcهم در لینک زیر هست که با پروتل winter 09 کشیدم ، تست کردم درست کار میکنه اما چون بدون نقشه کشیدم پروتل اشکال می گیره.

MMC (مشکل با پروتل)
صفحه‌ها: 1 2