اطلاعیه

Collapse
No announcement yet.

برنامه نویسی XMEGA با Bascom-AVR

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

    #16
    پاسخ : برنامه نویسی XMEGA با Bascom-AVR

    دوستان بعد از write و read برنامه نوشته شده و مقایسه با هگز اصلی بعد از کامپایل با بسکام خط آخرش با چیزی که از میکرو read میکنم فرق داره ، مشکلی نداره ؟
    کد هگز کامپایل شده :

    :1002F00080910320881F8093032080910420881F11
    :08030000809304208F91089501
    :00000001FF
    کد هگز بعد از read کردن :

    :1002F00080910320881F8093032080910420881F11
    :10030000809304208F910895FFFFFFFFFFFFFFFF01
    :10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED

    هنوز به نتیجه نرسیدم :cry2:

    دیدگاه


      #17
      پاسخ : برنامه نویسی XMEGA با Bascom-AVR

      از ظاهر برنامه به نظر می رسد در صورت سالم بودن میکروکنترلر و اتصال صحیح پایه های آن، نباید مشکلی وجود داشته باشد. نحوه اتصال LED به پورت به چه صورت است؟
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


        #18
        پاسخ : برنامه نویسی XMEGA با Bascom-AVR

        قسمت آند به یکی از پورت های A و قسمت کاتد به GND وصل کردم. میکرو کامل شناسایی میشه ولی هنوز نتونستم خروجی یه پایه رو 1 دیجیتال یا همون 3.3 ولت کنم ! همش روی 0.15 ولت مونده، روی بقیه پورت ها هم تست کردم همینطوره :sad:
        یکی از VCC ها رو به 3.3 ولت وصل کردم ، یکی از GND ها رو به GND و AVCC رو به 3.3 . وقتی توسط پروگرامر عمل READ انجام میدم فایل بدست اومده حجم 56.2 KB (57,613 bytes) داره .

        دیدگاه


          #19
          پاسخ : برنامه نویسی XMEGA با Bascom-AVR

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

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

          دیدگاه


            #20
            پاسخ : برنامه نویسی XMEGA با Bascom-AVR

            با سلام خدمت همه استادان گرامی
            عید همگی مبارک :wow:

            بعد اینکه مشکل راه اندازی xmega رو حل کردم تونستم یه lcd هم باهاش راه بندازم ، حالا برای قسمت بعدی نیاز به پیکربندی تایمر کانتر دارم ، با atmega16 که توی آزمایشگاه میکرو باهاش کار میکردیم دستورات رو اینطوری مینوشتیم :

            Config Timer0 = Timer , Prescale = 1024
            Config Timer1 = Counter , Edge = Rising

            Enable Interrupts

            Enable Timer0
            Enable Timer1

            Enable Ovf0
            Enable Ovf1

            On Ovf0 tim
            On Ovf1 pulse

            که از تایمر 0 برای درست کردن زمان 1 ثانیه ، و از تایمر 1 برای شمردن تعداد پالس اعمال شده به پایه pb0 استفاده میکردیم. با گشتن تو مقالات مختلف تنها چیزی که دستم اومد این نمونه کد برای xmega بود :
            'Timer C0
            Config Tcc0 = Normal , Prescale = 1024
            Tcc0_per = 31250
            On Tcc0_ovf Tc0_isr
            name ISR
            Enable Tcc0_ovf , Lo
            Enable Interrupts

            اگه بخوام یه تایمر 0 بعنوان تایمر و یه تایمر 1 بعنوان کانتر استفاده کنم باید چطور اینا رو کنار هم بچینم ؟ :-??
            برای تایمر صفر که نمونه کد بالا رو میشه استفاده کرد ولی برای کانتر 1 هر چی گشتم نتونستم مثال پیدا کنم :sad:

            ممنون میشم راهنمایی کنید

            دیدگاه


              #21
              پاسخ : برنامه نویسی XMEGA با Bascom-AVR

              دوستان مشکل به طرز خیلی جالبی حل شد !
              بجای بسکام از کد C استفاده کردم و میکرو راه افتاد ، بعدش همون کد بسکام رو دوباره ریختم دیدم جواب میده ! انگار واسه راه اندازی گیر یه کد C بود :eek:

              دیدگاه


                #22
                پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                سلام به همگی.
                سال نو همتون مبارک باشه.
                دوست عزیز فکر کنم داری اشتباه میکنی.
                2 تا حالت داره
                یا اینکه کد بسکام از اولشم درست بوده و مشکل از سخت افزار ، نحوه ی برنامه ریزی یا چیز دیگه ای بوده
                یا اینکه در بار گزاری مجدد کد بسکام شما اشتباه کردید و همون کد سی در حال اجرا است
                و یا اینکه من اشتباه میکنم.
                الهم عجل لولیک الفرج

                فقط 313 نفر...

                دیدگاه


                  #23
                  پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                  سلام
                  آقای طراح. من یه سوال داشتم.در صورت امکان اگه جواب بدین . ممنون میشم
                  من بسکام کار میکنم (تا حالا کارمو راه انداخته)
                  می خواستم ببینم در مورد فایلهای
                  config mmc و config avr dos
                  برای سری xmega اطلاعاتی اگه بدید ممنون میشم
                  خوذم یه تغییراتی دادم اما کامپایلر ارور میده
                  و راستش نتونستم mmc رو راه بندازم/اگه راهنمایی بفرمایید ممنون میشم
                  چون گفتم از مموری استفاده کردین تو پروژه اینو پرسیدم
                  همیشه به یاد خدا باش !

                  دیدگاه


                    #24
                    پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                    دوستان توی استفاده از adc به مشکل خوردم. تنظیمات adc برای xmega رو توی سایت bascom پیدا کردم

                    Config Adca = Single , Convmode = Unsigned , Resolution = 12bit , Dma = Off , Reference = Int1v , Event_mode = None , Prescaler = 32 , Ch0_gain = 1 , Ch0_inp = Single_ended , Mux0 = 0 'you can setup other channels as well

                    W = Getadc(adca , 0)

                    از do loop هم برای getadc استفاده کردم. ولی وقتی ولتاژی به پایه a0 نمیدم مقدار روی lcd ، حدود 150 هست ، وقتی بهش ولتاژ 3.3 میدم 4095 میشه !
                    تنظیمات اولیه هم اینطوریه :
                    $regfile = "xm16a4def.dat"
                    $crystal = 32000000
                    $hwstack = 40
                    $swstack = 16
                    $framesize = 32
                    $lib "xmega.lib"
                    $external _xmegafix_clear
                    $external _xmegafix_rol_r1014
                    Config Osc = Enabled , 32mhzosc = Enabled 'estefade az osilator dakhelie 32MHZ
                    Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 'meghdare 3 divider ra mosavi ba 1 gharar midahim

                    دیدگاه


                      #25
                      پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                      نوشته اصلی توسط پژمان اکبری
                      سلام
                      آقای طراح. من یه سوال داشتم.در صورت امکان اگه جواب بدین . ممنون میشم
                      من بسکام کار میکنم (تا حالا کارمو راه انداخته)
                      می خواستم ببینم در مورد فایلهای
                      config mmc و config avr dos
                      برای سری xmega اطلاعاتی اگه بدید ممنون میشم
                      خوذم یه تغییراتی دادم اما کامپایلر ارور میده
                      و راستش نتونستم mmc رو راه بندازم/اگه راهنمایی بفرمایید ممنون میشم
                      چون گفتم از مموری استفاده کردین تو پروژه اینو پرسیدم
                      سوال شما بسیار کلی است و برای پاسخگویی لازم است بصورت جزئی تر به نکته مورد سوال خود اشاره کنید.

                      نوشته اصلی توسط xoncegame
                      دوستان توی استفاده از adc به مشکل خوردم. تنظیمات adc برای xmega رو توی سایت bascom پیدا کردم

                      Config Adca = Single , Convmode = Unsigned , Resolution = 12bit , Dma = Off , Reference = Int1v , Event_mode = None , Prescaler = 32 , Ch0_gain = 1 , Ch0_inp = Single_ended , Mux0 = 0 'you can setup other channels as well

                      W = Getadc(adca , 0)

                      از do loop هم برای getadc استفاده کردم. ولی وقتی ولتاژی به پایه a0 نمیدم مقدار روی lcd ، حدود 150 هست ، وقتی بهش ولتاژ 3.3 میدم 4095 میشه !
                      تنظیمات اولیه هم اینطوریه :
                      $regfile = "xm16a4def.dat"
                      $crystal = 32000000
                      $hwstack = 40
                      $swstack = 16
                      $framesize = 32
                      $lib "xmega.lib"
                      $external _xmegafix_clear
                      $external _xmegafix_rol_r1014
                      Config Osc = Enabled , 32mhzosc = Enabled 'estefade az osilator dakhelie 32MHZ
                      Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 'meghdare 3 divider ra mosavi ba 1 gharar midahim
                      در مد Unsigned single ended حتی اگر ورودی صفر باشد، در خروجی مقدار غیر صفری (حدود 200) قرائت می شود. برای پی بردن به دلیل این امر باید بخش ADC را در XMEGA مطالعه کنید. در مورد بخش دیگر سوال، زمانی که ولتاژ مرجع روی یک ولت داخلی انتخاب شد باشد، حداکثر ورودی اعمال شده باید کوچکتر یا مساوی با این مقدار باشد و طبیعی است که با قرار دادن ورودی بزرگتر از یک ولت، خروجی 4095 حاصل شود.
                      اوژن: به معنای افکننده و شکست دهنده است
                      دانایی، توانایی است-Knowledge is POWER
                      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                      دیدگاه


                        #26
                        پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                        خیلی ممنون مشکل حل شد

                        برای ساخت فرکانس متر ، تونستم تایمر 0 رو راه بندازم ، ولی حالا باید تایمر 1 رو بعنوان شمارشگر پالس ورودی تنظیم کنم .
                        این تنظیمات برای انجام اینکار درسته ؟
                        CONFIG TCc1 = normal , PRESCALE=1024, COMPAREA=ENABLED, EVENT_SOURCE= TOP, EVENT_ACTION=FREQ, RESOLUTION=16

                        پایه PC4 که همون پایه مربوط به تایمر 1 هست رو بعنوان ورودی در نظر میگیرم و بهش موج مربعی اعمال میکنم که توسط دیود زنر حداکثر ولتاژش 3.3 تثبیت بشه که به میکرو آسیب نزنه. ولی نمیتونه تعداد پالس رو بشماره. برای تولید پالس از خود میکرو استفاده کردم توسط دستور زیر :
                        Config Pind.0 = Output

                        Config Tcd0 = Normal , Prescale = 1024
                        Tcd0_per = 31250
                        On Tcd0_ovf Td0_isr
                        Enable Tcd0_ovf , Lo
                        Enable Interrupts
                        Stop Tcd0
                        Start Tcd


                        'timer0 portd
                        Td0_isr:
                        Stop Tcd0
                        Toggle Portd.0
                        Tcd0_per = 1
                        Start Tcd0
                        Return

                        برای شمارش پالس توی 1 ثانیه از این رابطه استفاده میکردیم
                        a=b*65536
                        a=a+counter1
                        که b تعداد وقفه های کانتر 1 هست و counter1 هم که تعداد اون پالس هایی هست که به وقفه نرسیدن و باید با با a جمع بشن.
                        اما توی xmega نمیشه مثلا tcc1 رو با a جمع کرد و ارور میده !

                        دیدگاه


                          #27
                          پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                          سلام آقای طراح
                          سوال دقیقم اینه که فایل mmc config و avr dos onfig برای سری ایکسمگا فرق داره؟
                          و آیا این فیلها رو دارید؟
                          همیشه به یاد خدا باش !

                          دیدگاه


                            #28
                            پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                            من نسخه های جدید بسکام را بررسی نکرده ام، اما برای نسخه های قدیمی تر می توانید به پست شماره 12 در تاپیک زیر مراجعه کنید:

                            http://www.eca.ir/forum2/index.php?t...8194#msg298194
                            اوژن: به معنای افکننده و شکست دهنده است
                            دانایی، توانایی است-Knowledge is POWER
                            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                            دیدگاه


                              #29
                              پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                              ممنون آقای طراح
                              این کتابخونه mmc بود . تو ورژن جدید برای ایکسمگا هم داره خود بسکام
                              من فایل config رو می خواستم.اما خودم تقریبا فهمیدم چیکار کنم
                              اما هنوز تست نکردم.مد spi بایستی 2 باشد و من اینجا اشتباه کرده بودم.
                              ممنون از توجهتون.
                              همیشه به یاد خدا باش !

                              دیدگاه


                                #30
                                پاسخ : برنامه نویسی XMEGA با Bascom-AVR

                                با سلام.
                                هنوز نتونستم تایمر1 توی مد شمارنده پالس رو فعال کنم. تنظیماتش توی این لینک هست: http://avrhelp.mcselec.com/index.html?config_tcxx.htm
                                نیاز به حالتی دارم که با اعمال پالس به پایه تایمر1 ، بشه تعداد پالس ها رو شمارش کرد ، تایمر0 برای شمارش تعداد پالس توی 1 ثانیه رو تنظیم کردم قبلا.
                                این همون پروژه فرکانس متره که میخوام با xmega پیادش کنم.
                                روی پورت c میکرو xmega16a4 ، چهارتا تایمر0 و 2 تا تایمر1 هست. بعد از تنظیم تایمر1 برای شمارش تعداد پالس چطوری باید یکی از پایه های pc4 یا pc5 که مربوط به تایمر1 هستن رو به این عمل اختصاص بدیم ؟ اگه بعنوان ورودی در نظر بگیریمشون کافیه؟
                                توی پست قبل هم یه سوال در مورد چگونگی جمع کردن پالس هایی که به وقفه نرفتن پرسیدم ممنون میشم راهنمایی کنید @};- <>

                                دیدگاه

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