اطلاعیه

Collapse
No announcement yet.

ناخوانا بودن اطلاعات دریافتی از جی پی اس

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

    ناخوانا بودن اطلاعات دریافتی از جی پی اس

    سلام

    تو بسکام دارم خروجی هیروگلیف میگیرم از ماژول gps

    ماژول من u-blox m6v2 هستش اما با هر مقدار کریستال و باود ریت که تنظیم می کنم خروجی هیروگلیف دارم تو ال سی دی

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

    چند روزه این مشکل حسابی درگیرم کرده

    کریستال 8 و باود 9600 خروجی صحیح نمی ده

    چه با تابع ()waitkey و ()input هیچکدوم درست حسابی بهم خروجی نمی دن

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

    شماره تماس خودتونو بهم بدین تا باهاتون در ارتباط باشم و بتونم مشکلمو حل کنم

    از کریستال خارجی هم استفاده کردم اما نمی دونم چجوری فیوزبیتارو باید برا کریستال خارجی تو بسکام تعریف کنم ؟ با مقدار کریستال 7.2 خروجی تا 50 دردصد شبیه اون رشته هستش که میخوام اما هنوز دقیق نیستش

    لطفا راهنماییم کنید برای اینکه تو بسکام از کریستال خارجی چجوری استفاده کنم

    پایه کمکتونو هم بزارین رو این که من صفره صفر بلدم

    این لینکام هم می تونه کمکتون کنه ببینید من چی میخوام.

    http://www.eca.ir/forum2/index.php?topic=50210.735

    http://www.****.ir/forum/15047-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B1%D8%A8%D8%A7%D8%AA-%D9%81%DB%8C%D9%84%D9%85%D8%A8%D8%B1%D8%AF%D8%A7%D 8%B1-%D8%A8%D8%A7-%D9%85%D9%88%D9%82%D8%B9%DB%8C%D8%AA-%DB%8C%D8%A7%D8%A8-new-post.html

    http://www.****.ir/forum/15140-%D8%B3%D9%84%D8%A7%D9%85-%D9%88-%D8%AE%D8%B3%D8%AA%D9%87-%D9%86%D8%A8%D8%A7%D8%B4%DB%8C%D8%AF-%D8%AD%D8%B6%D9%88%D8%B1-%D8%AF%D9%88%D8%B3%D8%AA%D8%A7%D9%86-%D9%88-%D8%B3%D8%B1%D9%88%D8%B1%D8%A7%D9%86-%D8%B9%D8%B2%DB%8C%D8%B2%D9%85.html

    این دو تا لینک بالا مربوط به سایت http://www.****.ir هستش (ایران میکرو دات آی آر)

    #2
    پاسخ : سلام و خسته نباشید حضور دوستان و سروران عزیزم

    For A = 1 To 128
    Dat(a) = Inkey()
    Next
    همیشه کارم رو راه انداخته
    کریستال خارجی به بسکام ربطی نداره فیوزبیت باید تنظیم بشه

    دیدگاه


      #3
      پاسخ : سلام و خسته نباشید حضور دوستان و سروران عزیزم

      متوجه نشدم ؟؟؟؟!!!

      می تونی یه برنامه بسکامی برام بزاری ببینم چجوری رشته رو باید بخونم از میکرو؟

      لینکایی که گذاشتمو مهندس کامل دیدی ؟

      ممنون می شم بتونم ارتباط صوتی باهات داشته باشم ؟

      و اینکه تو بسکام چجوری باید فیوزبیتارو تنطیم کنم برا کریستال خارجی؟

      دیدگاه


        #4
        پاسخ : سلام و خسته نباشید حضور دوستان و سرورا

        در ارتباط سریال برای باود ریت 9600 باید از کریستال 11.0592 استفاده کنی.

        قرائت رشته در بسکام هم معمولا با فعال سازی وقفه و با کد زیر صورت می گیره:
        کد زیر یک نمونه ناقص است ! (برخی قسمت ها نیامده.
        مقدار کریستال مشخص شده است. لازم به ذکر است مطابق دستور دیتاشیت با استفاده از این کریستال شما می توانید باود ریت دقیق 9600 بیت بر ثانیه را ایجاد کنید اما من با کریستال های دیگر هم توانسته ام در همین سرعت کار کنم.
        متغیر A با گنجایش 10 کاراکتر از نوع String (رشته) تعریف شده است به منظور قرائت دیتای ورودی سریال
        دستورات فعال سازی وقفه سریال نیز آمده است.
        در زمان بروز وقفه و ورود اطلاعات به درگاه سریال یا پین RX میکرو، برنامه به زیر برنامه وقفه Read_data پرش کرده و مقدار خوانده شده را در متغیر A می ریزد. (شما می توانید مقدار A را بر اساس نیاز تا 255 کاراکتر فکر کنم افزایش دهید)
        در بخش اصلی برنامه هم متغیر A بر روی ال سی دی به صورت دائم نمایش داده می شود.
        [code=vb]
        $Crystal = 11059200
        Dim A as String*10
        Enable Interrupts
        Enable Urxc
        On Urxc Read_data
        Do
        Cls
        Lcd A
        Waitms 400
        Loop
        End

        Read_data:
        Input, A
        Return
        [/code]

        موفق باشید

        و اما حاشیه مهم تر از متن!!!

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

        دیدگاه


          #5
          پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

          نظرتونو امتحان می کنم ان شالله جواب بده

          البته یکی از دوستان گفته بود توی حلقه از دستور wait استفاده نشه

          اون حلقه For که گفتی رو هم توی این نمونه برنامه باید بکار ببرم ؟

          دیدگاه


            #6
            پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

            نوشته اصلی توسط sadegh_rayan2000
            نظرتونو امتحان می کنم ان شالله جواب بده

            البته یکی از دوستان گفته بود توی حلقه از دستور wait استفاده نشه

            اون حلقه For که گفتی رو هم توی این نمونه برنامه باید بکار ببرم ؟
            امیدوارم جواب بده!
            البته واضحه که دستور فوق برای پروتکل ارتباطی سریال هستش! (من پروتکل ارتباطی ماژول GPS رو نمی دونم!)
            دوستان هم شاید درست بگن! :nerd: شما هم استفاده نکن تا LCD برات قشنگ قاط بزنه! بعد بده دوستان برات درستش کنن ! خخخخخخخخ :biggrin: :biggrin: :biggrin: :biggrin:

            با کمی دقت میشه فهمید حلقه Do-While هستش نه For!
            حالا دوست داری به کار ببر دوست هم نداری دیگه بستگی به شیوه برنامه نویسی خودت داره. می تونی نوشتن روی ال سی دی رو بیاری تو بخش وقفه. (انتخاب به عهده برنامه نویس محترم)
            STM32 واقعا یه چیز دیگه است...

            دیدگاه


              #7
              پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

              خب برادر بهت بر نخوره داداش , من چشم امیدم تویی مهندس

              من تکه برنامه شما رو اینطوری کامل کردم :
              $regfile = "m8adef.dat"
              $crystal = 11059200
              $baud = 9600
              Config Portb = Output
              Config Lcd = 16 * 2
              Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.0 , Rs = Portb.1
              Enable Interrupts
              Enable Urxc
              On Urxc Read_data
              Dim Sa As String * 16
              Cls
              Do
              Lcd Sa
              Waitms 400
              Loop
              End
              Read_data:
              Input , Sa
              Return

              ریختمش رو میکرو خیلی خیلی کند داده نمایش می داد اما هیروگلیف

              من اومدم برنامه رو به اینصورت تغییر دادم :
              $regfile = "m8adef.dat"
              $baud = 9600
              $prog &HFF , &HE1 , &HD9 , &H00 ' generated. Take care that the chip supports all fuse bytes.
              Config Portb = Output
              Config Lcd = 16 * 2
              Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.0 , Rs = Portb.1
              Enable Interrupts
              Enable Urxc
              On Urxc Read_data
              Dim Sa As String * 16
              Cls
              Do
              Lcd Sa
              Loop
              End
              Read_data:
              Input , Sa
              Return

              هنگام پروگرام کردن تو قسمت look fusebit تو گزینه fusebit KLA897 رو گذاشتم رو آخرین گزینه یعنی :111111ext.crystal/resonator High Frequenc و دکمه write PRG رو زدم و یه خط اضافه کردش تو برنامه . مجدد در هنگام پروگرام کردن همون گزینه رو انتخاب کردم برای کریستال خارجی و میکرومو برنامه ریزی کردم .

              با کریستال 7.3728 رشته ای که دریافت کردم شمال حروف انگلیسی ژاپنی و تکو توک عدد بود

              نمی دونم پروگرامرم که خراب نمیشه که با دستکاری این فیوزبیتا ؟؟؟ مدلش avr stk500 هستش مال شرکت نوآوران الکترونیک

              بازم مشکل حل نشد

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

              و اینکه ایراد کار کجاست ؟

              دیدگاه


                #8
                پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی

                نوشته اصلی توسط sadegh_rayan2000
                خب برادر بهت بر نخوره داداش , من چشم امیدم تویی مهندس

                من تکه برنامه شما رو اینطوری کامل کردم :
                $regfile = "m8adef.dat"
                $crystal = 11059200
                .
                .
                .
                .
                هنگام پروگرام کردن تو قسمت look fusebit تو گزینه fusebit KLA897 رو گذاشتم رو آخرین گزینه یعنی :111111ext.crystal/resonator High Frequenc و دکمه write PRG رو زدم و یه خط اضافه کردش تو برنامه . مجدد در هنگام پروگرام کردن همون گزینه رو انتخاب کردم برای کریستال خارجی و میکرومو برنامه ریزی کردم .

                با کریستال 7.3728 رشته ای که دریافت کردم شمال حروف انگلیسی ژاپنی و تکو توک عدد بود

                نمی دونم پروگرامرم که خراب نمیشه که با دستکاری این فیوزبیتا ؟؟؟ مدلش avr stk500 هستش مال شرکت نوآوران الکترونیک

                بازم مشکل حل نشد

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

                و اینکه ایراد کار کجاست ؟
                نمی دونم منظورتون کی بوده!! نقل قول میزدی که خوب باشه.
                ولی خوب اگه منظور من بودم. امیدت به خدا باشه :smile: :smile:
                تکمیل شدن برنامه که درست بود. البته من خیلی سواد ندارم ولی در حد اکابر که بلدم خوندم مشکلی نداشت :smile:
                در زمان تنظیم فیوز بیت ها پروگرمر آسیب نمی بینه. ضمنا پروگرمر بدی خریدی! من داشتم 10 بار بیشتر کار نکرد داغون شد. برو هاتل بخر Hattel. کریستالی هم که اشاره کردی بهش فکر کنم 7 مگاهرتز هستش حدودا و رنج 7 های فرکانس High Frequency حساب نمی شه (البته مطمئن نیستم باید به دیتاشیت مراجعه شود.)

                من نمی دونم برای 2 هزار تومان ناقابل چرا مهندسین عزیز ATMEGA8 رو رها نمی کنن. بابا این میکرو زیاد قوی نیست برید ATMEGA16 یا ATMEGA32 و ترجیحا پکیج SMD رو تهیه کنید. من از اول اول با ATMEGA16 کار می کردم.

                در مورد دستور inputbin هم در راهنمای بسکام مطالعه کن! (مشابه input هستش)
                یک قطعه کد و راهنما برات قرار می دم که از سایت بسیار مفید avr64 دریافت کردم (نوشته مهندس زکی زاده) خیلی مفید هستش. بخون


                تنظیم سایز پشته سخت افزاری و نرم افزاری و فریم:
                در صورتی که از کامپایلر BASCOM استفاده می کنید بایستی با توجه به فراخوانی های سابروتین و متغیرهایی که در پرانتز توابع و سابروتین ها بکار برده اید و متغیر های محلی تعریف شده در توابع و سابروتین ها که با پیشوند Local به جای Dim تعریف می شوند و نیز تبدیلهای خودکار به رشته (توجه: در بسکام هرگاه جلوی LCD عبارتی به غیر از رشته بنویسید، کامپایلر به طور خودکار عدد را به رشته تبدیل می کند و برای این کار به فضایی به نام frame احتیاج دارد که توسط دستور framesize=xx بر حسب بایت در ابتدای برنامه مشخص می شود) بایستی اندازه hwstack و swstack و framesize را در ابتدای برنامه تنظیم کنید. بدست آوردن مقدار این متغیر ها مشکل بوده و بهتر است اگر SRAM کافی در اختیار دارید بر روی 64 یا 128 تنظیم کنید و اگر SRAM کافی ندارید مثل Attiny13 این مقادیر را روی 8 تنظیم کنید و برنامه را ترجیهاً ساده و بدون سابروتین و call و gosub و return بنویسید و به دلیل کم بودن framesize از lcd استفاده نکنید. همچنین توصیه می شود برنامه های مهم را با C بنویسید. البته نه کامپایلرهای قفل شکسته بلکه کامپایلرهای رایگانی مثل gcc و نسخه تحت ویندوز آن یعنی WinAVR و یا کامپایلر رایگان AVR Studio.

                [code=vb]
                $regfile = "attiny2313.dat"
                $crystal = 4000000
                $hwstack = 40
                $swstack = 16
                $framesize = 32[/code]

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

                (بخشی از متن برگرفته از آموزش های سایت avr64 می باشد. با تشکر از بهنام زکی زاده)

                نکته ای که خیلی هم مهمه و یادم رفت این هستش که حتما خطوط دیتا رو با 4.7K پول پ کن.
                STM32 واقعا یه چیز دیگه است...

                دیدگاه


                  #9
                  پاسخ : پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی

                  مرسی داداش

                  من دست بوس کسی هستم که بتونه مشکل منو حل کنه و بهترین راهنما و استاد برام باشه

                  شما خودت یه پا استادی داداش

                  نکات خوبی اشاره کردی

                  من مشکلی ندارم می رم رو مگا16 و مگا32 خیالت راحت برای اوکی گرفتن از ماژول رفتم رو مگا8

                  حالا چرا smd برای مگا16 و 32 ؟

                  نکاتتو لحاظ می کنم تو برنامه ببینم چی میشه ان شالله جواب بده

                  برنامه رو مجدد برات میذارم که نظر بدی ؛ به نظر من خوب پروگرامری گرفتم چون حسابی بهم حال داره می ده جیگر

                  مرسی از راهنماییت و سعی می کنم کریستال رو رو mediom تنظیم کنم اینبار ببینم چی میشه

                  دیدگاه


                    #10
                    پاسخ : پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی

                    داداش جواب نداد

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

                    برنامه تغییر بافته اینه :
                    کد:
                    $regfile = "m8adef.dat"
                    $crystal = 7372800
                    $baud = 9600
                    $hwstack = 40
                    $swstack = 16
                    $framesize = 32
                    Config Portb = Output
                    Config Lcd = 16 * 2
                    Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.0 , Rs = Portb.1
                    Enable Interrupts
                    Enable Urxc
                    On Urxc Read_data
                    Dim Sa As String * 16
                    Cls
                    Do
                    Lcd Sa
                    Loop
                    End
                    Read_data:
                    Input Sa
                    Return
                    نمی دونم دیگه چیکار باید بکنم؟؟؟؟؟ اساتید به دادم برسید 3 تا میکرو تا اینجا به عظما دادم

                    دیدگاه


                      #11
                      پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

                      سلام مجدد.

                      - نظر لطف شماست. ممنونم :redface:
                      - پکیج SMD میکروکنترلرها با کیفیت تر و در مقابل نویز و ... بهتر عمل می کنه. میکرو مگا 16 , 32 بهتر از 8 هستند. یه کم باهاشون کار کنی دستت میاد
                      - برای کریستال خارجی از خازن پایدار کننده استفاده می کنی؟ حدود 22 پیکوفاراد از نوع عدسی (یا مولتی لیر)
                      - اصلا بیا کریستال رو بی خیال شود و از اسیلاتور داخلی در فرکانس 8 مگاهرتز استفاده کن. ببین نتیجه چی میشه.
                      - در برنامه ای که نوشتی دستور input در آخرین خطوط در زیربرنامه Read_data باید به صورت input, Sa نوشته بشه. حرف "," جا افتاده. چطور کامپایلش کردی؟
                      STM32 واقعا یه چیز دیگه است...

                      دیدگاه


                        #12
                        پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

                        سلام

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

                        با خازن 22پیکو هم امتحان کردم و کریستال 8 مگ داخلی

                        اون ","خودم حذفش کردم اما با وجود بودنش بازم نتونستمک صحیح بخونم

                        می تونم مهندس باهات در تماس باشم ؟ فکر کنم صحبت کنیم راجبش زودتر به نتیجه برسیم . اگه یاهو داشته باشی که عالیه

                        من میخوام یبار دیگه رو مگا 32 کترکرده ای که دارم تست کنم ببینم چی میشه

                        دیدگاه


                          #13
                          پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

                          در جواب دیگه دوست و مهندس عزیزمون ...

                          آقا جون هر کی که دوست دارین کسایی که ماژول u-blox neo-6m و یا خود ماژول با برد راه انداز GY-GPS6MV2 را دارن بیاین اینجا و تو حل این مشکل کمکم کنید

                          دیدگاه


                            #14
                            پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

                            خدارو شکر

                            با همون داخلی جواب داد

                            میکرومو کردم 32

                            فیوزبیتامم تو بسکام کردم rc osilator 8.mhz

                            جواب داد و دارم رشته کاملو میگیرم

                            دمت گرم مهندس

                            نمونه برنامه رو گمی ذارم تا دوستان دیگه هم استفاده ببرن
                            کد:
                            $regfile = "m32def.dat"
                            $crystal = 8000000
                            $baud = 9600
                            $hwstack = 40
                            $swstack = 16
                            $framesize = 128
                            $prog &HFF , &HF4 , &HDF , &H00               ' generated. Take care that the chip supports all fuse bytes.
                            Config Porta = Output
                            Config Lcd = 16 * 2
                            Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.4 , Rs = Porta.5
                            Enable Interrupts
                            Enable Urxc
                            On Urxc Read_data
                            Dim Sa As String * 60
                            Cls
                            Do
                            Lcd Sa
                            Loop
                            End
                            Read_data:
                            Input , Sa
                            Return

                            دیدگاه


                              #15
                              پاسخ : ناخوانا بودن اطلاعات دریافتی از جی پی اس

                              حالا با خیال راحت می تونم برم سراغ ادامه پروژم تا بتونم همینو تو کامپیوتر هم بگیرم

                              دیدگاه

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