اطلاعیه

Collapse
No announcement yet.

کد برای چند کاره کردن یک شستی در کد ویژن

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

    #16
    پاسخ : کد برای چند کاره کردن یک شستی در کد ویژن

    یلام این جواب داد حالا اگه بخوام pmwکنم باید چه کدی بنویسم

    دیدگاه


      #17
      پاسخ : کد برای چند کاره کردن یک شستی در کد ویژن

      نوشته اصلی توسط بهنام خ نمایش پست ها
      یلام این جواب داد حالا اگه بخوام pmwکنم باید چه کدی بنویسم
      توی اینترنت سرچ کنید همه جا پر آموزش pwm برای avr هستش

      Sent from my LG-H870S using Tapatalk

      دیدگاه


        #18
        پاسخ : کد برای چند کاره کردن یک شستی در کد ویژن

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

        دیدگاه


          #19
          پاسخ : کد برای چند کاره کردن یک شستی در کد ویژن

          نوشته اصلی توسط بهنام خ نمایش پست ها
          اگه میتونی برای هیمن به کدی بنویس
          من نمیدونم منظور شما از pwm چیه دقیقا. بیشتر از اینم فکر نمیکنم کار درستی باشه بخوام کد بنویسم. مطلب سختی نیست به نظرم؛ برید سرچ کنید و خودتون بنویسید.

          دیدگاه


            #20
            Re: کد برای چند کاره کردن یک شستی در کد ویژن

            کاربر گرامی انجمن حتما قبل از ایجاد تاپیک قوانین مربوط به انجمن را مطالعه کرده و بعد از جست و جو، در صورت عدم وجود موضوع مورد نظر نسبت به ایجادآن اقدام بفرمایید
            ضمنا تاپیک کنونی را در قسمت مربوط به پروژه ها و مقاله های تمام شده ایجاد کرده اید که نه با موضوع همخوانی دارد و نه با مدیر بخش هماهنگی شده است
            به علت ازدیاد تاپیک خصوصا در این قسمت مراتب رعایت شود تا دوستان در استفاده از انجمن با مشکلی مواجه نشوند
            با تشکر

            دیدگاه


              #21
              پاسخ : کد برای چند کاره کردن یک شستی در کد ویژن

              نوشته اصلی توسط بهنام خ نمایش پست ها
              این برنامه منه ولی کار نمیکنه کلید
              کد:
              [FONT=Yekan]#include <mega8.h>[/FONT]#include <delay.h>
              #define ADC_VREF_TYPE 0x00
              int k = 0;
               
              interrupt [EXT_INT0] void ext_int0_isr(void)
              {  
                 if(k<2) k++;
                 else k = 0;
              }
              void main(void)
              {
                  GICR = (1<<INT0);
                  MCUCR =(1<<ISC01) | (1<<ISC00);
                   DDRC=0xff;
                   PIND=0x00
                ;// port configuration
                   
                  while(1)
                  
                  {
                       while( k== 0)
                       {
                         PORTC=0b101010;
                              delay_ms(75);
                                PORTC=0b01010101;
                                 delay_ms(75); // blink 1
                       }
                       while(k == 1)
                       {
                          PORTC=0b000000;
                              delay_ms(75);
                                PORTC=0b1000000;
                                 delay_ms(75)
                                 ;// blink 2
                       }
                       while(k == 2)
                       {
                          PORTC=0b11001;
                              delay_ms(75);
                                PORTC=0b001100;
                                 delay_ms(75);// blink 3
                       }
                  }
              [FONT=Yekan]}[/FONT]
              قاعدتاً این برنامه اگر جواب بده انتخاب افکت ها شانسی خواهد بود.
              شما هیچ debounce ی برای فشردن کلید در نظر نگرفتید و هر بار فشردن کلید معلوم نیست عدد متغیر 0 یا 1 یا 2 خواهد بود

              دیدگاه


                #22
                پاسخ : کد برای چند کاره کردن یک شستی در کد ویژن

                بله دقیقا همین مشکل رو دارم باید چی کار کنم رای رفعش

                دیدگاه


                  #23
                  پاسخ : کد برای چند کاره کردن یک شستی در کد ویژن

                  دلیلش نسبت سرعت بسیار بالای میکرو نسبت به سرعت فیزیکی ماست
                  خیلی سریع که ما یک کلید رو بخوایک فشار بدیم 100 نه 50 میلی ثانیه
                  در صورتی که اگر سرعت میکرو 1 مگاهرتز باشه یعنی میکرو میتونه تو اون 50 میلی ثانیه میتونه حدوداً 50 هزاااااار بار اون کلید رو چک کنه
                  فکر کنم حالا متوجه شدین چرا شانسی میشه
                  اما راه حلش
                  یه دستور تاخیر انتهای دستورات اون شرط. همین
                  حدود 200 تا 300 میلی ثانیه کافیه
                  این ساده ترین راه هست و میشه کامل تر و بهتر کرد این کار رو
                  اما این در حالت بدون استفاده از وقفه هست
                  اما اگر بخواید برنامه خودتون رو استفاده کنید باید به محض ورود به وقفه، وقفه رو غیر فعال کنید از رجیسترش و دستورات و تاخیر و در نهایت مجدد وقفه رو فعال کنید.
                  من خودم راه اول رو پیشنهاد میدم و خودمم ازش استفاده می کنم و خوبه و وقفه رو پیشنهاد نمیدم

                  دیدگاه

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