اطلاعیه

Collapse
No announcement yet.

سوال در مورد دقت تایمر0 در ساعت

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

    سوال در مورد دقت تایمر0 در ساعت

    سلام خدمت دوستان.
    من با حالت compare match تایمر0 یه ساعت معمولی درست کردم. هدف این بود که ببینم حالت normal بهتره یا compare match. اما دقتش زیاد جالب نیست. محاسبات رو هم چک کردم ظاهرا درسته. ممنون میشم یه نگاه به کد بندازین نظرتون رو بدید.
    کد:
    #include <mega32.h>
    #include <delay.h>
    #include <stdlib.h>
    
    long int s,b,secd,sec,m; 
    unsigned char chartbl[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    
    void main (void)
      { 
      s=0;
      b=0;
      DDRD = 0xff;
      DDRC = 0xff;
      DDRA.0 = 1;
      TCCR0 = 0x01;
      TCNT0 = 0x00;
      OCR0 = 0xC8;
      TIMSK = 0x02;
      #asm("sei")
      while (1){
      if (s>59){
        m++;
        sec = m/10;
        secd = m%10;    
        PORTD = chartbl [secd]; 
        PORTB = chartbl [sec];
        s=0;
      }
    
      }} 
      
      
    
    interrupt [TIM0_COMP] void timer0_comp_isr (void)
    {
    
      b++;
      if (b==40000)
      {   
        s++;
        b=0;  
        PORTA.0 =~ PORTA.0 ; 
    }}
    برای مالتی پلکس کردن چند تا سون سگمنت چه مداری پیشنهاد میکنید؟ با چه ترانزیستوری ؟ برای مالتی پلس کردن کد bcd به هگز چه آی سی پیشنهاد میکنید ؟؟
    بسیار ممنون

    #2
    پاسخ : سوال در مورد دقت تایمر0 در ساعت

    دوستان کسی پیشنهادی نداره ؟

    دیدگاه


      #3
      پاسخ : سوال در مورد دقت تایمر0 در ساعت

      ببینید دوست عزیز شما در روتین وقفه اومدید برای طولانی شدن زمان کامپر و رسیدنش به یک ثانیه یه کاری کردید که یک ثانیه برابر بشه با 4000 تا کامپر مچ. از نظر تئوری درست به نظر میاد اما یک چیز هست که شما در نظر نگرفتی و اون اینه که با این کار تاثیر تاخیر کدهای شرط و حلقه ی شما 4000 برابر میشه و این باعث به هم ریختن دقت شما می شه . بهترین کاری که می شه انجام داد استفاده از تایمر دو و کریستال ساعت هست و از اون بهتر استفاده از آیسی های RTC مثل DS1307 هست. اطلا به این روشی که الان کار کردین ساعت نسازید.

      دیدگاه


        #4
        پاسخ : سوال در مورد دقت تایمر0 در ساعت

        حرف جناب خرم بخت کاملا درسته.
        سعی کنید که از تایمر دو لااقل استفاده کنید.

        دیدگاه


          #5
          پاسخ : سوال در مورد دقت تایمر0 در ساعت

          می خوام سون سگمنت کاتد مشترک رو مالتی پلکس کنم . با آی سی uln2803 و ترانزیستور bc 547 . راهنمایی میکنید دقیقا چطور میتونم این کارو انجام بدم. مدارات زیادی تو اینترنت پیدا کردم اما هر کدوم یه شکل هست.
          بسیار ممنون

          دیدگاه


            #6
            پاسخ : سوال در مورد دقت تایمر0 در ساعت

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

            دیدگاه


              #7
              پاسخ : سوال در مورد دقت تایمر0 در ساعت

              نوشته اصلی توسط navid.h
              دوستان پیشنهادی دارید برای مالتی پلکس
              از چندتا سون سگمنت میخواهید استفاده کنید؟
              الان چندتا و چه نوع سون سگمنت دارید؟

              مثلا الان جلو چشمم یک سون سگمنت دوتایی مالتی پلکس شده کاتد مشترک + 2 تا سون سگمنت تکی کاتد مشترک است ، شما چی الان موجود دارید؟
              راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
              کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
              نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
              http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
              انشالله به زودي تاپيک ها به روز رساني خواهد شد،

              دیدگاه


                #8
                پاسخ : سوال در مورد دقت تایمر0 در ساعت

                با درود . . .
                نحوه درایو بستگی به نوع سون سگمنت شما داره
                اگر از نوع معمولی کوچیک استفاده میکنید با یه بافر معمولی مثل 245 و یا 573 هم میشه راه اندازیش کرد
                اما اگر از نوع بزرگتری استفاده میکنید قضیه فرق داره
                در مدل های کوچیک گاها" جریان راه اندازی زیر 10 میلی هست که به هیچ وجه نیازی به 2803 و یا موارد مشابه نیست

                در مورد برنامه نویسی هم همونطور که دوستان اشاره کردند بهتره از مد داخلی RTC (وابسته به تایمر2) استفاده کنید و یا در صورت داشتن حوصله برید سراغ DS1307
                موفق باشید
                درد من تنهایی نیست؛ بلكه مرگ ملتی است كه گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حكمت خداوند می‏ نامند! "گاندی"

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

                دیدگاه


                  #9
                  پاسخ : سوال در مورد دقت تایمر0 در ساعت

                  4 تا سون سگمنت کاتد مسترک دو تا آند مشترک - uln 2803 - ترانزیستور bc 547 - مقاومت 4.7 - 220 و یه سری مقاومت های دیگه.

                  دیدگاه


                    #10
                    پاسخ : سوال در مورد دقت تایمر0 در ساعت

                    از نوع کوچک هستش جناب نصیری

                    دیدگاه


                      #11
                      پاسخ : سوال در مورد دقت تایمر0 در ساعت

                      شما پایه های سون سگمنت را میشناسید دیگه؟ بلدید روشنشون کنید که؟ کلا قضیه سون سگمنت رو میدونید دیگه؟

                      اگر آره:
                      4 تا سون سگمنت دارید. هرکدوم 8 تا آند (با احتساب دات) + 1 کاتد دارند . اولین کار اینه که نظیر به نظیر همه ی آند ها را بهم وصل کنید. ....
                      اصلا جواب سوال ها را بدید تا مطمئن شم ، بعد توضیح میدم.
                      راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                      کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                      نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                      http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
                      انشالله به زودي تاپيک ها به روز رساني خواهد شد،

                      دیدگاه


                        #12
                        پاسخ : سوال در مورد دقت تایمر0 در ساعت

                        نوشته اصلی توسط RubeuS
                        شما پایه های سون سگمنت را میشناسید دیگه؟ بلدید روشنشون کنید که؟ کلا قضیه سون سگمنت رو میدونید دیگه؟

                        اگر آره:
                        4 تا سون سگمنت دارید. هرکدوم 8 تا آند (با احتساب دات) + 1 کاتد دارند . اولین کار اینه که نظیر به نظیر همه ی آند ها را بهم وصل کنید. ....
                        اصلا جواب سوال ها را بدید تا مطمئن شم ، بعد توضیح میدم.
                        آره قضیشونو میدونم. پایه ها رو متصل کنم به هم. خوب ...

                        دیدگاه


                          #13
                          پاسخ : سوال در مورد دقت تایمر0 در ساعت

                          نوشته اصلی توسط navid.h
                          آره قضیشونو میدونم. پایه ها رو متصل کنم به هم. خوب ...
                          پس الان 12 تا خط دارید که 8 تاش به آندها وصلا و 4 تاش به کاتدهای سون سگمنت ها.

                          8تا را به یک پورت متصل کنید. و 4 تا دیگه هم به پورت دیگه .
                          حالا باید برنامه به این صورت باشه:
                          اول یک زمان بندی برای ریختن اطلاعات روی سون سگمنت ها نیاز است مثلا 1 میلی ثانیه .(با اون 1 ثانیه که میخواید ثانیه شماره کنید ،فرق داره)
                          پس میشه گفت :
                          اول همه سون سگمنت ها را خاموش کنید . کلیه ی خطوط انتخاب 1 شود:
                          هر 1 میلی ثانیه یکبار اینکار راکنید:
                          الف)کلیه سون سگمنت ها خاموش ( همه ی خطوط انتخاب 1)
                          ب)مقداری که میخواید روی سون سگمنتی بریزید رو پورت دیتا قرار بدید
                          ج) خط انتخاب سون سگمنت مربوطه را صفر کنید. تا دیتای مربوطه روش نمایش دهد.


                          برید به وبلاگ زیر و تمرین آخر را دانلود کنید. (ساعت با قابلیت تنظیم)
                          mortazavi91.mihanblog.com
                          راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                          کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                          نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                          http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
                          انشالله به زودي تاپيک ها به روز رساني خواهد شد،

                          دیدگاه


                            #14
                            پاسخ : سوال در مورد دقت تایمر0 در ساعت

                            نوشته اصلی توسط RubeuS
                            پس الان 12 تا خط دارید که 8 تاش به آندها وصلا و 4 تاش به کاتدهای سون سگمنت ها.

                            8تا را به یک پورت متصل کنید. و 4 تا دیگه هم به پورت دیگه .
                            حالا باید برنامه به این صورت باشه:
                            اول یک زمان بندی برای ریختن اطلاعات روی سون سگمنت ها نیاز است مثلا 1 میلی ثانیه .(با اون 1 ثانیه که میخواید ثانیه شماره کنید ،فرق داره)
                            پس میشه گفت :
                            اول همه سون سگمنت ها را خاموش کنید . کلیه ی خطوط انتخاب 1 شود:
                            هر 1 میلی ثانیه یکبار اینکار راکنید:
                            الف)کلیه سون سگمنت ها خاموش ( همه ی خطوط انتخاب 1)
                            ب)مقداری که میخواید روی سون سگمنتی بریزید رو پورت دیتا قرار بدید
                            ج) خط انتخاب سون سگمنت مربوطه را صفر کنید. تا دیتای مربوطه روش نمایش دهد.


                            برید به وبلاگ زیر و تمرین آخر را دانلود کنید. (ساعت با قابلیت تنظیم)
                            mortazavi91.mihanblog.com
                            ترانزیستور نیاز نداره تو اون 4 خط ؟. چون دیدم تو یه سری مدارها ترانزیستور هم وجود داره .
                            ممنون از پاسختون

                            دیدگاه


                              #15
                              پاسخ : سوال در مورد دقت تایمر0 در ساعت

                              نوشته اصلی توسط navid.h
                              ترانزیستور نیاز نداره تو اون 4 خط ؟. چون دیدم تو یه سری مدارها ترانزیستور هم وجود داره .
                              ممنون از پاسختون
                              ببینید اون ترانستور ها برای افزایش جریان است.

                              دو حالته که سون سگمنت ها را میشه پر نور کرد :
                              1- زمان روشن بودنش نسبت به خاموش بودنش زیاد باشد.
                              2- اگر تعداد سون سگمنت ها زیاد باشد اون نسبت بالا کم میشود و باید برای پرنور کردن جریان بیشتری تزریق کرد . پس از bc547 یا 2n2222 استفاده میکنند.

                              شما اگر برید تو یک فروشگاه و 2 هزار تومان پول بدید و دقیقا این جمله زیر را بگید ، نه دردسر سیم کشیدن بین آند ها را دارید نه ترانزیستور و ...

                              "سلام ... لطفا یک عدد سون سگمنت 4 تایی مالتی پلکس شده ی کاتد مشترک بدید. ..... ممنون .. بفرمایید این 2 هزار تومن" :mrgreen:
                              راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                              کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                              نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                              http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
                              انشالله به زودي تاپيک ها به روز رساني خواهد شد،

                              دیدگاه

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