اطلاعیه

Collapse
No announcement yet.

ساخت شمارش معکوس

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

    ساخت شمارش معکوس

    سلام دوستان
    من می خواهم یک رمزی رو بسازم که برای این کار می خوام مثلا 20 ثانیه وقت برای کاربرم بزارم که اگر در این مدت 20 ثانیه انجام داد که هیچ وگرنه حلقه رو بشکند و به ادامه برنامه برود
    این هم برنامه گرفتن رمز :
    [code=c]for(i=0;i<len_pass;i++){
    s=0;
    s=i+1;
    lcd_gotoxy(s,1);
    key=keypad();
    pass_in[i]=key;
    sprintf(buffer,"%d",pass_in[i]);
    lcd_puts(buffer);
    delay_ms(150);
    lcd_gotoxy(s,1);
    lcd_putsf("*"
    }[/code]

    چگونه باید شمارش را در این برنامه بگذارم؟

    #2
    پاسخ : ساخت شمارش معکوس

    دوستان کسی نمیتونه کمک کند

    دیدگاه


      #3
      پاسخ : ساخت شمارش معکوس

      سلام شما باید یک تایمر درست کنید که هر یک ثانیه در اینتراپت یک متغیر را زیاد کند و شما در باید در برنامه ی خودتان یک while درست کنید که شرط آن این است که ان متغیر که ثانیه شمار است زیر 20 باشد .
      [code=c]

      #include <mega32.h>


      int Timer=0;

      interrupt [TIM1_OVF] void timer1_ovf_isr(void)
      {
      TCNT1H=0x85EE >> 8;
      TCNT1L=0x85EE & 0xff;
      Timer++;
      }

      void main(void)
      {

      TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
      TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) | (0<<CS11) | (0<<CS10);
      TCNT1H=0x85;
      TCNT1L=0xEE;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;

      TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (1<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

      while (1)
      {

      Timer=0;
      #asm("sei&quot
      while(Timer<=20)
      {

      }
      #asm("nop&quot

      }
      }

      [/code]
      باد می وزد ...
      میتوانی در مقابلش هم دیوار بسازی ، هم آسیاب بادی
      تصمیم با تو است ...

      دیدگاه

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