mehrannohtani
21-03-2015, 18:40
سلام به همه اي دوستان مهندس
سال نو بر شما مهندسين گرامي مبارك.
قبلا يكي مشكلي در برنامه اي داشتم يكي از كاربران سايت كمك كردن مشكلم حل شد.(مرسي از omidctrl)
الان اين برنامه را مي خواهم به شكل زير برنامه با دستور gosub استفاده كنم يك جايي هرچي متغيير x تعريف
ميكنم كه اگر صفر شد بياد مثلا فلان كار را بكند يا اگر يك منطقي شد بياد فلان كار ديگر را بكند اين عمل انجام نميشه
$regfile = "m32def.dat"
$crystal = 1000000
Dim X As Byte
Dim S As Byte
Dim U As Word
Dim A As Word
Dim B As Word
Config Portb = Output
Config Portc = Output
Config Portd = Input
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Timer0 = Timer , Prescale = 1024
Enable Interrupts
Enable Timer0
On Timer0 Lable
Do
Gosub Mehran1
If x= 1 Then
Set Portc.0
Else
Reset Portc.0
End If
Loop
Mehran1:
Do
S = 0
Start Timer0
Do
A = Getadc(4)
Waitus 100
B = Getadc(4)
If A <= B Then
U = B - A
Else
U = A - B
End If
If U <> 0 Then
Reset Portb.0
X = 0
Stop Timer0
Exit Do
Elseif U = 0 And S = 12 Then
Set Portb.0
X = 1
Stop Timer0
Exit Do
End If
Loop
Loop
Lable:
S = S + 1
Return
Return
در كل قسمت هاي قرمز رنگ را من به برنامه اضافه كردم
البته جايي كه نوشته شده x=1 يا x=0 اگر مثلا خود portc.0 را قرار دهم كارميكنه
ولي من ميخواهم زماني كه خروجي portb.0 يك و يا صفر منطقي شود متغيري
نيز باشد كه محتواي آن همزمان صفر ويك شود.
چون از اين برنامه مي خواهم به شكل زير برنامه با دستور gosub استفاده كنم
دوستان يك برسي كنند ببينند مشكل كجاست كه دستوري كه به رنگ قرمزاست كار نميكنه؟
واقعيتش چون تازه كار هستم حرفه اي نيستم.ممنون
ممنون
سال نو بر شما مهندسين گرامي مبارك.
قبلا يكي مشكلي در برنامه اي داشتم يكي از كاربران سايت كمك كردن مشكلم حل شد.(مرسي از omidctrl)
الان اين برنامه را مي خواهم به شكل زير برنامه با دستور gosub استفاده كنم يك جايي هرچي متغيير x تعريف
ميكنم كه اگر صفر شد بياد مثلا فلان كار را بكند يا اگر يك منطقي شد بياد فلان كار ديگر را بكند اين عمل انجام نميشه
$regfile = "m32def.dat"
$crystal = 1000000
Dim X As Byte
Dim S As Byte
Dim U As Word
Dim A As Word
Dim B As Word
Config Portb = Output
Config Portc = Output
Config Portd = Input
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Timer0 = Timer , Prescale = 1024
Enable Interrupts
Enable Timer0
On Timer0 Lable
Do
Gosub Mehran1
If x= 1 Then
Set Portc.0
Else
Reset Portc.0
End If
Loop
Mehran1:
Do
S = 0
Start Timer0
Do
A = Getadc(4)
Waitus 100
B = Getadc(4)
If A <= B Then
U = B - A
Else
U = A - B
End If
If U <> 0 Then
Reset Portb.0
X = 0
Stop Timer0
Exit Do
Elseif U = 0 And S = 12 Then
Set Portb.0
X = 1
Stop Timer0
Exit Do
End If
Loop
Loop
Lable:
S = S + 1
Return
Return
در كل قسمت هاي قرمز رنگ را من به برنامه اضافه كردم
البته جايي كه نوشته شده x=1 يا x=0 اگر مثلا خود portc.0 را قرار دهم كارميكنه
ولي من ميخواهم زماني كه خروجي portb.0 يك و يا صفر منطقي شود متغيري
نيز باشد كه محتواي آن همزمان صفر ويك شود.
چون از اين برنامه مي خواهم به شكل زير برنامه با دستور gosub استفاده كنم
دوستان يك برسي كنند ببينند مشكل كجاست كه دستوري كه به رنگ قرمزاست كار نميكنه؟
واقعيتش چون تازه كار هستم حرفه اي نيستم.ممنون
ممنون