اطلاعیه

Collapse
No announcement yet.

تو بسکام چه طور 3 ثانیه مدام portb.3 رو بخونم

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

    تو بسکام چه طور 3 ثانیه مدام portb.3 رو بخونم

    سلام وقت همگی به خیر
    من یه قطعه کد میخوام که به مدت مثلا 3 ثانیه portb.3 رو بخونه و اگر در تمام مدت این 3 ثانیه این پورت صفر بود یه خروجی رو فعال کنه.
    با میکرو ATMEGA 8 کارم میکنم
    ممنون میشم اگه راهنماییم کنید یا کدش رو بزارید واسم
    با سپاس فراوان

    #2
    پاسخ : تو بسکام چه طور 3 ثانیه مدام portb.3 رو بخونم

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

    کد:
    int i;
    char tmp;
    
    for(i=0;i<300;i++)
    {
    	if(PORTB.3==0)
    	{
    		tmp=1;
    	}
    	else
    	{
    		tmp=0;
    		goto out;
    	}
    delay_ms(10);
    }
    out:
    این یرنامه هر 10 میلی ثانیه پورت رو چک میکنه
    اگه حتی برای یکبار پورت یک بشه برنامه رو متوقف میکنه و تو خروجی صفر میده
    اما اگه 300 بار هم صفر باشه
    خروجی رو یک میده بیرون
    برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

    دیدگاه


      #3
      پاسخ : تو بسکام چه طور 3 ثانیه مدام portb.3 رو بخونم

      تو این برنامه اگه pinb.3 قبل از 3 ثانیه 1 بشه portc.1 برابر 1 میشه

      واگر بعد از گذشت 3 ثانیه همچنان pinb.3 برابر 0 باشه portc.0
      برابر 1 میشه

      (دقت کنید که برنامه اینکارها رو فقط یکبار انجام میده)

      $regfile = "m8def.dat"
      $crystal = 8000000

      Config Timer1 = Timer , Prescale = 1024
      Enable Interrupts
      Enable Timer1
      Timer1 = 42098
      On Timer1 Timer1_isr
      Start Timer1

      Config Portc = Output
      Portc = 0
      Config Portb = Input
      Portb = 255

      Main:
      If Pinb.3 = 1 Then
      Set Pinc.1
      Stop Timer1
      Here:
      Goto Here
      End If
      Goto Main
      End


      Timer1_isr:
      Stop Timer1
      Portc = 1
      Return

      اینم فایل bas :
      http://www.mediafire.com/view/jakm2i6msez874r/5.bas
      من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
      آلبرت اینشتین
      منبع: http://fa.wikiquote.org

      دیدگاه


        #4
        پاسخ : تو بسکام چه طور 3 ثانیه مدام portb.3 رو بخونم

        نوشته اصلی توسط hossein_tomari007
        دوست عزیز
        اینم برنامه اما به زبان سی
        بسکام یادم نمونده
        خودتون تبدیل کنید

        کد:
        int i;
        char tmp;
        
        for(i=0;i<300;i++)
        {
        	if(PORTB.3==0)
        	{
        		tmp=1;
        	}
        	else
        	{
        		tmp=0;
        		goto out;
        	}
        delay_ms(10);
        }
        out:
        این یرنامه هر 10 میلی ثانیه پورت رو چک میکنه
        اگه حتی برای یکبار پورت یک بشه برنامه رو متوقف میکنه و تو خروجی صفر میده
        اما اگه 300 بار هم صفر باشه
        خروجی رو یک میده بیرون
        با این روش شما جواب گرفتم . کد جالبی بود
        خیلی ممنون . دل مارو شاد کردی . خدا دلتو شاد کنه .
        مرسی ممنون

        دیدگاه

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