اطلاعیه

Collapse
No announcement yet.

ی مشکل کوچیک برنامه نویسی

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

    ی مشکل کوچیک برنامه نویسی

    سلام
    من 4 خط برنامه نویشتم به این صورت
    http://uupload.ir/files/q045_untitled.png
    میخوام وقتی ورودی رو PINB.3 رو 1 یا صفر میکنم یکی از خروجی هام PORTB.0 OR PORTB.1 واسه 1 ثانیه 1 بشه و بعد 0 بشه و روی 0 بمونه تا ورودی تاگل بشه و دوباره خروجی مربوط واسه 1 ثانیه 1 بشه و بعد 0 بشه و صفر بمونه تا موقعی ک ورودی دومرتبه عوض بشه
    الان مشکل اینه ک میکرو میبینه روردی مثلا1 هست فلان پایه رو 1 میکنه ولی به محض 0 کردن دوباره 1 میشه (یعنی در عمل 1 می مونه)
    چطور می تونم این مشکل رو حل کنم؟؟؟

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

    دقیقا نفهمیدم منظورت چیه ولی اگه میخوای با وضعیت یه پین به پین های دیگه وظیفه بدی کدهات درستن ولی اینا رو مختصر هم میتونستی بنویسی
    مثلا

    .
    .
    .
    PORTB=0x00;
    while (1)
    {
    if (PINB.3==1){
    PORTB.1=1;
    delay_ms(1000);
    PORTB.1=0;}
    else{
    PORTB.0=0;
    delay_ms(1000);
    PORTB.0=1;}
    }

    اگه مشکلتم برگشت مقدار اولیه است میتون اول حلقه تکرار یه مقدار اولیه براش تعیین کنی مثلا

    .
    .
    .
    PORTB=0x00;
    while (1)
    {
    PORTB.0=0;
    PORTB.1=0;
    if (PINB.3==1){
    PORTB.1=1;
    delay_ms(1000);
    PORTB.1=0;}
    else{
    PORTB.0=0;
    delay_ms(1000);
    PORTB.0=1;}
    }

    بازم بگم دقیقا ندونستم مشکلت چیه !!!

    دیدگاه

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