پاسخ : مشکل تکرار دستور در bascom
سعی کنید از همین اول بدون دستورات پرش برنامه بنویسین ، بعدا تو کدهای بزرگتر به مشکل پشته میخورید، چون کنترل برنامه از دست خارج میشه.
اینم کد : زمانی که ورودی یک شد ، تایمر روشن و برنامه اصلا وارد ch3 نخواهد شد ، تا تایمر خاموش شه ، و پرچم و بکشه پایین ، و اونوقت که همون پین صفر هست ، وارد ch3 میشه.
راستی دستورات ال سی دی رو حذف کنید.مهم نیست.
سعی کنید از همین اول بدون دستورات پرش برنامه بنویسین ، بعدا تو کدهای بزرگتر به مشکل پشته میخورید، چون کنترل برنامه از دست خارج میشه.
اینم کد : زمانی که ورودی یک شد ، تایمر روشن و برنامه اصلا وارد ch3 نخواهد شد ، تا تایمر خاموش شه ، و پرچم و بکشه پایین ، و اونوقت که همون پین صفر هست ، وارد ch3 میشه.
کد:
$regfile = "m64def.dat" $crystal = 8000000 Config Portd = Input Config Portb = Output Config Debounce = 20 Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , _ Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 Config Lcd = 16 * 2 Waitms 20 'Cursor Blink Cursor Off Enable Interrupts Config Timer2 = Timer , Prescale = 64 On Timer2 Timerr2 Stop Timer2 Disable Timer2 Reset Portd.0 Reset Portd.1 Dim Sarriz As Integer Dim Seconds As Byte Dim Minutes As Byte Dim Flagtimer As Bit Declare Sub Ch3 '========================================' Cls Waitms 5 Lcd "hossein" Do 'here is main code If Pind.0 = 1 Then flagtimer = 1 Enable Timer2 Start Timer2 Portb = &B11111111 ' ba feshordane vorodi , portB roshan mishe Elseif Pind.0 = 0 And Flagtimer = 0 Then Call Ch3 End If If Minutes = 2 Then 'zamani ke shoma dar nazar darin bayad inja gozashte beshe baraye khamoshiye khooroji Minutes = 0 Flagtimer = 0 Stop Timer2 Disable Timer2 Portb = &B0000000 End If '{ 'dar in baze baqiye barname khodetono benevisin '} Loop '=======================================' Timerr2: Incr Sarriz If Sarriz = 489 Then Incr Seconds Locate 1 , 1 Lcd Seconds If Seconds = 60 Then Incr Minutes Lowerline Lcd Minutes If Minutes = 244 Then Minutes = 0 Seconds = 0 End If Sarriz = 0 End If Return '_____________________ Sub Ch3 Waitms 25 Toggle Portc.2 While Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 0 And Pinb.3 = 0 Wend While Pind.2 = 1 Wend Waitms 25 End Sub '================'
راستی دستورات ال سی دی رو حذف کنید.مهم نیست.
دیدگاه