اطلاعیه

Collapse
No announcement yet.

درخواست یه برنامه کوچولو در c

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

    درخواست یه برنامه کوچولو در c

    سلام و خسته نباشید خدمت همه

    کسی می تونه این دستورو تو زبان c زحمت بکشه برامون بگه چی طوری باید نوشت؟؟ :
    من که هرچی روش فک کردم هیچی نفهمیم :cry:
    فارسیش این میشه::
    اگر در طول 1 ثانیه از پورت x پالسی نگرفتی یک پالس در پورت y ایجاد کن
    اگر از پورت x پالسی گرفتی یک پالس در پورت y ایجاد کن
    با ایجاد پالس در y به مدت نیم ثانیه از x پالس نگیر(یعنی اگه پالس اومد بهش بی تفاوت باش )
    لطفا کمک کنید
    ممنون

    #2
    پاسخ : درخواست یه برنامه کوچولو در c

    نوشته اصلی توسط ohayo1368
    سلام و خسته نباشید خدمت همه

    کسی می تونه این دستورو تو زبان c زحمت بکشه برامون بگه چی طوری باید نوشت؟؟ :
    من که هرچی روش فک کردم هیچی نفهمیم :cry:
    فارسیش این میشه::
    اگر در طول 1 ثانیه از پورت x پالسی نگرفتی یک پالس در پورت y ایجاد کن
    اگر از پورت x پالسی گرفتی یک پالس در پورت y ایجاد کن
    با ایجاد پالس در y به مدت نیم ثانیه از x پالس نگیر(یعنی اگه پالس اومد بهش بی تفاوت باش )
    لطفا کمک کنید
    ممنون
    سوالتون مشکل داره
    لطفا خط 1 و 2 اصلاح کنین تا قابل حل باشه
    [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

    دیدگاه


      #3
      پاسخ : درخواست یه برنامه کوچولو در c

      شما نیاز به یک تایمر داری که نیم ثانیه رو برات اندازه گیری کنه. یه وقفه خارجی هم برای خوندن پالس x می خوای.
      برنامه باید شامل این بخشها باشه:
      1- روتین وقفه ی نیم ثانیه تایمر:
      1-1- وقفه ی خارجی رو فعال کن.
      2-1- یه متغیر (مثلا i) رو تاگل کن یعنی اگه صفره یکش کن و اگه یکه صفرش کن.
      3-1- شمارنده ی تایمر رو ریست کن.
      4-1- اگه i=0 برو به روتین ارسال پالس.
      2- روتین رخداد وقفه ی خارجی:
      1-2- برو به روتین ارسال پالس.
      3- روتین ارسال پالس:
      1-3- یه پالس روی پورت y بفرست.
      2-3- شمارنده ی تایمر رو ریست کن.
      3-3- وقفه ی خارجی رو غیرفعال کن.

      این از الگوریتمش. گیج کننده که نبود؟ :rolleyes: اگه جاییش رو اشتباه گفتم اساتید اصلاح کنن. برنامه رو بنویس هرجا مشکل داشتی بپرس.
      موفق باشی

      دیدگاه


        #4
        پاسخ : درخواست یه برنامه کوچولو در c

        نوشته اصلی توسط ADMlN
        سوالتون مشکل داره
        لطفا خط 1 و 2 اصلاح کنین تا قابل حل باشه
        مشکلش دقیقا چیه من می خام پایه میکروم اگر در طول 1 ثانیه ست نشد در انتهای 1 ثانیه یه پالس بده و اگر در طول یک ثانیه هرگاه ست شد یه پالس بده ولی بعد از دادن پالس خوروجی تا نیم ثانیه بعد اگر حتی ست شد بی تفاوت باشه
        منونم اگه راهنمایی کنید

        دیدگاه


          #5
          پاسخ : درخواست یه برنامه کوچولو در c

          نوشته اصلی توسط برادر
          شما نیاز به یک تایمر داری که نیم ثانیه رو برات اندازه گیری کنه. یه وقفه خارجی هم برای خوندن پالس x می خوای.
          برنامه باید شامل این بخشها باشه:
          1- روتین وقفه ی نیم ثانیه تایمر:
          1-1- وقفه ی خارجی رو فعال کن.
          2-1- یه متغیر (مثلا i) رو تاگل کن یعنی اگه صفره یکش کن و اگه یکه صفرش کن.
          3-1- شمارنده ی تایمر رو ریست کن.
          4-1- اگه i=0 برو به روتین ارسال پالس.
          2- روتین رخداد وقفه ی خارجی:
          1-2- برو به روتین ارسال پالس.
          3- روتین ارسال پالس:
          1-3- یه پالس روی پورت y بفرست.
          2-3- شمارنده ی تایمر رو ریست کن.
          3-3- وقفه ی خارجی رو غیرفعال کن.

          این از الگوریتمش. گیج کننده که نبود؟ :rolleyes: اگه جاییش رو اشتباه گفتم اساتید اصلاح کنن. برنامه رو بنویس هرجا مشکل داشتی بپرس.
          موفق باشی
          نه اصلا گیج کننده نبود :surprised: :eek:
          سعی می کنم بنویسم هر چند خیلی از وقفه ها سر در نمیارم ممنون از راهنمایتون

          دیدگاه


            #6
            پاسخ : درخواست یه برنامه کوچولو در c


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

            کد:
            unsigned i;
            char j;
            while(1){
              y=0;
              for(i=20;i>0;i--)
               for(j=50000;j>0;j--){
                 if(X==1)
                  i=j=0;
               }
              y=1;
              delay_ms(500);
            }

            [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

            دیدگاه

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