اطلاعیه

Collapse
No announcement yet.

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

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

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

    با سلام خدمت جناب طراح
    من میخواهم وقفه مقایسه کننده را در بسکام فعال کنم،اما نمیدانم باید چه دستوری نوشت.در Sample های بسکام هم برای پیکره بندی مقایسه کننده در مد window mode وقفه فعال شده،اما من باید به صورت زیر پیکره بندی کنم وبا این پیکره بندی میخواهم وقفه فعال بشه.لطفا اگر ممکن است بنده را راهنمایی کنید.

    من از نسخه اصلی بسکام ورژن 2.0.7.3 استفاده میکنم
    با سپاس
    Config Aca0 = On , Trigger = Rising , Hysmode = Small , Muxplus = 1 , Muxmin = 5
    بگذار سرنوشت هر راهی که می خواهد برود،ما راهمان جداست...
    بگذار این ابرها تا می توانند ببارند،ما چترمان خداست

    دیدگاه


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

      سلام دوستان
      اون مشکل قبلی حل شد.حالا مشکله دیگه ای هست.اینکه به محض فعال کردن اینتراپت ها وارد برنامه وقفه می شه :eek: :angry:
      البته من از ADC هم استفاده می کنم.نمیدونم مشکلی که با AVR هست(اینکه موقع کار با مقایسه کننده باید ADC رو غیر فعال می کردیم)در Xmega هم هست یا نه.بدبختانه بسکام ریجسترهای Xmega رو نمیشناسه که بتونم قبله کار با مقایسه کننده،ADCرو غیر فعالش کنم.
      کسی هست درباره این مشکل کمکم کنه؟؟؟
      با تشکر
      بگذار سرنوشت هر راهی که می خواهد برود،ما راهمان جداست...
      بگذار این ابرها تا می توانند ببارند،ما چترمان خداست

      دیدگاه


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

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

        دیدگاه


          #79
          دستور وقفه ها در xmega به زبان بیسکام؟

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

          دیدگاه


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

            با سلام
            لطف کنید در مورد دقت خازن ها و مقاومت ها نیز توجه ویژه نمایید چون تا آنجا که من خبر دارم باید از 1% استفاده نمایید.

            دیدگاه


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

              با سلام خدمت جناب طراح
              به علت مشغله زیاد مدتی نتونستم سر بزنم.از مقایسه کننده استفاده نکردم و با قرار دادن ADC در مد Free کارم راه افتاد.شرمنده ام که حواسم نبود و نمونه کد رو برا سوالم نگذاشتم
              فقط ی خواهش داشتم.اگر امکان داره نمونه کدی که برای کار با مقایسه کننده در Xmega جواب داده رو بذارین
              متشکرم

              دوستان هرکسی در مورد ADC در Xmega سوالی داره خوشحال میشم تجربیاتم رو در میون بذارم
              بگذار سرنوشت هر راهی که می خواهد برود،ما راهمان جداست...
              بگذار این ابرها تا می توانند ببارند،ما چترمان خداست

              دیدگاه


                #82
                error.bascom

                سلام
                من یه برنامه ولتمتر تو بسکام نوشتم ولی موقع کامپایل کردن خطای زیر رو میده و کامپایل نمیکنه:
                Unsupported Dat file

                کسی میدونه این خطا واسه چیه و چه جوری میشه برطرف کرد؟
                اگه دوستان برنامه ولتمتر دی سی 0-30ولت هم دارین،بذارین ممنون میشم

                دیدگاه


                  #83
                  xmega - ks108 - lcd n96 - lm35 - usb - adc

                  سلام خدمت دوستان من با xmega 64 تونستم اولین بار با پروگرمر هاتل پروگرم کنم.. اولش مشکل داشت بعد درست شد
                  دیشب تونستم تمام پورت ها رو یک و صفر کنم// عالی بود
                  و دیشب یه ال سی دی ks108 رو تونستم با بدبختی راه بندازم.. کدهای رایج ks108 رو نمیشناخت..
                  امروز یه LM35 باهاش راه انداختم .. و فردا میخوام یه ال سی دی n96 باهاش راه بندازم.. در مجموع بسکام نرم افزار خوبی برای اول کار هست..

                  اقایون بجنمبید.. از همتون جلو زدم///
                  لازم به ذکره برد اموزشی هم ندارم.. خودم یاد گرفتم... :icon_razz:

                  دیدگاه


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

                    نوشته اصلی توسط jigmal66
                    با سلام خدمت جناب طراح
                    به علت مشغله زیاد مدتی نتونستم سر بزنم.از مقایسه کننده استفاده نکردم و با قرار دادن ADC در مد Free کارم راه افتاد.شرمنده ام که حواسم نبود و نمونه کد رو برا سوالم نگذاشتم
                    فقط ی خواهش داشتم.اگر امکان داره نمونه کدی که برای کار با مقایسه کننده در Xmega جواب داده رو بذارین
                    متشکرم

                    دوستان هرکسی در مورد ADC در Xmega سوالی داره خوشحال میشم تجربیاتم رو در میون بذارم
                    باسلام به همه دوستان
                    در کار با ADC در Bascom چند مشکل دارم و از دوستان ممنون می شم من رو راهنمایی کنن:
                    1- زمانی که adc را config می کنیم آیا همه پین های مربوط به ADC غیر قابل استفاده I/O می شن ؟
                    ( من در پروژه خودم فقط از ADCA0 و ADCA1 در XMEGA128A3U استفاده می کنم و این میکرو دارای 16 تا پین ADC می باشد یعنی بقیه پین های میکرو بلا استفاده می شود :cry: یا می توانم LCD و یا هر چیز دیگری هم به آنها متصل کنم؟ )
                    2- آیا مد ADC در جواب سوال اول تاثیر دارد؟
                    3- در مد Free به چه طریق و با چه دستوری می توان شماره کانال ADC را جهت خواندن انتخاب کرد و به مقدار خوانده شده توسط میکرو دسترسی داشت؟ oo:
                    4- در Bascom به چه شکل می توان مستقیما با رجیسترها کار کرد؟ :surprised:

                    پیشاپیش عید به همه دوستان خوش بگذره :nice:
                    فی امان الله
                    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                    شهید دکتر مصطفی چمران
                    اللهم صل علی محمد و ال محمد و عجل فرجهم
                    ; C is not for children

                    دیدگاه


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

                      1, 2- از سایر پین های ADC که به عنوان ورودی آنالوگ یا مرجع استفاده نمی شوند می توانید برای کاربرد های عمومی استفاده کنید.

                      3- پارامتر sweep در دستور Config ADCx تعیین کننده کانال هایی است که در مد Free Run اندازه گیری می شوند.

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

                      دیدگاه


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

                        با سلام
                        مشکل بنده در کار کردن مستقیم با رجیستر ها در bascom بود که جناب طراح پاسخ دادن "می توان اینکار را انجام داد" اما زمانی که نام رجیستر را از دیتاشیت پیدا میکردم و در bascom می نوشتم خطا میداد تا پس از کنجکاوی متوجه شدم که ابتدا باید نام رجیستر مورد نظر را از دیتاشیت پیدا کرد و سپس باید در فایلی که با پسوند " dat " می باشد و در محل نصب نرم افزار قرار دارد نام رجیستری که توسط bascom شناسایی می شود را پیدا نمود.
                        البته این فایل " dat " باید هم نام با میکرو مورد نظر باشد.
                        به عنوان مثال اگر بخواهیم میکرو را به شکل نرم افزاری ریست کنیم می بایست ابتدا رجیستر " ccp " را با مقدار " 216 " مقداردهی کنیم و سپس بیت اول رجیستر " ctrl "را برابر " 1 " کنیم و نام این دو رجیستر را در فایل "dat " مربوط یا آی سی مورد نظر (مثال:atxmega128a3u که با نام xm128A3Udef.dat می باشد ) شناسایی کنیم و در bascom مورد استفاده قرار دهیم.
                        که رجیستر ccp در bascom برابر با نام " cpu_ccp " و ctrl برابر با نام " rst_ctrl " می باشد.
                        کد ریست کردن نرم افزاری با توجه به مثال :
                        کد:
                        CPU_CCP = &HD8
                        Rst_ctrl.0 = 1
                        نکته:معمولا نام رجیستر ها در bascom همانند نام همان رجیستر در دیتاشیت است با این تفاوت که قبل از آن یک تعداد حروف به همراه یک "_"(underline) اضافه شده است.
                        ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                        شهید دکتر مصطفی چمران
                        اللهم صل علی محمد و ال محمد و عجل فرجهم
                        ; C is not for children

                        دیدگاه


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

                          سلام بر همه
                          در کار کردن با کی پد 4*4 به مشکل برخوردم!!!
                          آی سی مورد استفاده : atxmega128a3u
                          کی پد رو به portd متصل کردم با مقاومت 330 اهم
                          اما زمانی که آی سی شروع به کار میکنه بدون فشردن هیچ کلیدی مقدار نشون میده (حتی 19 رو هم دریافت می کنه که در کی پد از 0 تا 16 داریم) حتی زمانی که کی پد رو از روی برد جدا میکنم مشکل همچنان باقی است.
                          آی سی رو عوض کردم ، portf رو هم امتحان کردم اما مشکل برطرف نشد.
                          در ساپرت کردن دستور config kbd توسط bascom برای xmega ها هم ندیدم غیر فعال باشه.(در help دیدن صفحه config جدول config ها)
                          زدن دکمه ها هم یا 7 یا 11 ویا 15 رو نشون میده
                          مقادیر زیر را هم تست کردم اما فرقی نکرد.
                          Debounce = 100
                          Delay = 500
                          نرم افزار نسخه خریداری شده و ورژن 2.0.7.7 می باشد.
                          کد برنامه:
                          کد:
                          $regfile = "xm128a3udef.dat"
                          $crystal = 16000000
                          $hwstack = 256
                          $swstack = 256
                          $framesize = 256
                          '****************************  CONFIG_OSC
                          Config Osc = Enabled , Pllosc = Disabled , Extosc = Enabled , _
                          32khzosc = Enabled , 32mhzosc = Enabled , Range = 12mhz_16mhz , _
                          32khzpowermode = Normal , Startup = Xtal_256clk
                          '~~~~~~
                          Config Sysclock = External , Prescalea = 1 , Prescalebc = 1_1
                          '~~~~~~
                          Stop Watchdog
                          '~~~~~~
                          Config Lcdpin = Pin , Db4 = Porte.2 , Db5 = Porte.3 , Db6 = Porte.4 , _
                          Db7 = Porte.5 , E = Porte.1 , Rs = Porte.0
                          Config Lcdbus = 4
                          Config Lcd = 20 * 4
                          '~~~~~~
                          Config Kbd = Portd , Debounce = 50, Delay = 100
                          '****************************  VARIBLES
                          Dim Key1 As Byte
                          Dim Key2 As Byte
                          '****************************  MAIN
                          Main:
                          Do
                          Cls
                          Key1 = Getkbd()
                          Lcd "key1=" ; Key1
                          Key2 = Lookup(key1 , Read_key)
                          Home L
                          Lcd "key2=" ; Key2
                          Waitms 500
                          Loop
                          '~~~~~~
                          End
                          '****************************  SUBRUTINS
                          Read_key:
                          Data 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16
                          ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                          شهید دکتر مصطفی چمران
                          اللهم صل علی محمد و ال محمد و عجل فرجهم
                          ; C is not for children

                          دیدگاه


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

                            سلام
                            تو کد زیر صرفا میخواستم یه adc ساده بگیرم
                            اما
                            ارور unknown interrupt source[adc
                            میده
                            من نمیخوام رجیستر مربوط به اینتر پت adc رو فعال کنم
                            بنابر این چرا ارز من منبع اینتر پت میخواد؟



                            $regfile = "xm16a4def.dat"
                            Config Osc = Disabled , Pllosc = Disabled , Extosc = Enabled , 32khzosc = Disabled , Range = 12mhz_16mhz , Startup = Xtal_256clk
                            Config Sysclock = External , Prescalea = 1 , Prescalebc = 1_2


                            Config Lcd = 16 * 2
                            Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
                            Config Adca = Single , Convmode = Unsigned , Resolution = 12bit , Dma = Off , Reference = Intvcc , Event_mode = None , Prescaler = 128 , Ch0_gain = 1 , Ch0_inp = Single_ended , Mux0 = 0


                            Config Porta = Output
                            Dim W As Word


                            Enable Adc
                            Start Adc
                            Waitms 500


                            Q:

                            Porta.0 = 1
                            Waitms 500
                            Porta.0 = 0
                            Waitms 500
                            W = Getadc(adca , 0 )


                            Goto Q

                            دیدگاه


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

                              سلام به همه دوستان
                              برای جواب گرفتن از دستور config kbd برای keypad 4*4 خیلی تلاش کردم اما جواب نگرفتم
                              تلاش های انجام شده:
                              1- برنامه ای برای atmega128 نوشتم و هم در proteus و هم در عمل درست جواب داد و همون برنامه رو برای atxmega128a3u تغییر دادم که در عمل جواب نمیداد و همان مشکلات بیان شده در دو پست عقبتر رو داشت .

                              2- همان برنامه که از درست بودنش اطمینان داشتم رو با نسخه bascom 2.0.7.6 و bascom 2.0.7.7 در win xp و win 7 تست کردم (در مجموع 4 بار ویندوز عوض کردم ) تا اطمینان پیدا کنم که مشکل از نسخه کامپایلر و یا ویندوز نباشه ( نسخه bascom خریداری شده می باشد )

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

                              4- برای اطمینان از سالم بودن ic از دوتا استفاده کردم ( از lcd 4*20 استفاده میکنم و درست کار میکنه )
                              پایه های vref به هیچ چیز وصل نیستن
                              دیگه نمیدونم چیکار کنم کسی از دوستان تا به حال تونسته با xmega از دستور config kbd و getkbd() جواب بگیره؟
                              برنامه بنده هم در دوپست عقبتر آورده شده
                              ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                              شهید دکتر مصطفی چمران
                              اللهم صل علی محمد و ال محمد و عجل فرجهم
                              ; C is not for children

                              دیدگاه


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

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

                                دیدگاه

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