Witam,
jako zadanie dostałem opisanie krok po kroku otrzymanego kodu oraz przeniesienie kodu z języka Bascom na kod Asemblera i C. Jako, że programowanie nie jest moją mocną stroną, prosiłbym o pomoc (rady, sugestie najlepiej w sposób tzw. łopatologiczny jak można osiągnąć postawiony cel i jak wogóle się najlepiej za to zabrać) w przetransformowaniu kodu z języka Bascom na język Asemblera i C oraz opisaniu kodu bascoma. Jeżeli chodzi o bascoma to ten kod został zgrany z jakiegoś mikrokontrolera wykorzystującego czujniki ultradźwiękowe. W miejsce zgranego kodu zostaną wgrane stworzone przeze mnie kody w C i asemblerze. Jeżeli zadziała to wiadomo, projekt zaliczony, jeżeli nie to poprawianie do momentu, aż zadziała.
Wszystkim zainteresowanym z góry dziękuję za odpowiedź i pozdrawiam
jako zadanie dostałem opisanie krok po kroku otrzymanego kodu oraz przeniesienie kodu z języka Bascom na kod Asemblera i C. Jako, że programowanie nie jest moją mocną stroną, prosiłbym o pomoc (rady, sugestie najlepiej w sposób tzw. łopatologiczny jak można osiągnąć postawiony cel i jak wogóle się najlepiej za to zabrać) w przetransformowaniu kodu z języka Bascom na język Asemblera i C oraz opisaniu kodu bascoma. Jeżeli chodzi o bascoma to ten kod został zgrany z jakiegoś mikrokontrolera wykorzystującego czujniki ultradźwiękowe. W miejsce zgranego kodu zostaną wgrane stworzone przeze mnie kody w C i asemblerze. Jeżeli zadziała to wiadomo, projekt zaliczony, jeżeli nie to poprawianie do momentu, aż zadziała.
$crystal = 8000000
Config Portd = &B1100001
Config Portb = &B11111111
Portd.4 = 1
Portd.3 = 1
Portd.2 = 1
Dim Dfd As Byte
Set Portb.7
Config Timer1 = Timer , Prescale = 8
Stop Timer1
Dim Odleglosc As Long
Dim Predkosc As Long
Dim Odl As Word
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim Maksymalna As Byte
Dim Maxs As Byte
Dim Liczba As Byte
Dim Rodzajpomiaru As Bit
Dim Czas_off As Word
Dim Odlegla As Byte
Dim Flaga As Bit
Dim Dane As Word
A = 2
B = 50
Set Portb.1
Set Portb.3
Readeeprom Predkosc , 5
Cls
Lcd "EdW"
Wait 2
If Predkosc < 1000 Then Predkosc = 3400
Gosub Predkosci
Czas_off = 19800
Ala:
Do
Gosub Wylaczenie
Reset Portb.4
Reset Portb.5
If Pind.4 = 0 Then
Incr Maxs
If Maxs > 3 Then Maxs = 0
Waitms 100
End If
Waitms 100
Cls
If Maxs = 0 Then Lcd "1m?"
If Maxs = 1 Then Lcd "3m?"
If Maxs = 2 Then Lcd "10m?"
If Maxs = 3 Then Lcd "predkosc"
If Pind.2 = 0 Then Exit Do
Loop
Liczba = 10
If Maxs = 2 Then Liczba = 200
If Maxs = 0 Or Maxs = 3 Then Set Portb.4
If Maxs = 1 Then Set Portb.3
Do
Gosub Wylaczenie
If Pind.3 = 0 Then
Goto Ala
End If
If Pind.2 = 0 Then
Czas_off = 0
Cls
Start Timer1
For C = 1 To Liczba
Set Portd.0
Waitus 12
nop
nop
Reset Portd.0
Waitus 10
nop
nop
Next C
Waitms 1
If Maxs > 0 Then
Waitms 2
End If
If Maxs = 2 Then
Waitms 5
End If
A_1:
If Pind.1 = 0 Then
If Timer1 < 65000 Then
Goto A_1
End If
Odlegla = 1
End If
Stop Timer1
Timer1 = Timer1 - 18
If Maxs < 3 Then
Odleglosc = Timer1 * Predkosc
Odleglosc = Odleglosc / 20000
If Odlegla = 1 Then
Lcd "blizej !"
Odlegla = 0
Else
Lcd Odleglosc ; "mm" ; " " ; Odl ; "m/s"
End If
Else
Predkosc = 20000000 / Timer1
Gosub Predkosci
Lcd Odl ; "m/s?"
End If
Timer1 = 0
Waitms 250
End If
If Maxs = 3 Then
If Pind.4 = 0 Then
Goto Ala
End If
End If
Loop
Predkosci:
Odl = Predkosc / 10
Return
Wylaczenie:
Waitms 1
Incr Czas_off
If Czas_off > 20000 Then
Czas_off = 0
Writeeeprom Predkosc , 5
Set Portd.5
End If
Return
Wszystkim zainteresowanym z góry dziękuję za odpowiedź i pozdrawiam