ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2007/12/10
    تهران
    126
    14

    مشکل در دستور 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
    اگر دين نداري حداقل آزاده باش <امام حسين (ع)>
  2. #2
    2008/10/29
    2,098
    206

    پاسخ : مشکل در دستور if

    سلام
    این خطوط رو تصحیح کنین
    Pind.0 = A1
    Pind.1 = A2
    Pind.2 = A3
    Pind.3 = A4

    تصحیح شده:

    A1=Pind.0
    A2=Pind.1
    A3=Pind.2
    A4=Pind.3
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.
  3. #3
    2008/10/29
    2,098
    206

    پاسخ : مشکل در دستور if

    سلام
    البته باید شکل کلی برنامه به این صورت باشه چون برنامه شما یکبار در ابتدا بیشتر پورت رو نمی خونه

    کد:
    $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
    
    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.5
    Elseif A4 = 0 Then
    Set Portb.7
    Waitms 300
    Reset Portb.7
    
    End If
    loop
    در ضمن بهتره برای خواندن یک بیت از بایت استفاده نکنین بلکه از bit
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.
  4. #4
    2007/12/10
    تهران
    126
    14

    پاسخ : مشکل در دستور if

    خیلی ممنون از کمکتون این کارها که فرمودید انجام میدم نتیجه رو اطلاع میدم .فقط در این مورد که فرمودید a1 تا a4 باید در حلقه اصلی باشه می خواستم بدونم مصلا بعد از هر بار اجرای حلفه مثلا نباید مقادیر متغیر ها صفر بشه یا خالی از مقدار قبلی بشه ؟ممنون
    اگر دين نداري حداقل آزاده باش <امام حسين (ع)>
  5. #5
    2008/10/29
    2,098
    206

    پاسخ : مشکل در دستور if

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

    شما این دستورات مثل هم هستن
    a1=0
    a2=0
    a3=0
    a4=0
    A1=Pind.0
    A2=Pind.1
    A3=Pind.2
    A4=Pind.3

    با
    A1=Pind.0
    A2=Pind.1
    A3=Pind.2
    A4=Pind.3

    اما در دستور ات اولی در حد میکرو ثانیه مقدار متغییر های a1 تا a4 صفر می شن و مقدار جدید رو بعد می گیرن اما در دستورات دوم مقدار قبلی با دریافت مقدار جدید پاک می شه و علاوه بر اینکه در دستورات اول 4 سیکل ماشین کار اضافی انجام شده.
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.
  6. #6
    2007/12/10
    تهران
    126
    14

    پاسخ : مشکل در دستور if

    با تشکر .فقط یک سوال اگر ما به صورت a1=0 مقدار دهی کنیم میکرو از کجا متوجه میشه ما کدوم پینها رو میخوایم در متغییر بریزیم ؟ و سوال دیگه اینکه استفاده من برای ربات صدا یاب هستش توسط یک مدار ترانزیستورب وقتی میکروفن صدا رو هس میکنه خروجی مدار صفر میشه حالا باید میکرو چک کنه کدوم یکی از میکروفن ها خروجی صفر رو روی یکی از پین ها ایجاد میکنه پس این اسفاده باید a1 تا a4 رو درون حلقه اصلی بزارم دیگه؟ممنون
    اگر دين نداري حداقل آزاده باش <امام حسين (ع)>
  7. #7
    2007/12/10
    تهران
    126
    14

    پاسخ : مشکل در دستور if

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

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

  1. مشکل دستور زیر در زبان c
    توسط masoud58 در انجمن میکروکنترلرهای AVR
    پاسخ: 14
    آخرين نوشته: 2016/01/09, 02:37
  2. مشکل با دستور IF
    توسط soodi در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2012/09/07, 18:01
  3. مشکل با دستور read-adc
    توسط micro-m در انجمن ATMEL
    پاسخ: 4
    آخرين نوشته: 2012/09/01, 20:50
  4. مشکل در یک دستور کتابخانه ff.h
    توسط king_of_hearts90 در انجمن میکروکنترلرهای AVR
    پاسخ: 22
    آخرين نوشته: 2012/03/05, 00:01
  5. مشکل در دستور ++c
    توسط 118 در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2009/02/22, 18:01

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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