سلام
در برنامه اي من درپايين قرار مي دهم مشکالي که دارم اين است که به يکي از پايه هاي ميکرو پالسي وارد ميشود و تعداد آن در ال سي دي نمايش داده مي شود تا اينج مشکلي ندارم حال ميخواهم اين عدد بدست آمده را بر 40 تقسيم کرده و يک عدد اعشار به وجود مي آيد بعد ميخواهم عدد اعشار را روند کنم و يک عدد اعشار دو رقمي را به وجود بياورم بعد از آن مي خواهم عدد اعشار را ربع کنم مثلا عدد اعشارم بين 1 تا 25 بود در متغيرم اعشار را 25 نشان دهد و ... بعد که اعشار ربع شد در کنار عدد ديگر صحيح قرار بگيرد و برناهمه دوباره ادامه دارد ولي اهنوز در اين مرحله مشکل دارم که عدد صحيح را ربع کنم در زير برناه اي رو نوشتم تا جايي که عدد اعشار را جدا ميکنم در پرتيوس مشکلي ندارم ولي وقتي از select case استفاده ميکنم بيسکام خطا ميگيره نمي دونم مشکل کجاست کسي مي تونه راهنمايي کنه چيکار کنم ممنون ميشم
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600
Config Timer1 = Counter , Edge = Falling , Capture Edge = Rising , Noise Cancel = 0
Config Portb.1 = Input
Config Portd.6 = Input
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.1 , Rs = Porta.0
Enable Icp1
On Icp1 Q1
Dim A As Word
Dim B As Word
Dim X As Single
Dim Z As String * 1
Dim E As String * 1
Dim F As String * 1
A = Capture1
Enable Interrupts
Main:
Counter1 = 0
Do
If Pind.6 = 1 Then
Enable Icp1
Elseif Pind.6 = 0 Then
Disable Capture1
If Portb.1 <> 0 Then
Print A
Lcd A
Waitms 100
End If
End If
Loop
End
Q1:
A = Capture1
Print A
Lcd A
Wait 3
Cls
Counter1 = 0
X = A / 40
Lcd X
Wait 3
Cls
Z = Fusing(x , "##.##")
Lcd Z
Wait 3
Cls
E = Mid(z , 4 , 2)
Lcd E
Wait 2
Cls
F = Mid(z , 1 , 2)
Lcd F
Wait 2
Cls
Select Case E
Case 1 To 25 :
E = 25
Lcd E
Case 26 To 50 :
E = 50
Lcd E
Case 51 To 75:
E = 75
Lcd E
Case 76 To 99 :
E = 00
Incr F
Lcd E
End Select
Return