اطلاعیه

Collapse
No announcement yet.

ساعت؟

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

    #16
    پاسخ : ساعت؟

    wait اصلا بدرد ساعت نمی خوره، من باهاش یه ساعت ساختم تو هر ساعت حدود چند دقیقه عقب می موند، که تو 10 ساعت 2ساعت و خورده ای عقب موند که دیگه اسمشو نمیشد گذاشت ساعت.
    ولی با تایمر میکرو ساعت ساختم که تو 28ساعت فقط حدود 5 ثانیه عقب موند.
    ;()((void (*)(void))0x0000))

    دیدگاه


      #17
      پاسخ : ساعت؟

      نوشته اصلی توسط SAJAD-G
      wait اصلا بدرد ساعت نمی خوره، من باهاش یه ساعت ساختم تو هر ساعت حدود چند دقیقه عقب می موند، که تو 10 ساعت 2ساعت و خورده ای عقب موند که دیگه اسمشو نمیشد گذاشت ساعت.
      ولی با تایمر میکرو ساعت ساختم که تو 28ساعت فقط حدود 5 ثانیه عقب موند.
      منم همینو میگم
      اگر دوستمو ن همینو با ds 1307 بسازند دیگه خیلی دقیق تر میشه
      مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

      دیدگاه


        #18
        پاسخ : ساعت؟

        دست همه دوستان درد نکنه که به سوالم توجه کردید. اگر پست اول بخونید سوال ساعت نبود سوالم نحوه مدیریت تاخیرات بود. اسم صفحه درست انتخاب نشده!
        همان طور که رضا آقا گفتن رفرش 7seg ها رو با تایمر پیاده کردم ( که حجم کدها نصف شد) ولی یه مشکلی هست. هر 7segباید حداقل 5 میکروثانیه روشن بمونه و چون تعداد زیاده تقریباً 50 میکروثانیه باید تو زیربرنامه 7seg ، دستور wait بذارم. برنامه رو که اجرا می کنم خیلی خیلی کند شده. از زمان 7seg ها کم می کنم ، برنامه سریع میشه و 7segها خاموش روشن و بالعکس . دیروز از صبح تا شب داشتم مقدار کرستال و Prescale رو کم و زیاد میکردم از کت و کول افتادم!
        برنامه رو بفرستم تنظیمش می کنید؟

        دیدگاه


          #19
          پاسخ : ساعت؟

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

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

          1- غیر فعال کردن سون سگمنت قبلی.
          1- انتخاب سون سگمنت جدید.
          2- گذاشتن داده روی باس فیزیکی (مثلا پورت ارسال داده به سون سگمنت).
          3- فعال کردن سون سگمنت فعلی.

          در این روال ما هیچ تاخیری ایجاد نکردیم. اما بین دو تا رفرش سون سگمنت به اندازه زمان پایه تایمر وقت هست. منتهی عوض اینکه من بیام wait استفاده کنم؛ خود منطق تایمر این کارو برام انجام میده. امتحانش کن متوجه میشی. وقت میکروات هم تلف نمیشه. البته راجع به خط اولی هم خیلی سخت نگیر. من خودم خیلی بیش از اینا چیزی سوزوندم که بعدها فهمیدم هیچ ربطی به فسفر هم نداشته!

          توضیح:
          من با تایمر یک میلی ثانیه و همین روش 8 تا سون سگمنت رو روشن کردم و نور خوبی هم داشت. اگر بعد از این قضایا مشکلت باز هم باقی بود توصیه میکنم سون سگمنت ها رو با یه ولتاژ بالاتر مثلا 12 ولتی روشن کنی. مثلا با چند تا ترانزیستور.

          دیدگاه


            #20
            پاسخ : ساعت؟

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

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

            1- غیر فعال کردن سون سگمنت قبلی.
            1- انتخاب سون سگمنت جدید.
            2- گذاشتن داده روی باس فیزیکی (مثلا پورت ارسال داده به سون سگمنت).
            3- فعال کردن سون سگمنت فعلی.

            در این روال ما هیچ تاخیری ایجاد نکردیم. اما بین دو تا رفرش سون سگمنت به اندازه زمان پایه تایمر وقت هست. منتهی عوض اینکه من بیام wait استفاده کنم؛ خود منطق تایمر این کارو برام انجام میده. امتحانش کن متوجه میشی. وقت میکروات هم تلف نمیشه. البته راجع به خط اولی هم خیلی سخت نگیر. من خودم خیلی بیش از اینا چیزی سوزوندم که بعدها فهمیدم هیچ ربطی به فسفر هم نداشته!

            توضیح:
            من با تایمر یک میلی ثانیه و همین روش 8 تا سون سگمنت رو روشن کردم و نور خوبی هم داشت. اگر بعد از این قضایا مشکلت باز هم باقی بود توصیه میکنم سون سگمنت ها رو با یه ولتاژ بالاتر مثلا 12 ولتی روشن کنی. مثلا با چند تا ترانزیستور.
            با سلام
            خدمت جناب استاد آقا رضا.

            این موضوع تاخیر سازی برای زمانبندی کارها در کد برنامه که با delay(mmm ms) , delay(uu us) ...... برای برنامه های مقدماتی استفاده می شود،
            موضوع ملال آوری است که از آموزش های مبتدی و مثالهای مبتدی برای کاربران تازه کار ایجاد می شود و در آموخته آنها باقی می ماند.

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

            به نظر می رسد اگر مطالبتان را در این زمینه ( نحوه کد نویسی زمانبندی برنامه های مبتنی بر تکرار زمانی-بدون استفاده از delay )
            در یک پست مهم در ابتدای تاپیک های ARM - PIC - AVR - 8051 قرار دهید ، برای همه و به خصوص تازه کاران مفید خواهد بود.

            سایر دوستان هم هر جا موارد ذیل را دیدند ، به آن تاپیک لینک می دهند.

            - رفرش/جاروب/اسکن نمایشگر تابلو روان / سون سگمنت / صفحه کلید ماتریسی /
            - خواندن A2D ها در فاصله های زمانی معین
            - نوشتن در D2A یا PWM ها در فاصله های زمانی معین
            - ارسال سریال در فاصله های زمانی معین
            - خواندن آی سی ساعت در فاصله های زمانی معین
            - ارسال پالسهای فرمان استپ موتور در فاصله های زمانی معین
            - ارسال پالسهای سروو موتور در فاصله های زمانی معین
            - و خیلی فرآیندهای اجرایی در فاصله های زمانی معین ..............

            با سپاس
            گشتی در لاله زار
            http://www.eca.ir/forum2/index.php?topic=76138.0

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

            دیدگاه


              #21
              پاسخ : ساعت؟

              عزیز دلم شما این برنامه لری رو برای یک سون سگمنت نوشتی. من 9تا از اینا دارم. فرض کن سه تا عدد سه رقمی تو متغیرهای cach1 و cash2 و cash3 بریزیم. همینطوری که نمیتونیم بریزیم به پورت دیتا. اول باید رقماشو جدا کنیم بعد بفرستیم! زیربرنامه لری خودمو میذارم ببین کی نمیخواد بفهمه
              7seg:
              Dim Yekan As Integer
              Dim Dahgan As Integer
              Dim Sadgan As Integer
              Dim K As Integer
              '''cash1
              Portb = 255
              Portd.6 = 1
              K = Cash1 Mod 100
              Yekan = K Mod 10
              Dahgan = K / 10
              Sadgan = Cash1 / 100
              Porta = Lookup(yekan , Num)
              Portb.0 = 0
              Waitus 10
              Portb = 255
              Portd.6 = 1
              Porta = Lookup(dahgan , Num)
              Portb.1 = 0
              Waitus 10
              Portb = 255
              Portd.6 = 1
              Porta = Lookup(sadgan , Num)
              Portb.2 = 0
              Waitus 10
              '''cash2
              Portb = 255
              Portd.6 = 1
              K = Cash2 Mod 100
              Yekan = K Mod 10
              Dahgan = K / 10
              Sadgan = Cash2 / 100
              Porta = Lookup(yekan , Num)
              Portb.3 = 0
              Waitus 10
              Portb = 255
              Portd.6 = 1
              Porta = Lookup(dahgan , Num)
              Portb.4 = 0
              Waitus 10
              Portb = 255
              Portd.6 = 1
              Porta = Lookup(sadgan , Num)
              Portb.5 = 0
              Waitus 10
              '''cash3
              Portb = 255
              Portd.6 = 1
              K = Cash3 Mod 100
              Yekan = K Mod 10
              Dahgan = K / 10
              Sadgan = Cash3 / 100
              Porta = Lookup(yekan , Num)
              Portb.6 = 0
              Waitus 10
              Portb = 255
              Portd.6 = 1
              Porta = Lookup(dahgan , Num)
              Portb.7 = 0
              Waitus 10
              Portb = 255
              Portd.6 = 1
              Porta = Lookup(sadgan , Num)
              Portd.6 = 0
              Waitus 10
              Portd.6 = 1
              Return

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

              دیدگاه


                #22
                پاسخ : ساعت؟

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

                فرض کن یک کدی مثل این داریم:


                Dim CurDigit As Byte
                Dim Digits(9) As Byte

                Sub SetDigitAt(ByVal Index As Byte, ByVal Value As Byte)
                Digits(Index) = Lookup(Value, SevenSegPatterns)
                End Sub

                Sub WriteNumber(ByVal BaseIndex As Byte, ByVal Value As Byte)
                SetDigitAt(BaseIndex + 2, Int(Value Mod 10)) : REM Sadgan
                Value = Value / 10
                SetDigitAt(BaseIndex + 1, Int(Value Mod 10)) : RAM Dahgan
                Value = Value / 10
                SetDigitAt(BaseIndex + 0, Int(Value)) : REM Yekan
                End Sub

                Sub Update7SegInTimer
                CALL UnSelect_7Segments
                IF CurDigit = 9 Then
                CurDigit = 1
                Else
                CurDigit = CurDigit + 1
                End If
                CALL Select_7Segment(CurDigit)
                PortA = Digits(CurDigit)
                End Sub


                نگاه کن عزیزم! روال SetDigitAt یک عدد رو روی یک سون سگمنت قرار میده. WriteNumber یک عدد رو روی مجموعه ای از 3 سون سگمنت قرار میده. فرض رو بر این گذاشتم که میخوای 3 مقدار 0 تا 999 رو روی 9 تا سون سگمنت نمایش بدی. و روال Update7SegInTimer همون کدی هست که باید توی تایمر قرار بگیره.

                پی نوشت:
                تازه فهمیدم چرا این چند وقته دلم درد میکنه!!

                دیدگاه


                  #23
                  پاسخ : ساعت؟

                  جناب Solsal! (ببخشید من اسم شما رو نمیدونم.)

                  از لطفتون متشکرم. اما این بحثی هست که با خیلی از دوستان دیگه هم داشتم. من تحصیلات دانشگاهی ندارم. گرچه نزدیک به 20 سال هست که دارم روی این زمینه ها کار میکنم ولی جسارتا فرمایش شما رو انجام ندم فکر میکنم بهتر باشه. این مورد بیشتر دست بزرگوارانی مثل جنابعالی یا جناب "طراح" رو میبوسه که سابقه تحصیلات آکادمیک رو دارن. اینجوری براتون بگم. من نهایتا ممکنه بدرد ارائه تجربه بخورم ولاغیر. آموزش مقوله ای هست داتا کلاسیک و تخصصی که من معتقدم نباید بدست افرادی که فقط به تجربیات خودشون و دیگری یا نهایتا اطلاعات ناقص آکادمیک متکی هستن داده بشه.

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

                  پی نوشت:
                  دقیقا به خاطر همین موارد یکی دو بار به جناب بلورچیان و جناب اکرمی هم عرض کردم در صورت امکان من رو به همون کاربر فعال (حد بالاش) تقلیل درجه بدن. حداقل بابت دوستان که با دیدن عنوان پر طمطراق همکار علمی خیال میکنن اینجا خیلی خبره و خیال میکنن که علی آباد هم شهریه.

                  پی نوشت دوم:
                  کمتر مقالات شما رو در سایت دیدم اما وقتی بعضی موارد رو میبینم (مثلا بعضی مقالات آقای کی نژاد) مطمئن میشم جناب بلورچیان دستشون اشتباهی روی تگ "همکار علمی" برای من خورده و حالا روشون نمیشه درستش کنن!!!

                  ارادتمند.
                  آقازاده.

                  دیدگاه


                    #24
                    پاسخ : ساعت؟

                    نوشته اصلی توسط reza_agha
                    جناب Solsal! (ببخشید من اسم شما رو نمیدونم.)

                    از لطفتون متشکرم. اما این بحثی هست که با خیلی از دوستان دیگه هم داشتم. من تحصیلات دانشگاهی ندارم. گرچه نزدیک به 20 سال هست که دارم روی این زمینه ها کار میکنم ولی جسارتا فرمایش شما رو انجام ندم فکر میکنم بهتر باشه. این مورد بیشتر دست بزرگوارانی مثل جنابعالی یا جناب "طراح" رو میبوسه که سابقه تحصیلات آکادمیک رو دارن. اینجوری براتون بگم. من نهایتا ممکنه بدرد ارائه تجربه بخورم ولاغیر. آموزش مقوله ای هست داتا کلاسیک و تخصصی که من معتقدم نباید بدست افرادی که فقط به تجربیات خودشون و دیگری یا نهایتا اطلاعات ناقص آکادمیک متکی هستن داده بشه.

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

                    پی نوشت:
                    دقیقا به خاطر همین موارد یکی دو بار به جناب بلورچیان و جناب اکرمی هم عرض کردم در صورت امکان من رو به همون کاربر فعال (حد بالاش) تقلیل درجه بدن. حداقل بابت دوستان که با دیدن عنوان پر طمطراق همکار علمی خیال میکنن اینجا خیلی خبره و خیال میکنن که علی آباد هم شهریه.

                    پی نوشت دوم:
                    کمتر مقالات شما رو در سایت دیدم اما وقتی بعضی موارد رو میبینم (مثلا بعضی مقالات آقای کی نژاد) مطمئن میشم جناب بلورچیان دستشون اشتباهی روی تگ "همکار علمی" برای من خورده و حالا روشون نمیشه درستش کنن!!!

                    ارادتمند.
                    آقازاده.
                    با سلام

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

                    استاد کی نژاد به دلیل دانش و تجربه فراوان ، قابلیت انتقال دانسته های خود را به سایرین دارند.
                    بنده اینجا چیزی بیشتر از دوستان ندارم و بیشتر مشغول آموختن هستم.

                    بنابراین دست خودتان را می بوسد.

                    با سپاس
                    گشتی در لاله زار
                    http://www.eca.ir/forum2/index.php?topic=76138.0

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

                    دیدگاه


                      #25
                      پاسخ : ساعت؟

                      نوشته اصلی توسط reza_agha
                      جناب Solsal! (ببخشید من اسم شما رو نمیدونم.)

                      از لطفتون متشکرم. اما این بحثی هست که با خیلی از دوستان دیگه هم داشتم. من تحصیلات دانشگاهی ندارم. گرچه نزدیک به 20 سال هست که دارم روی این زمینه ها کار میکنم ولی جسارتا فرمایش شما رو انجام ندم فکر میکنم بهتر باشه. این مورد بیشتر دست بزرگوارانی مثل جنابعالی یا جناب "طراح" رو میبوسه که سابقه تحصیلات آکادمیک رو دارن. اینجوری براتون بگم. من نهایتا ممکنه بدرد ارائه تجربه بخورم ولاغیر. آموزش مقوله ای هست داتا کلاسیک و تخصصی که من معتقدم نباید بدست افرادی که فقط به تجربیات خودشون و دیگری یا نهایتا اطلاعات ناقص آکادمیک متکی هستن داده بشه.

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

                      پی نوشت:
                      دقیقا به خاطر همین موارد یکی دو بار به جناب بلورچیان و جناب اکرمی هم عرض کردم در صورت امکان من رو به همون کاربر فعال (حد بالاش) تقلیل درجه بدن. حداقل بابت دوستان که با دیدن عنوان پر طمطراق همکار علمی خیال میکنن اینجا خیلی خبره و خیال میکنن که علی آباد هم شهریه.

                      پی نوشت دوم:
                      کمتر مقالات شما رو در سایت دیدم اما وقتی بعضی موارد رو میبینم (مثلا بعضی مقالات آقای کی نژاد) مطمئن میشم جناب بلورچیان دستشون اشتباهی روی تگ "همکار علمی" برای من خورده و حالا روشون نمیشه درستش کنن!!!

                      ارادتمند.
                      آقازاده.
                      در این مورد در تاپیک کار و اشتغال پستی را منتشر کردم:

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

                      دیدگاه


                        #26
                        پاسخ : ساعت؟

                        آقایون مثل اینکه موضوع منحرف شد افتاد تو تعارف

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

                        دیدگاه


                          #27
                          پاسخ : ساعت؟

                          سلام
                          اعصاب من کاملا مسلطه
                          دیروز بعد از اینکه پست قبلیو زدم ، رفتم برنامه رفرش 7seg رو آخر کتاب کاهه پیدا کردم.
                          فقط این وسط چند روز وقتم سر حرفهای فلسفی و متلکبار رضا تلف شد.

                          دیدگاه


                            #28
                            پاسخ : ساعت؟

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

                            دیدگاه


                              #29
                              پاسخ : ساعت؟

                              خواهش میآ‌کنم اسپم ارسال نکنید.
                              ممکنه پست های بیهوده بدون اطلاع پاک بشن.

                              دیدگاه


                                #30
                                پاسخ : ساعت؟

                                $regfile = "m32def.dat"
                                $crystal = 8000000

                                Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
                                Config Lcd = 20 * 4

                                Config Date = Mdy , Separator = / ' ANSI-Format



                                Config Clock = Soft 'this is how simple it is


                                Date$ = "11/11/00"




                                Time$ = "0200"



                                '---------------------------------------------------
                                Cursor Off

                                Cls



                                Do

                                Home

                                Lcd Date$

                                Locate 2 , 1 : Lcd Time$

                                Loop




                                End

                                دیدگاه

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