اطلاعیه

Collapse
No announcement yet.

روش استفاده از یک کلید برای روشن کردن دو led

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

    روش استفاده از یک کلید برای روشن کردن دو led

    سلام
    می خواستم ببینم چه طوری با دستور input در avr دو لامپ با شرط های زیر روشن کنیم
    1- اگر مدت زمان ولتاژ ورودی input از 0 ثانیه تا 2 ثانیه طول کشید لامپ اول به مدت 1 ثانیه روشن بشه

    2- اگر مدت زمان ولتاژ ورودی input از 2 ثانیه بالا تر شد لامپ دوم به مدت 1 پانیه روشن بشه

    #2
    پاسخ : روش استفاده از یک کلید برای روشن کردن دو led

    سلام
    باس از تایمر استفاده کنی....
    آموزش تایمر کانتر برا Avr هم تو نت هست....سرچ کنی کلی آموزش گیرت میاد.
    موفق باشید.
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    دیدگاه


      #3
      پاسخ : روش استفاده از یک کلید برای روشن کردن دو led

      کد:
      /*****************************************************
      AVR Core Clock frequency: 1.000000 MHz
      *****************************************************/
      #include <mega16a.h>
      #include <delay.h>
      
      unsigned int second;
      bit cnt;
      
      interrupt [TIM0_OVF] void timer0_ovf_isr(void)
      {
      static unsigned char k;
        TCNT0=12;
        if(++k==4){
          k=0;
          second++;
        }
      }
      
      void main(void){
      {
      PORTB=0x00;
      DDRB=0x00;
      
      PORTC=0x00;
      DDRC=0x03;
      
      // Timer/Counter 0 initialization
      // Clock source: System Clock
      // Clock value: 0.977 kHz
      // Mode: Normal top=0xFF
      // OC0 output: Disconnected
      TCCR0=0x05;
      TCNT0=0x00;
      OCR0=0x00;
      
      // Timer(s)/Counter(s) Interrupt(s) initialization
      TIMSK=0x01;
      #asm("sei")
      }
      
      while (1)
       {
        if(PINB.0 && !cnt){
          second=0;
          cnt++;
        }  
        if(!PINB.0 && cnt && second<=2){
          PORTC.0=1;
          delay_ms(1000);
          PORTC.0=0;
          cnt=0;
        } 
        
        if(!PINB.0 && cnt && second>=2){
          PORTC.1=1;
          delay_ms(1000);
          PORTC.1=0;
          cnt=0;
        }
       }
      }
      این هم برنامه ای که خواسته بودید.
      موفق باشید
      www.gam-co.blogsky.com

      دیدگاه


        #4
        پاسخ : روش استفاده از یک کلید برای روشن کردن دو led

        سلام دوست عزیز همین برنامه برای attiny13 میتونی بنویسی .

        دیدگاه

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