اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام دوستان میخوام با یه ای سی Attiny 13 کاره زیر رو انجام بده
    یکی از پایه ها ورودی در نظر گرفته بشه و به میکرو سوییچ وصل بشه
    وقتی توی بازه ی 2 ثانیه اگه 3 بار میکرو سوییچ فشرده شد یکی از پایه های دیگه رو نیم ثانیه یک بکنه و دوباره صفر بشه
    اگه توی بازه ی مورد نظر سه بار فشردن کلید اتفاق نیفتاد اتفاقی نیفته مثلا ما یبار فشار بدیم بعد دوبار دیگه رو نیم ساعت بعد فشار بدیم عمل نکنه
    از لحظه فشردنه اول دو ثانیه شروع بشه ، اگه سه بار شد ، خروجی نیم ثانیه فعال
    ممنون

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

    نوشته اصلی توسط whiteboy نمایش پست ها
    سلام دوستان میخوام با یه ای سی Attiny 13 کاره زیر رو انجام بده
    یکی از پایه ها ورودی در نظر گرفته بشه و به میکرو سوییچ وصل بشه
    وقتی توی بازه ی 2 ثانیه اگه 3 بار میکرو سوییچ فشرده شد یکی از پایه های دیگه رو نیم ثانیه یک بکنه و دوباره صفر بشه
    اگه توی بازه ی مورد نظر سه بار فشردن کلید اتفاق نیفتاد اتفاقی نیفته مثلا ما یبار فشار بدیم بعد دوبار دیگه رو نیم ساعت بعد فشار بدیم عمل نکنه
    از لحظه فشردنه اول دو ثانیه شروع بشه ، اگه سه بار شد ، خروجی نیم ثانیه فعال
    ممنون
    سلام
    خوب شما احتیاج دارید که تایمر رو طوری تنظیم کنید که اندازه دو ثانیه براتون بشماره. بعد توی این فاصله باید ببینید چه تعداد کلید فشار داده شده و باهاش تصمیم گیری کنید.

    دیدگاه


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

      نوشته اصلی توسط whiteboy نمایش پست ها
      سلام دوستان میخوام با یه ای سی Attiny 13 کاره زیر رو انجام بده
      یکی از پایه ها ورودی در نظر گرفته بشه و به میکرو سوییچ وصل بشه
      وقتی توی بازه ی 2 ثانیه اگه 3 بار میکرو سوییچ فشرده شد یکی از پایه های دیگه رو نیم ثانیه یک بکنه و دوباره صفر بشه
      اگه توی بازه ی مورد نظر سه بار فشردن کلید اتفاق نیفتاد اتفاقی نیفته مثلا ما یبار فشار بدیم بعد دوبار دیگه رو نیم ساعت بعد فشار بدیم عمل نکنه
      از لحظه فشردنه اول دو ثانیه شروع بشه ، اگه سه بار شد ، خروجی نیم ثانیه فعال
      ممنون
      شما یک کانتر برای کلیدت در نظر بگیر ، بعد تایمرت رو هم جوری تنظیم کن که اولین بار که کلید فشرده شد فعال بشه و یکی به کانترت اضافه بشه . مثلا میتونی تایمررو هم روی 1 میلی ثانیه تنظیم کنی و بگی هر وقت 2000 بار شمرد غیر فعال بشه .
      حالا با زدن هر بار کلید (در این 2000 بار شمردن تایمر)یکی به کانتر اضافه کن . در آخر 2000 بار ، اگر کانترت 3 شده بود که پایه رو فعال میکنی و اگر نشده بود کانتر رو صفر میکنی تا از اول ، منتظر فشردن کلید برای اولین بار باشه .
      الهم صل علی محمد و آل محمد و عجل فرجهم
      www.adaksell.com

      دیدگاه


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

        نوشته اصلی توسط mojitaba نمایش پست ها
        شما یک کانتر برای کلیدت در نظر بگیر ، بعد تایمرت رو هم جوری تنظیم کن که اولین بار که کلید فشرده شد فعال بشه و یکی به کانترت اضافه بشه . مثلا میتونی تایمررو هم روی 1 میلی ثانیه تنظیم کنی و بگی هر وقت 2000 بار شمرد غیر فعال بشه .
        حالا با زدن هر بار کلید (در این 2000 بار شمردن تایمر)یکی به کانتر اضافه کن . در آخر 2000 بار ، اگر کانترت 3 شده بود که پایه رو فعال میکنی و اگر نشده بود کانتر رو صفر میکنی تا از اول ، منتظر فشردن کلید برای اولین بار باشه .
        تا جایی که اطلاع داشتم نوشتم ولی جواب نمیده
        [FONT=Yekan]#include <tiny13.h>[/FONT]#include <delay.h>
        int klid=0;
        int tenth=0,Sec=0;
        // Timer 0 output compare A interrupt service routine
        interrupt [TIM0_COMPA] void timer0_compa_isr(void)
        {
        tenth++;
        if(tenth==100){Sec++;tenth=0;


        }
        }


        void main(void)
        {
        #pragma optsize-
        CLKPR=0x80;
        CLKPR=0x00;
        #ifdef _OPTIMIZE_SIZE_
        #pragma optsize+
        #endif


        PORTB=0x01;
        DDRB=0x02;


        TCCR0A=0x02;
        TCCR0B=0x05;
        TCNT0=0x00;
        OCR0A=0x60;
        OCR0B=0x00;


        #asm("sei")


        while (1)
        {
        PORTB.1=0;
        if (PINB.0==0){klid++;
        while(PINB.0==0){}}
        if(klid==3){
        if(Sec<2){
        delay_ms(5000);
        PORTB.1=1;
        Sec=0;
        klid=0; }}


        }
        }




        دلیل: ادغام دو پست برای جلوگیری از اسپم

        نوشته اصلی توسط hossein.m98 نمایش پست ها
        سلام
        خوب شما احتیاج دارید که تایمر رو طوری تنظیم کنید که اندازه دو ثانیه براتون بشماره. بعد توی این فاصله باید ببینید چه تعداد کلید فشار داده شده و باهاش تصمیم گیری کنید.
        مشکل ابنه که با برنامه نویسی اشنا نیستم

        دیدگاه


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

          این اولین مشکلی که داره اینه که شما باید کلید رو جوری بخونید که یک بار خونده بشه . به عبارتی شما تو یک شرط کلید رو خوندی که اون شرط در طول برنامه شاید صدها بار خونده بشه و مقدار کانترش اضافه بشه .
          به نطرم برنامه رو اول به این حالت بنویسید که اگر کلید فشرده بود همونجای برنامه صبر کنه تا کلید از حالت فشردگی در بیاد و بعد کانترش یکی اضافه بشه .
          البته حالتهای مختلفی از برنامه نویسی وجود داره که ساده ترین حالتش همون هست که تو خط بالا توضیح دادم .
          الهم صل علی محمد و آل محمد و عجل فرجهم
          www.adaksell.com

          دیدگاه


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

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

            دیدگاه


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

              ;کسی بلد نیست؟!

              دیدگاه


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

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

                دیدگاه


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

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

                  دیدگاه


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

                    نوشته اصلی توسط whiteboy نمایش پست ها
                    برای یک وسیله میخواهد استفاده شود
                    میشه لطفا بگید چه وسیله ای هست . چون برنامه رو به شکل بالا برای هر دستگاهی نمیشه نوشت .
                    یه چیز دیگه هم که هست اینه که من روزی یک بار بیشتر این سایت رو چک نمیکنم . برای همین دیر پیام میدم .
                    شما تو محیط تلگرام یا واتساپ پیام بدید تا سریع تر پیش بریم
                    الهم صل علی محمد و آل محمد و عجل فرجهم
                    www.adaksell.com

                    دیدگاه


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

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

                      دیدگاه

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