اطلاعیه

Collapse
No announcement yet.

بردی جالب با سیستم عاملی جالب!

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

    #16
    پاسخ : بردی جالب با سیستم عاملی جالب!

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

    دیدگاه


      #17
      پاسخ : بردی جالب با سیستم عاملی جالب!

      سلام خسته نباشید. کفمون برید :eek: :eek:
      اگه میشه سورس کامل رو قرار بدید و تو هر جلسه قسمتی از اون رو برامون توضیح بدید.
      ممنون
      www.tehranelec.com

      دیدگاه


        #18
        پاسخ : بردی جالب با سیستم عاملی جالب!

        با سلامی مجدد
        برای دوستانی که دنبال دانستن سخت افزار استفاده شده هستند :
        cpu:PIC18F8720
        LCD:ELT240320ATP (lcd driver : ILI9320)i
        SOUND:LM358 (op amp) sterio PWM
        MEMORY: SD 2 GB
        همین :mrgreen: به همین سادگی :mrgreen:
        یه خبر بد فایل پرینتی برد رو توی خراب شدن ویندوز از دست دادم :cry2: :angry:
        ولی هنوز یک پرینت ازش دارم

        در مورد سورس از زیر دانلودش کنید ولی قبلش:
        1-این فایلها فقط جنبه اموزشی و به اشتراک گذاشتن اطلاعات دارد و استفاده تجاری و تکثیر بدون هماهنگی قانونا و اخلاقا و شرعا حرام است. :sad:
        2-این سورس از لحاظ بهینه بودن کد همچنین اشکالات قابل اطمینان 100% نیست ولی در عمل پاسخ خوبی داده است.گاهی نیز دقت فدای سرعت اجرای کد شده است.
        3-این سورس مخصوص مموری SD 2 GB نوشته شده و بهینه شده و در صورت استفاده از اندازه های دیگر مموری سورس باید تغییر کند.
        4-این سورس با Mikrobasic ورژن 6 نوشته و کامپایل شده . در صورت استفاده از دیگر ورژنها احتمالا باید اصلاح شود.
        5-در این سورس از حافظه EEPROM نیز برای ذخیره اطلاعات مربوط به اپشنها استفاده شده است.
        و اما فایلها :
        PDA\source سورس اصلی برنامه شامل:
        PDA.pbas مین و اصل برنامه
        variable.pbas تمامی متغییر ها در این فایل است
        routine.pbas تمامی کتابخانه های اصلی در این فایل است
        kernal_0.pbas تمامی برنامه های اصلی کرنال در این فایل است
        kernal_programs.pbas تمامی پنجره های مهم کرنال در این فایل است (%40 هنوز کامل نشده)
        programs.pbas تمامی برنامه های کاربردی جانبی در این فایل است(90% هنوز کامل نشده)

        PDA/files این پوشه شامل تمامی فایلهای خام و فایل اصلی که بر روی مموری قرار می گیرد
        fat.txt راهنمای من برای دانستن جای شروع هر عکس یا صدا در فایل kernal.txt
        kernal.txt فایل اصلی که بر روی مموری ذخیره می شود و کلیه عکس ها و صداهای مشاهده شده درون ان هستند.(همون هسته سیستم عامل)
        پوشه های دیگر شامل عکس ها و صدا های خام هستند که دسته بندی شده اند و به دلیل نوع ذخیره خاص عکسها فقط با فوتوشاپ باز می شوند.

        PDA/program شامل یه نرم افزار Hex viewer است برای مشاهده داخل فایل kernal.txt

        سورس و کدها:
        PDA4.rar
        mikrobasic v 6 همراه کرک رو هم شنبه براتون میزارم.
        من هم سعی می کنم تا فردا ظهر یه توضیح یک خطی برای هر پراسیجر در فایل routine.pbas براتون بزارم تا کارتون ساده تر بشه
        فقط توجه داشته باشد که این برنامه هیچ چیز پیچیده یا مشکلی که شما اساتید بلد نباشد نداره و خیلی سادس
        کوچیک همتون عباس ملک حسینی
        :bye

        [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

        دیدگاه


          #19
          پاسخ : بردی جالب با سیستم عاملی جالب!

          محتویات فایل routin.pbas
          نکته مربوط به (SD)مموری خارجی :
          در مموریهای موجود همیشه ادرس اولین سکتور فیزیکال با لوجیکال برابر نیست یعنی اینکه مثلا ادرس اولین سکتور فیزیکال برابر 65 ایت یعنی اینکه وقتی شما دستور خواندن سکتور 1000 را برای sd می فرستید sd برای شما اطلاعات مر بوط به سکتور 935 یعنی 65 تا قبل تر را می فرستد یعنی همیشه باید 65 تا به سکتور مورد نظر اضافه کنید و به sd بفرستید . این عدد 65 فقط مثال بود ولی این sd من 65 است برای همین هر وقت توی برنامه ببینید با سکتوری کار داشته ام 65 تا به ان اضافه کردم.البته ممکن است که این عدد صفر یا هر عدد دیگری نیز باشد.
          حال از کجا بفهمیم که این عدد چند است؟ با استفاده از نرم افزار هایی مثل partition maneger می توان این عدد را در مشخصات sd پیدا کرد .یک جا نوشته first phisical sector : 65 (برای مثال65 ) نمی دونم دوستان تا حالا به این مشکل بر خوردن یا نه ولی لین مشکل پدر منو در اوورد تا بلاخره فهمیدم اوضاع از چه قراره :mrgreen:
          sub procedure SD_INIT()
          برای اغاز بکار مموری خارجی بکار میرود
          sub procedure SD_READ_SECTOR(dim sector as longint)
          یک سکتور از مموری می خواند
          sub procedure SD_READ_SECTOR_INIT(dim sector as longint)
          عملیات لازم برای شروع خواندن یک سکتور را انجام می دهد
          sub procedure SD_READ_BYTE_SECTOR(dim byref b as byte)
          یک بایت از سکتوری را که قبلا init کردیم می خواند
          sub function SD_FAT_CHAIN(dim cluster as word) as word
          یک کلاستر فایل را می گیرد و کلاستر بعدی فایل را از fat می خواند مثل زنجیر
          sub function SD_ASSIGN(dim byref f_n as byte[11],dim cluster as word) as byte
          در یک کلاستر به دنبال فایل مورد نظر می گردد و در صورت پیدا شدن عملیات لازم را برای خواندن ان انجام می دهد
          sub procedure SD_FILE_GET_LOCATION(dim byref f_n as byte[11],dim cluster as word)
          در کلاستر مورد نظر به دنبال فایل مورد نظر می گردد و در صورت پیدا شدن مکان ان را در کلاستر بر می گرداند .(در هر سکتور حداکثر 16 اسم فایل می توان ذخیره کرد و در یک کلاستر مثلا 16 سکتوری حداکثر 256 اسم فایل می توان ذخیره کرد.منظور از مکان این که این اسم در چندمین 32 بایت کلاستر است)
          sub function SD_FILE_READ_BYTE()as byte
          از فایلی که قبلا assign شده یک بایت بر می گرداند
          sub procedure SD_CLOSE_FILE()
          فایلی که قبلا assign شده بود را می بندد
          sub function SD_GET_FILE_NAME_SECTOR(dim byref f_n as byte[32],dim sector as longint,dim location as byte) as byte
          در سکتور مورد در مکان مورد نظر اسم و مشخصات فایل را بر می گرداند(قبلا باید مطمئن باشیم که در مکان مورد نظر اسو فایل موجود است)
          sub function SD_GET_NUMMBER_FILE_CLUSTER(dim cluster as word) as word
          تعداد فایلهای موجود در کلاستر را بر می گرداند
          sub function SD_GET_12_FILE_NAME_CLUSTER(dim start_location as word,dim cluster as word) as byte
          اسم و مشخصات 12 فایل را از مکان مورد نظر در کلاستر مورد نظر بر می گرداند
          sub function TOUCH()as byte
          فقط چک می کند که ایا تاچ لمس شده یا نه(شرط اخر برای هر تاچ فرق می کند و تجربی است)
          sub procedure TOUCH_READ(dim byref x as word,dim byref y as word)
          مکان لمس شده را بر می گرداند بصورت 320در240
          sub procedure P_TOUCH_READ(dim byref x as word,dim byref y as word)
          مکان لمس شده را بصورت دقیق بر می گرداند
          sub procedure LCD_W_DAT(dim dat as word)
          برای نوشتن دیتا در lcd بکار می رود
          sub procedure LCD_W_INS(dim ins as word)
          برای نوشتن دستور در lcd بکار می رود
          sub procedure LCD_INIT0()
          برای init کردن lcd بکار میرود
          sub procedure LCD_FILL(dim START_X as word,dim END_X as word,dim START_Y as byte,dim END_Y as byte, dim color as word)
          برای پر کردن صفحه با رنگ خاص استفاده می شود
          sub procedure LCD_DOT(dim X as word,dim Y as byte,dim color as word)
          برای گذاشتن نقطه در صفحه بکار می رود
          sub procedure LCD_SET_SHOW_DIRECTION(dim direction as byte)
          جهت نمایش عکس در lcd را مشخص می کند (چپ به راست یا بر عکس . بالا به پایین یا بر عکس)
          sub procedure LCD_PIC_INIT(dim START_X as word,dim END_X as word,dim START_Y as byte,dim END_Y as byte)
          عملیات لازم برای نمایش یک عکس در یک مستطیل را انجام می دهد
          sub procedure LCD_SEND_PIC(dim color as word)
          برای فرستادن اطلاعات عکس که قبلا init شده بکار میرود
          sub procedure LCD_SET_TEXT_COLOR(dim color as word,dim b_color as word)
          رنگ تکست و پس زمینه ان را مشخص می کند
          sub procedure LCD_WRITE_CHAR(dim C as byte,dim x as word,dim y as word)
          یک کاراکتر روی مکان مورد نظر نمایش می دهد
          sub procedure LCD_WRITE_TEXT(dim byref text_54 as byte[54],dim l as byte,dim s_x as word,dim s_y as word)
          برای نوشتن یک رشته روی صفحه بکار می رود
          sub procedure LCD_SHOW_PIC_SECTOR(dim START_X as word,dim END_X as word,dim START_Y as byte,dim END_Y as byte, dim start_sector as longint)
          از سکتور مورد نظر در مکان مورد نظر بصورت پشت سر هم اطلاعات عکس را گرفته و روی lcd نمایش می دهد (با حد اکثر سرعت)
          sub procedure LCD_SAFE_OFF()
          برای خاموش کردن درایور lcd بکار میرود
          sub procedure LCD_BACKLIGHT(dim S as byte)
          برای کنترل backlight lcd بکار می رود
          sub procedure LED(dim S as byte)
          برای کنترل led های برد بکار می رود
          sub procedure PLAY_PWM_SOUND_SECTOR(dim start_sector as longint,dim n_s as word)
          از سکتور مورد نظر به تعداد مشخص محتویات سکتور را بصورت فایل wav 8bit 8000hz پخش می کند
          نکته:برای فهمیدن دقیق سورس باید ساختار fat همچنین تا حدودی lcd رو خوب بلد باشین.
          موفق با شید :bye

          [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

          دیدگاه


            #20
            پاسخ : بردی جالب با سیستم عاملی جالب!

            سلام و عرض ادب خدمت دوستان.
            abbasmh عزیز ممنون از بابت توضیحات...
            abbasmh عزیز می شه لطف کنی و بگی ال سی دی را از کجا و با چه قیمتی خریدی و مال کدوم گوشی هستش ؟
            document ای اگر از خودش و تاچش داری محبت کنی ممنون می شم...
            و یا لاقل اینکه پایه هاش چبی به چی هست...
            و یک نکته دیگه اینکه شما فرمودید با 40 مگ دارید کار می کنید...ولی 8720 با pll طبق دیتاشیت تا 25 مگ جواب می ده؟
            با تشکر فراوان.
            زهر است عطای خلق هر چند که دوا باشد***حاجت ز که می خواهی جایی که خدا باشد

            دیدگاه


              #21
              پاسخ : بردی جالب با سیستم عاملی جالب!

              سلام
              برای lcd
              http://www.eca.ir/forum2/index.php?topic=31975.0
              با arm راهش انداختن ولی یه تاپیک کامل هم توی AVR هست که حوصله نکردم پیداش کنم
              برای datasheet هم توی گوگل دنبال اسم lcd و اسم درایورش بگرد پر از pdf هست توی دیتا شیتش همه چیز هست
              در مورد کریستال 40 مگ حق با شماست از 10 مگ با 4 تا PLL استفاده کردم

              [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

              دیدگاه


                #22
                پاسخ : بردی جالب با سیستم عاملی جالب!

                اینم یه فایل کوچولو و کامل برای fat :

                FAT.rar

                (لینک اصلاح شده)
                :bye

                [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                دیدگاه


                  #23
                  پاسخ : بردی جالب با سیستم عاملی جالب!

                  در مورد کار با mmc به صورت سکتوری و نه fat فایل ندارید برای آموزش؟

                  دیدگاه


                    #24
                    پاسخ : بردی جالب با سیستم عاملی جالب!

                    اینم دو تا فایل اموزشی با مثال فارسی کار جناب تروشه عزیز برای کار با mmc بصورت سکتوری:

                    MMC-SD.pdf

                    اینم میکرو بیسیک ورژن 6 با کرک:

                    Mikrobasic.zip

                    (لینک ها اصلاح شده)
                    :job:

                    [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                    دیدگاه


                      #25
                      پاسخ : بردی جالب با سیستم عاملی جالب!

                      آقا دستت درد نکنه! یه سوال ؟ برای اینکه با اصول سیستم عامل نویسی آشنا بشیم منبعی نداری؟! خودتون چطوری شروع کردین؟ منبع فارسی بهتره! :redface:

                      دیدگاه


                        #26
                        پاسخ : بردی جالب با سیستم عاملی جالب!

                        سلام :biggrin:
                        برای اینکه با اصول سیستم عامل نویسی آشنا بشیم منبعی نداری؟! خودتون چطوری شروع کردین؟ منبع فارسی بهتره!
                        راستش من از منبع خاصی استفاده نکردم.فقط یککمی اطلاعات قبلی از کامپیوتر داشتم مثلا اینکه یک سری ار فایل ها رو که زیاد نیاز داره می ریزه توی رم تا بتونه با سرعت زیاد ازشون استفاده کنه . حالا ما با میکرو به این اندازه رم دسترسی نداریم برای همین مستقیم از SD به عنوان رم استفاده کردم.در مورد منبع فارسی بعید می دونم که چیزی تو این زمینه(برای میکرو) پیدا کنی . ولی توی وب منابع انگلیسی بیشتره.میتونی توی wikipedia دنبال میکرو های PIC بگردی توی اونجا ادرس یک سری از سیستم عاملهای ارائه شد رو می تونی پیدا کنی.
                        خیلی جالبه مخصوصا سیستم عاملت اونم گرافیکی. میشه یکم بیشتر در موردش توضیح بدید؟
                        ممنون
                        هنوز مطمئن نیستم که بشه بهش گفت سیستم عامل (بدلیل سادگی) ولی خوب بهر حال
                        این برنامه در واقع یه برنامه سادس (ولی تنظیم و طراحی و ساختش خیلی وقت گیره) که از SD به عنوان یه حافظه خارجی شبیه رم استفاده می کنه.برنامه اول میاد همه چیزو init میکنه و متغییر ها رو مقدار دهی اولیه می کنه بعد میفته توی حلقه بینهایت اصلی.توی این حلقه با توجه به یه متغییر بررسی می شه که کدوم زیر برنامه اجرا بشه.حالا وقتی توی اون زیر برنامه اتفاقاتی مثل خروج یا می نیمایز یا ... اتفاق بیفته متغییر اصلی با توجه به اتفاق مقدار دهی می شه و از زیر برنامه خارج می شیم . حالا این متغییر یه مقدار دیگه داره توی حلقه بینهایت هم هست با توجه به مقدار جدید یه برنامه دیگه شروع میشه و الی اخر ... .دلیل خروج متوالی از یه برنامه برای ورود به یه برنامه دیگه اینه که میکروها دارای فضای STACK کمی هستند برای همین نمیشه همین جوری هی از دستور CALL استفاده کنیم اخرش stack سر ریز میشه و میکرو ریست میشه.
                        حالا هر کدوم از برنامه های حلقه اصلی یه ساختار خاصی دارن.مثلا هر کدوم برای خودشون باید یک سری متغییر خاص داشته باشن که وضعیت فعلی برنامه رو در صورت خروج یا مینیمایز ذخیره کنن.یا اینکه هر کدوم یه حلقه بینهایت برای تاچ دارن و با توجه به نقطه لمس شده عکس العمل نشون میدن.یا اینکه هر کدوم از برنامه های حلقه اصلی که اجرا بشن (غیر از دسکتاپ)ایکون می نیمایزشون روی تسکبار نمایش داده میشه و با خروجشون ایکونشون از تسکبار پاک میشه.
                        یک سری دیگه از برنامه ها هستند که ایکونشون روی تسکبار نشون داده نمیشه مثل run .این برنامه ها بدلیل سادگی از stack استفاده می کنن.برای بررسی این کار بهتره که سورس رو دقیق بررسی کنید و برای شروع فکر کنم برنامه اصلی my computer بد نباشه چون سادهتر از window هست .window که واقعا پیچیده شده.
                        اگه خدا بخواد می خوام همین بردرو با dsPIC یا PIC32 بسازم ولی با برنامه های کامل شده.
                        موفق باشد.

                        [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                        دیدگاه


                          #27
                          پاسخ : بردی جالب با سیستم عاملی جالب!

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

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

                          امیدوارم روزی برسه که همه بتونن در زمینه ای که علاقه دارن درس بخونن :nerd:
                          Work with what you have .Never limit yourself by things you could have had

                          دیدگاه


                            #28
                            پاسخ : بردی جالب با سیستم عاملی جالب!

                            دقیقا خودمم نمی دونم که بشه به این برنامه گفت سیستم عامل.
                            مگه سیستم عامل چه خصوصیتی داره داره که بهش میگن سیستم عامل؟ :question:
                            درسته یه برنامه یکپارچه هست و برای قرار دادن برنامه توی اون باید برنامرو مستقیما وارد سورس اصلی کنی.
                            اگه برناممون یکپارچه باشه نمی تونه سیستم عامل باشه؟من اون سیستم عامل هایی که تا حال برای PIC نوشته شده رو یه کمی نگاه کردم.همه اونا هم همینطور یکپارچه هستن.
                            اصلا مگه با PIC یا هر میکروی دیگه که نتونه برنامرو از RAM داخلی یا خارجی یا SD اجرا کنه می شه سیستم عامل غیر یکپارچه نوشت؟
                            البته توی یه پروژه شنیدم که یه برد داشته و توی SD خارجی انواع برنامه ها بوده که می شده توی SD بچرخیم و هر برنامه ایی که قبلا برای همین میکرو رو نوشتیم و ریختیم توی SD (فایل hex) رو با بوتلودر میکرو روی خودش بریزیم و برنامه میکرو عوض شه که بازم نمیشه بهش گفت سیستم عامل غیر یکپارچه.چون ما داریم میکرو رو پروگرم میکنیم.
                            حالا دوستان اگه اشکالی یا کمبودی چیزی توی برد می بینن یا نظری راجع به این برد و برنامه دارن بگن که برای برد بعدی سعی کنم اونو برطرف کنم.
                            آره بابا عمرانیم :mrgreen:چه کنیم که سرنوشت مارو از برق به عمران کشوند. :angry:برقی نیستم ولی برقیارو دوست دارم. :mrgreen:

                            [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                            دیدگاه


                              #29
                              پاسخ : بردی جالب با سیستم عاملی جالب!

                              سلام

                              راستش منم گفتم اطلاعات دقیقی راجع به سیستم عامل ندارم ولی تا اونجا که میدونم سیستم عامل لایه بین نرم افزار و سخت افزار هست و نرم افزارها باید با واسط هایی که سیستم عامل در اختیارشون قرار میده اجرا بشن و البته وظیفه در اختیار قرار دادن سخت افزار رو هم داره.البته از گفته هام مطمن نیستم.

                              در مورد بوتلودر هم فکر میکنم بشه (اگر بشه سیستم عامل رو درست تعریف کرد اونوقت بهتر میشه در مورد اینکه میشه یا نه نظر داد)



                              Work with what you have .Never limit yourself by things you could have had

                              دیدگاه


                                #30
                                پاسخ : بردی جالب با سیستم عاملی جالب!

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

                                تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                                دیدگاه

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