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

موضوع: مشکل در دستور if

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2012
    نام
    حامد اقوامی
    نوشته ها
    48
    تشکر
    25
    تشکر شده 9 بار در 6 پست

    پیش فرض مشکل در دستور if

    سلام دوستان من این برنامه رو نوشتم و ارور هم نمیده فایلشو هم قرار دادم ولی مقادیر پین های وردی رو در متغییر نمیریزه و فقط دستور اولین شرط رو اجرا میکنه و دیگه شرطهای دیگه رو چک نمیکنه و دستوراتشون رو هم انجام نمیده لازم به ذکر هست برای فعال کردن موتور دو سیمه dc می خوام از این برنامه استفاده بکنم.ممنون میشم بگید مشکل چیه یا یک برنامه بیزحمت پیشنهاد بدید که پین 4 پین هرکدام کدام صفر شد مثلا یک پایه رو یک کنه .ممنون

    $regfile "M32def.dat"
    $crystal = 8000000
    '*********************
    Config Portd = Input
    Config Portb = Output

    Config Lcd = 16 * 2
    Config Lcdbus = 4
    Config Lcdpin = Pin , Rs = Porta.5 , E = Porta.4 , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0

    '*********************
    Dim A1 As Byte , A2 As Byte , A3 As Byte , A4 As Byte
    Pind.0 = A1
    Pind.1 = A2
    Pind.2 = A3
    Pind.3 = A4

    Do
    If A1 = 0 Then
    Set Portb.4 : Waitms 180
    Reset Portb.4
    Waitms 300
    Elseif A2 = 0 Then
    Set Portb.5
    Waitms 300
    Reset Portb.5
    Elseif A3 = 0 Then
    Set Portb.6
    Waitms 300
    Reset Portb.5
    Elseif A4 = 0 Then
    Set Portb.7
    Waitms 300
    Reset Portb.7

    End If
    loop
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط parham144 : 17-05-2012 در ساعت 22:22

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

  3. #2
    کاربر فعال sajjad_AD آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    سجاد
    نوشته ها
    307
    تشکر
    336
    تشکر شده 471 بار در 181 پست

    پیش فرض

    سلام
    برنامه تون چند تا مشکل کوچيک داره
    اول اينکه شما پين هاتون رو مساوي متغيير ها قرار دادين نه متغيير ها رو مساوي پين ها
    و دوم متغيير هاتون رو از نوع بيت تعريف کنين
    و اگه پين ها دائم بايد چک شن اون 4 تا دستوري که مقدار پين هارو تو متغيير قرار ميدن بايد تو حلقه نوشته شن

  4. تشکرها از این نوشته :


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2012
    نام
    حامد اقوامی
    نوشته ها
    48
    تشکر
    25
    تشکر شده 9 بار در 6 پست

    پیش فرض

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

  6. #4
    کاربر فعال mehdi29665 آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    مهدي ديواندري
    نوشته ها
    166
    تشکر
    187
    تشکر شده 121 بار در 68 پست

    Icon16

    نقل قول نوشته اصلی توسط parham144 نمایش پست ها
    سلام دوستان من این برنامه رو نوشتم و ارور هم نمیده فایلشو هم قرار دادم ولی مقادیر پین های وردی رو در متغییر نمیریزه و فقط دستور اولین شرط رو اجرا میکنه و دیگه شرطهای دیگه رو چک نمیکنه و دستوراتشون رو هم انجام نمیده لازم به ذکر هست برای فعال کردن موتور دو سیمه dc می خوام از این برنامه استفاده بکنم.ممنون میشم بگید مشکل چیه یا یک برنامه بیزحمت پیشنهاد بدید که پین 4 پین هرکدام کدام صفر شد مثلا یک پایه رو یک کنه .ممنون

    $regfile "m32def.dat"
    $crystal = 8000000
    '*********************
    config portd = input
    config portb = output

    config lcd = 16 * 2
    config lcdbus = 4
    config lcdpin = pin , rs = porta.5 , e = porta.4 , db4 = porta.3 , db5 = porta.2 , db6 = porta.1 , db7 = porta.0

    '*********************
    dim a1 as bit , a2 as bit , a3 as bit , a4 as bit

    do

    a1=pind.0
    a2=pind.1
    a3=pind.2
    a4=pind.3

    if a1 = 0 then
    set portb.4 : Waitms 180
    reset portb.4
    waitms 300
    elseif a2 = 0 then
    set portb.5
    waitms 300
    reset portb.5
    elseif a3 = 0 then
    set portb.6
    waitms 300
    reset portb.6
    elseif a4 = 0 then
    set portb.7
    waitms 300
    reset portb.7

    end if
    loop
    لطفا این اصلاحیه رو انجام بده ببین چی میشه
    بقیه اش تقریبا درسته
    ویرایش توسط mehdi29665 : 19-05-2012 در ساعت 00:40

  7. تشکرها از این نوشته :


  8. #5
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2012
    نام
    حامد اقوامی
    نوشته ها
    48
    تشکر
    25
    تشکر شده 9 بار در 6 پست

    پیش فرض

    با تشکر از کمکتون تقریبا درست شد .فقط زمان ها زیاد درست نیست مثلا 3 ثانیه یک بار میشه 1 ثانیه یک بار میشه 4 ثانیه یا مثلا portb.7 روشن میشه و اصلا reset نمیشه یا بعضی وقتا یه پایه که نباید جریان بدیه جریان کم به حالت قطع و وصل سریع میده و متور به طور ناخواسته یکم میچرخه .میشه راهنماییم کنید مشکل کجاست؟ مقاومت در خروجی پینها قرار بدم که جریان های کم رو بگیره؟ممنون

  9. #6
    کاربر فعال mehdi29665 آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    مهدي ديواندري
    نوشته ها
    166
    تشکر
    187
    تشکر شده 121 بار در 68 پست

    پیش فرض

    لطفا شماتیک رو هم قرار بدید
    ضمنا زمانها تجربی درست میشه
    چون میکروفون قرار داره ممکنه از صدای حرکت خودش هم مجدد تحریک بشه؟

  10. تشکرها از این نوشته :


  11. #7
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2012
    نام
    حامد اقوامی
    نوشته ها
    48
    تشکر
    25
    تشکر شده 9 بار در 6 پست

    پیش فرض

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

