اطلاعیه

Collapse
No announcement yet.

پاسخ : چرا lcd قاطی میکند و بررسی خوبترین زبان برنامه نویسی برای avr از صفحه 2

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

    پاسخ : چرا lcd قاطی میکند و بررسی خوبترین زبان برنامه نویسی برای avr از صفحه 2

    سلام .
    ببینید من تو بسکام برنامه درست نوشتم و مشکلی نیست،از adc استفاده کردم ، ولی وقتی میریزم تو میکرو و پرتیوس میبینم همه چی خوبه ولی بعد از گذشت مدتی همه کاراکترها رو ال سی دی قاطی پاتی میشه .یه چیزای بیخود دیگه نشون میده.حالا نمیدونم چرا اینجوری میشه تو بعضی از برنامه های دیگه ای که هم نوشتم همینجوری میشه .آیا کسی میدونه چرا همچین اتفاق هولناکی میاوفته؟دلیلش چیه که ال سی د قاطی میکنه؟هم تو پرتیوس هم رو برد.
    ممنون که پاسخ میدهید. :cry2:
    به سمت نور خورشید حرکت کن،تو میتونی تابش خورشید رو حس کنی ،حتی اگه کور باشی.
    (پیش به سوی هدف)

    #2
    پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

    چون تو پروتئوس هم مشکل داره پس مشکل از برنامتون هست.

    دیدگاه


      #3
      پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

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

      دیدگاه


        #4
        پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

        سلام

        یک نمونه از برنامه هایی که میگی مشکل داره را بذار تا بشه نظر داد اینجوری که نمیشه.
        نه همچی رو اصول هست .اگه برنامه مشکل داشت چند دقیقه اول نباید کار میکرد.
        ولی به احتمال قوی مربوط به برنامه میشه.

        موفق باشید
        امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

        دیدگاه


          #5
          پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

          $regfile = "m16def.dat"
          $crystal = 8000000
          Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
          Config Lcd = 16 * 2
          Dim A As Word , B As Single , C As Single
          Cls
          Cursor Off
          Config Adc = Single , Prescaler = Auto , Reference = Off
          Config Clock = Soft , Gosub = Sectic
          Time$ = "00:00:00"
          Enable Interrupts
          Enable Adc
          Start Adc
          Do
          Idle
          A = Getadc(0)

          Locate 1 , 1
          Lcd " " ; A ; " "
          Waitms 200
          Loop
          Sectic:
          Locate 2 , 1
          Lcd Time$
          Return
          اینم برنامش.یه نگاه بندازین.
          یه مقدار بگزره قاطی پاتی میشه میره.
          انگار آدم فضایی داره حرف میزنه :nerd: oo:.
          به سمت نور خورشید حرکت کن،تو میتونی تابش خورشید رو حس کنی ،حتی اگه کور باشی.
          (پیش به سوی هدف)

          دیدگاه


            #6
            پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

            IDLE رو حذف کن و قبل از فرمان LOCATE ها هم فرمان HOME بذار حتما حل میشه من تست کردم درست بود.
            مشکل برنامه شما این بود که زمانی میکرو در حالت خوابه از طرف تایمر فراخوانی میشه
            مهم نیست چه مدرکى دارید
            مهم این است که چه درکى دارید . . .

            دیدگاه


              #7
              پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

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

              دیدگاه


                #8
                پاسخ : چرا lcd بعضی اوقات قاطی میکند؟


                کد:
                regfile = "m16def.dat"
                $crystal = 8000000
                Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
                Config Lcd = 16 * 2
                Dim A As Word , B As Single , C As Single
                Cls
                Cursor Off
                Config Adc = Single , Prescaler = Auto , Reference = Off
                Config Clock = Soft , Gosub = Sectic
                Time$ = "00:00:00"
                Enable Interrupts
                Enable Adc
                Start Adc
                Do
                 Idle
                 A = Getadc(0)
                
                Locate 1 , 1
                Lcd "  " ; A ; "      "
                Locate 2 , 1
                Lcd Time$
                Waitms 200
                Loop
                Sectic:
                
                Return
                [br /][hr]http://pcenter.ir[hr][br /]

                دیدگاه


                  #9
                  پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

                  با سلام
                  کد:
                  $regfile = "m16def.dat" : $crystal = 1000000
                  
                  Config Lcd = 16 * 2
                  Config Lcdpin = Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portc.5 , Rs = Portc.0
                  
                  Dim A As Word
                  Dim B As Byte
                  
                  Cls : Cursor Off
                  
                  Config Adc = Single , Prescaler = Auto
                  
                  Config Clock = Soft
                  
                  Time$ = "00:00:00"
                  
                  Enable Interrupts : Enable Adc
                  
                  Start Adc
                  
                  Do
                  
                  A = Getadc(0)
                  
                  Locate 1 , 1 : Lcd "  " ; A ; "  "
                  For B = 0 To 50
                  Locate 2 , 1 : Lcd Time$ ; " "
                  Next
                  Loop
                  
                  End
                  مشکل قاطی کردن نوشته های lcd مربوط به زیر برنامه sectic بوده که با حذف زیر برنامه و قرار دادن نمایش زمان ساعت در داخل حلقه اصلی این ایراد رفع گردید
                  از حلقه for next برای نمایش کمتر تغییرات میزان adc خوانده شده استفاده شده است .
                  نوشته اصلی توسط میثم عزیزی
                  IDLE رو حذف کن و قبل از فرمان LOCATE ها هم فرمان HOME بذار حتما حل میشه من تست کردم درست بود.
                  [glow=red,2,300]مشکل برنامه شما این بود که زمانی میکرو در حالت خوابه از طرف تایمر فراخوانی میشه[/glow]
                  این که گفتی یعنی چی ؟
                  ( یعنی میکرو وقتی از خواب بلند میشه گیج میزنه و نمیتونه دستورات صحیحی بده ؟ )
                  صرفا جهت اطلاع :
                  دستور home برای نمایش در اولین سطر و اولین خانه lcd مورد استفاده قرار میگیرد
                  دستور locate برای نمایش در هر سطر و هر خانه ( به صورت دلخواه ) مورد استفاده قرار میگیرد
                  خواستن توانستن است !

                  دیدگاه


                    #10
                    پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

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

                    $hwstack = 40
                    $swstack = 20
                    $framesize = 40

                    البته این مقادیر رو باید تجربی به دست بیارید چون من تا جایی که میدونم کسی نمیدونه دقیقا هر کدوم چه کاری میکنه!!!! :eek:
                    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                    116 کتابخانه مورد نیاز برای Altium Designer

                    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                    دیدگاه


                      #11
                      پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

                      نوشته اصلی توسط masoud_m_bf
                      البته این مقادیر رو باید تجربی به دست بیارید چون من تا جایی که میدونم کسی نمیدونه دقیقا هر کدوم چه کاری میکنه!!!! :eek:
                      همونطوری که میدونید این دستورات پیکره بندی فضای پشته هستند به طور مثال متغییر های محلی و آرگومانهای توابع در این قسمت ذخیره میشن
                      هلپ بسکام هم توضیحات کاملی در مورد اونها داده شما میتونید مقادیر اونها رو در حالت پیش فرض قرار بدید
                      [br /][hr]http://pcenter.ir[hr][br /]

                      دیدگاه


                        #12
                        پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

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

                        دیدگاه


                          #13
                          پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

                          نوشته اصلی توسط hosseinam1370
                          ممنون از شما.
                          حالا من چجوری باید بفهمم برنامه هایی که مینویسم با این رجیستر ها کار داره و خراب میشه نوشته ها رو ال سی دی؟
                          یعنی چه چیزهایی رو باید رعایت کنم تا این اتفاق دیگه واسم نیوفته تو دیگر برنامه ها.
                          اول برنامه هاتون این سه خط رو اضافه کنید
                          آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                          116 کتابخانه مورد نیاز برای Altium Designer

                          از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                          دیدگاه


                            #14
                            پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

                            نوشته اصلی توسط hosseinam1370
                            ممنون از شما.
                            حالا من چجوری باید بفهمم برنامه هایی که مینویسم با این رجیستر ها کار داره و خراب میشه نوشته ها رو ال سی دی؟
                            یعنی چه چیزهایی رو باید رعایت کنم تا این اتفاق دیگه واسم نیوفته تو دیگر برنامه ها.
                            مثال زدم که در چه وقتهایی از این حاقظه استفاده میکنید اما شما میتونید در برنامه های عادی مقادیر پیش فرض رو برای اون قرار بدید
                            [br /][hr]http://pcenter.ir[hr][br /]

                            دیدگاه


                              #15
                              پاسخ : چرا lcd بعضی اوقات قاطی میکند؟

                              سلام
                              کلا بسکام قاطیه
                              ولی سعی کن یه ورژن خوب داشته باشی مثل 1.11.9.5
                              اون که زیر برنامه رو مشکل داره من زیاد دیدم ولی یک تجربه هم داشتم که در بعضی از ورژن ها توی دستور ال سی دی باید به جای E = Portb.5 , Rs = Portb.6 اینطوری نوشت: Rs = Portb.6 , E = Portb.5
                              یعنی جای ایندو رو عوض کن
                              البته من توی ورژن های قدیمیش بیشتر مورد اخلاقی از بسکام دیدم
                              سعی کن با کدویژن کار کنی هر چند خودم با هر دوش کار می کنم ولی با بسکام بیشتر چون با اخلاقش آشنایی پیدا کردم :rolleyes:
                              مردم شهری که همه در آن می لنگند/ به کسی که راه راست میرود می خندند

                              دیدگاه

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