اطلاعیه

Collapse
No announcement yet.

استفاده همزمان از دو پورتbوdمگا 8

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

    استفاده همزمان از دو پورتbوdمگا 8

    سلام خدمت تمامی دوستان
    من میخوام یه برنامه در بسکام بنویسم که پورت b,وdبه صورت همزمان کارکنند
    1: ledپورت bفقط با تکرار که براشون مشخص کردم چشمک بزن
    2:ledهای پورت dفقط با تکرار که براشون مشخص کردم چشمک بزن
    اما مشکل اینجاست که اول پورت bشروع به کار میکن و بعد از تمام شدن تکرار که ledچشمک میزن زمانی که چشمک زدنشون تموم شد میره سراغ پورت dمن این نمیخوام من میخوام پورت b,dبه هم کار کنند


    کد:
    $regfile = "m8adef.dat"
    $crystal = 8000000
    
    
    Config Portb = Output
    Config Portd = Output
    Dim I As Byte
    Dim A As Byte
    
    
     Do
     For I = 1 To 5
     Portb = &B11111111
    Waitms 10
    Portb = &B00000000
    Waitms 10
    Next I
    For I = 1 To 5
    Portb = &B11100011
    Waitms 10
    Portb = &B00011100
    Waitms 10
    Next I
    
    For A = 1 To 5
    Portd = &B10101010
    Waitms 10
    Portd = &B01010101
    Waitms 10
    Next A
    For A = 1 To 5
    Portd = &B11100011
    Waitms 10
    Portd = &B00011100
    Waitms 10
    Next A
    
    Portd = &B11001100
    Waitms 10
    Portd = &B00110011
    Waitms 10
    
    Loop

    #2
    پاسخ : استفاده همزمان از دو پورتbوdمگا 8

    نوشته اصلی توسط HaMeD.HP نمایش پست ها
    سلام خدمت تمامی دوستان
    من میخوام یه برنامه در بسکام بنویسم که پورت b,وdبه صورت همزمان کارکنند
    1: ledپورت bفقط با تکرار که براشون مشخص کردم چشمک بزن
    2:ledهای پورت dفقط با تکرار که براشون مشخص کردم چشمک بزن
    اما مشکل اینجاست که اول پورت bشروع به کار میکن و بعد از تمام شدن تکرار که ledچشمک میزن زمانی که چشمک زدنشون تموم شد میره سراغ پورت dمن این نمیخوام من میخوام پورت b,dبه هم کار کنند


    کد:
    $regfile = "m8adef.dat"
    $crystal = 8000000
    
    
    Config Portb = Output
    Config Portd = Output
    Dim I As Byte
    Dim A As Byte
    
    
     Do
     For I = 1 To 5
     Portb = &B11111111
    Waitms 10
    Portb = &B00000000
    Waitms 10
    Next I
    For I = 1 To 5
    Portb = &B11100011
    Waitms 10
    Portb = &B00011100
    Waitms 10
    Next I
    
    For A = 1 To 5
    Portd = &B10101010
    Waitms 10
    Portd = &B01010101
    Waitms 10
    Next A
    For A = 1 To 5
    Portd = &B11100011
    Waitms 10
    Portd = &B00011100
    Waitms 10
    Next A
    
    Portd = &B11001100
    Waitms 10
    Portd = &B00110011
    Waitms 10
    
    Loop

    سلام

    معلومه که اینجوری جواب نمیده
    میدونی چرا ؟؟ !!
    چون برنامه خط به خط از اولین خط اجرا میشه ... اجرای متوالی

    شما میخوای اجرا موازی داشته باشی ... یعنی همزمان تمام خط ها باهم که این کار از عهده AVRها خارج هست
    شاید با تایمر بتونی کاری کنی...
    ! Life doesn't get easier , you just get stronger

    دیدگاه

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