نام: سوییچ با صدا.gif
مشاهده: 21
حجم: 5.6 کیلو بایت  

  12. کاربران : 2 تشکر کرده اند از شما parham144 برای ارسال این پست سودمند:


  13. #8
    کاربر فعال mehdi29665 آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    مهدي ديواندري
    نوشته ها
    166
    تشکر
    187
    تشکر شده 121 بار در 68 پست

    پیش فرض

    از مداری که قرار دادی واقعا ممنونم
    حساسیت میکروفون رو هم میشه کم و زیاد کرد

  14. #9
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2012
    نام
    حامد اقوامی
    نوشته ها
    48
    تشکر
    25
    تشکر شده 9 بار در 6 پست

    پیش فرض

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

موضوعات مشابه

  1. درباره دستورات i2c
    توسط Deadman در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 07-11-2013, 15:34
  2. دستور ارسال عدد در spi با میکرو avr
    توسط Niloufar.Male در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 26-10-2013, 19:52
  3. مفهوم دستورات arm
    توسط imported_pmf در انجمن مباحث کلی ARM
    پاسخ: 1
    آخرين نوشته: 18-10-2012, 18:59
  4. دستورات arm
    توسط imported_pmf در انجمن AT91 series (ATMEL)
    پاسخ: 0
    آخرين نوشته: 25-08-2012, 12:21
  5. دستورات سریال
    توسط leylijoon در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 1
    آخرين نوشته: 18-08-2012, 09:20

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

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