اطلاعیه

Collapse
No announcement yet.

یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

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

    یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

    سلام دوستان
    از اخرین برنامه نویسیم دوسال میگذره
    سه روزه میخوام باتایمر یک کار کنم نمیشه
    می خوام یه طوری از تایمر یک استفاده کنم که هر شمارشش یک میکرو ثانیه طول بکشه و تا ده هزار بشماره بعد صفر شه
    یعنی ده میلی ثانیه
    میشه؟

    #2
    پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

    نوشته اصلی توسط bahram1
    می خوام یه طوری از تایمر یک استفاده کنم که هر شمارشش یک میکرو ثانیه طول بکشه و تا ده هزار بشماره بعد صفر شه
    یعنی ده میلی ثانیه
    میشه؟
    کلاک اصلی رو بزارید 8 مگ pre scaler رو 8 قرار بدید می شه 1 مگ که یک میکرو طول می کشه
    2^8<10000<2^16
    پس از تایمر 1 نمی تونی استفاده کنی اما از تایمر 2 که 16 بیتی هستش می شه
    با کد ویژن براحتی می تونی تنظیم کنی اگه با ریجستر ها سخت تون هست
    التماس دعا

    دیدگاه


      #3
      پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

      مرسی مهندس
      یعنی تایمر دو شونزده بیتیه؟ !!!
      با mega 32 می خوام کار کنم

      دیدگاه


        #4
        پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

        نوشته اصلی توسط bahram1
        مرسی مهندس
        یعنی تایمر دو شونزده بیتیه؟ !!!
        با mega 32 می خوام کار کنم
        بله تایمر دو 16 بیتی هستش و یک 8 بیتی 16 و 32 همین طور هستند
        التماس دعا

        دیدگاه


          #5
          پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

          نوشته اصلی توسط bahram1
          مرسی مهندس
          یعنی تایمر دو شونزده بیتیه؟ !!!
          با mega 32 می خوام کار کنم
          سلام
          تایمر 0و2 ،8 بیتی هستند و تایمر 1، 16 بیتی برا یادگیری نحوه کارکرد تایمر کانتر این اموزش خیلی خوبه . ساده و روون (کدویژن)
          http://cdn.persiangig.com/download/uuruGk3ks6/Chapter%206.pptx/dl
          تنها دو روز در سال هست که نمیتونی هیچ کاری بکنیآ‌! یکیآ‌ دیروز و یکیآ‌ فردا . . .

          دیدگاه


            #6
            پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

            شرمنده مهندس برای دانلودپرشین گیگ راه خاصی هست که من بلد نیستم؟
            آخه دانلود نمیشه

            دیدگاه


              #7
              پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

              نوشته اصلی توسط masoud salimi
              سلام
              تایمر 0و2 ،8 بیتی هستند و تایمر 1، 16 بیتی برا یادگیری نحوه کارکرد تایمر کانتر این اموزش خیلی خوبه . ساده و روون (کدویژن)
              http://cdn.persiangig.com/download/uuruGk3ks6/Chapter%206.pptx/dl
              درست می فرمایید من حواسم نبود تایمر ها از 0 شروع می شوند اولی می شه 0
              التماس دعا

              دیدگاه


                #8
                پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

                نوشته اصلی توسط bahram1
                شرمنده مهندس برای دانلودپرشین گیگ راه خاصی هست که من بلد نیستم؟
                آخه دانلود نمیشه
                ببخشید اون فایلو خیلی وقت پیش اپ کرده بودم فکر کردم لینکش سالمه از لینک زیر برا دانلود استفاده کنید.

                http://s6.picofile.com/file/8225274100/Chapter_6.pptx.html
                تنها دو روز در سال هست که نمیتونی هیچ کاری بکنیآ‌! یکیآ‌ دیروز و یکیآ‌ فردا . . .

                دیدگاه


                  #9
                  پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

                  ممنون از فایلتون خیلی روشن تر شد برام موضوع
                  من فرکانس میکرو رو هشت میگیرم و تقسیم فرکانسیو هم هشت
                  اینطوری زمان یه شمارشم میشه یه میکرو
                  حالا اگه بخوام تا ده هزار بشماره و صفربش. میتونم از مد CTC استفاده کنم؟
                  یطوری که مقدار مقایسه رو بزارم ده هزار که به این مقدار رسید تایمر از صفر شروع به شمارش کنه
                  درسته؟

                  دیدگاه


                    #10
                    پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

                    سلام
                    به نظر من با تایمر 0 ، 1 میلی ثانیه رو بساز بعد با یه if زمان های بزرگتر درست کن به این صورت که داخل روتین وقفه کامپیر مچ اینطوری عمل کن :
                    (برای ده میلی ثانیه)
                    [code=c]
                    volatile unsigned char x=0;
                    if (++x==10)
                    {
                    x=0;
                    //نوشتن کد مورد نظر
                    }
                    [/code]
                    اگه کلاک 2 مگا هرتز باشه و پرسکالر روی 8 و مقدار ocr0=124 باشه اگه اشتباه نکنم زمان در مد ctc 1 میلی ثانیه خواهد بود .
                    تنها دو روز در سال هست که نمیتونی هیچ کاری بکنیآ‌! یکیآ‌ دیروز و یکیآ‌ فردا . . .

                    دیدگاه


                      #11
                      پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

                      نوشته اصلی توسط bahram1
                      سلام دوستان
                      از اخرین برنامه نویسیم دوسال میگذره
                      سه روزه میخوام باتایمر یک کار کنم نمیشه
                      می خوام یه طوری از تایمر یک استفاده کنم که هر شمارشش یک میکرو ثانیه طول بکشه و تا ده هزار بشماره بعد صفر شه
                      یعنی ده میلی ثانیه
                      میشه؟
                      خیلی سادس
                      کافیه کلاکتو بزاری 8 مگ تقسیم فرکانس تایمر 1 را 8 بزاری حالا کلاک ورودی تایمر می شه 1 مگاهرتز و یا همون یک میکروثانیه یک بار

                      و این رو هم می دونیم که اگر تایمر 1 به 65536 برسه اینتراپت می ده حالا شما نیاز به 10000 میکروثانیه داری پس کافیه 65536-10000 کنی و هر زمان که خواستی مقدار 55536 را درون tcnt1 بریزی تا پس از 10000 میکروثاینه کنترلر اینتراپت بده

                      حالا همین روش را برای هر زمانبندی دیگه ایی می تونی استفاده کنی
                      همانطور كه مايل نيستم بنده كسي باشم، حاضر نيستم آقاي كسي باشم. كساني كه مخالف آزادي ديگرانند، خود لياقت آزادي را ندارند.((آبراهام لينكن))

                      قدرت شگفت انگيز نيروهاي خلاق و استعدادهاي نهفته آدمي هنگامي آشكار مي شود كه نيازي حياتي، تواناييهاي او را به فعاليت وادارد و كشش آرزويي، سراپاي وجودش را به جنب و جوش درآورد.((آبراهام لينكن))

                      [img width=343 height=100]http://www.elecdesigner.com/uploads/PRO-DESIGNER-GROUP.jpg[/img]

                      دیدگاه


                        #12
                        پاسخ : یه برنامه ساده برا راه اندازی تایمر کانتر یک میخوام

                        ممنون از راهنماییتون
                        برنامه تایمر حل شد
                        حالا گیر وقفه افتادم
                        می خوام بعد از سر ریز تایمر برم تو وقفش یه کاری انجام بدم
                        اینطور نوشتم ولی جواب نداد
                        کد:
                        #include <mega16.h>
                        #include <delay.h>
                        
                             
                         
                         void main()
                         { 
                          DDRA=0XFF;
                          DDRC=0XFF;
                          PORTA=0XFF;
                          PORTC.0=0;   //وضعیت ال ای دی ابتدا خاموش است.                               
                          TCCR1A=0x00;//انتخاب مد نرمال تایمر یک // 
                          TCNT1H=0b11011000; //مقدار دهی اولیه به رجیستر بالایی تایمر یک //                
                          TCNT1L=0b11110000; //مقدار دهی اولیه به رجیستر پایینی تایمر یک //  
                          TCCR1B=0b00000010; //ایمر یک با تقسیم فرکانسی // 8 
                          TIMSK=0b10000100;
                          #asm("sei"); 
                          while (1) {
                        
                          } 
                          
                         } 
                         
                        
                         interrupt [TIM1_OVF] void b()
                         {
                        
                         PORTC.0=! (PORTC.0); 
                         }

                        دیدگاه

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