NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 5112 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 8 از 8

موضوع: مشکل با کلید فشاری

  1. #1
    مدیر باز نشسته هنرفر آواتار ها
    تاریخ عضویت
    Sep 2009
    نام
    اصفهان
    نوشته ها
    408
    تشکر
    372
    تشکر شده 311 بار در 154 پست

    پیش فرض مشکل با کلید فشاری

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

    iran-ehda.ir


  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    سلام دوست خوبم

    لطفا کدی رو که نوشتی بذار تا بهتر بتونیم راهنمائیت کنیم.اگه میشه شماتیکتم بذار تا ببینیم کلیدهارو چطور وصل کردی.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  4. #3
    مدیر باز نشسته هنرفر آواتار ها
    تاریخ عضویت
    Sep 2009
    نام
    اصفهان
    نوشته ها
    408
    تشکر
    372
    تشکر شده 311 بار در 154 پست

    پیش فرض

    تو پروتیوس درست جواب میده اما تو عمل نه.
    جوان ایرانی زانو نمیزند حتی اگر حتی اگر سقف آسمان کوتاه تر از قدش باشد....

    iran-ehda.ir


  5. #4
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    عیبی نداره پسر خوب

    شما لطف کن و شماتیک و برنامه رو بذار. ممنون
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  6. #5
    مدیر باز نشسته هنرفر آواتار ها
    تاریخ عضویت
    Sep 2009
    نام
    اصفهان
    نوشته ها
    408
    تشکر
    372
    تشکر شده 311 بار در 154 پست

    پیش فرض

    برنامه خیلی طولانیه.زیر برنامه اینتراپت را برات میزام.



    Decres:

    Disable Interrupts
    Waitms 200
    Select Case I



    Case 1:
    Decr _min
    If _min > 59 Then _min = 0

    Case 2:
    Decr _hour
    If _hour > 23 Then _hour = 0

    Case 3:
    Decr _day
    If _day > 30 Then _day = 0

    Case 4:
    Decr _month
    If _month > 12 Then _month = 0

    Case 5:
    Decr _year

    Case 6:
    Decr W
    End Select
    Waitms 200
    Enable Interrupts
    Return
    ویرایش توسط هنرفر : 19-04-2010 در ساعت 00:46
    جوان ایرانی زانو نمیزند حتی اگر حتی اگر سقف آسمان کوتاه تر از قدش باشد....

    iran-ehda.ir


  7. #6
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    والا از این کد نصفه و نیمه نمیشه چیزی فهمید! حداقل من نمی فهمم!

    در عوض دو تا مثال برات میذارم که برای نشون دادن چگونگی کار کردن با وقفه ها هست ، این دوتا مثال یه تفاوت کوچیک با هم دارن و اونم اینه که در اولی وقتی کلید 1 رو فشار بدی بعدش با فشار دادن کلید 2 هیچ اتفاقی نمی افته! بعبارت دیگه وقفه ی دوم فعال نمیشه اما در برنامه ی دومی بعداز فشردن کلید 1 ، کلید 2 هم فعاله و با فشردنش در هر لحضه وقفه اتفاق می افته.

    برای نشون دادن اتفاق افتادن وقفه برنامه دو تا متغیر رو ، یک واحد زیاد می کنه و روی lcd نشون میده.
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar Int.rar (18.9 کیلو بایت, 132 نمايش)
    ویرایش توسط morteza_rk : 19-04-2010 در ساعت 01:23
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  8. #7
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    اگه مشکل از لرزش دست باشه با استفاده از مدار زیر میشه اونو اصلاح کرد.

    در این مدار در لحظه ای که کلید فشار داده میشه خازن شروع می کنه به دشارژ شدن ، بنابراین ولتاژ نگهان صفر نمیشه و با تاخیر t=RC (تاو) پائین میاد و اگه یه لحظه دست بلرزه و ولتاژ بخواد زیاد بشه دقیقا بخاطر همین تاخیر با کندی شروع زیاد شدن می کنه و قبل از اینکه بخواد به مقدار 5 ولت برسه برنامه کد یک صفر رو دریافت کرده و به کار خودش ادامه میده.

    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  9. #8
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    خب حالا اگه بخوایم این مشکل رو از طریق نرم افزاری رفع کنیم باید یه تاخیر بعداز یک شدن پایه ایجاد کنیم ، مثلا تاخیر50 میلی ثانیه ای یا بیشتر.

    اما این برای مواقعی کاربرد داره که شما از یک پین میکرو بطور معمولی برای تشخیص فشرده شدن کلید استفاده کرده باشید ، ولی در اینجا دوستمون از وقفه برای تشخیص فشرده شدن کلید استفاده کردن بنابراین باید بعداز اتفاق افتادن وقفه اولا همه ی وقفه هارو غیر فعال کنن و ثانیا یه تاخیر در حد 50 الی 100 میلی ثانیه ایجاد کنن.

    که ایشون هم این کار رو کردن! حالا چرا برنامه در عمل کار نمی کنه عقل من دیگه قد نمیده!

    مگر اینکه یه جای دیگه از برنامه مشکل داشته باشه.
    ویرایش توسط morteza_rk : 19-04-2010 در ساعت 01:56
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •