Moim zadaniem jest obsłużyć impulsator pracujący przy dość dużych częstotliwościach. Wszystko jest dobrze do częstotliwości kilku kiloherców a ja muszę zbudowac urzadzenie pracujace z częstotliwościami dochodzącymi do 120kHz. Można by pewnie napisać to w assemblerze ale nie wiem jak podejrzeć Bascoma, z których zasobów korzysta i jakich rejestrów mogę używać by umieścić w kodzie wstawkę asemblerową. Kod odpowiedzialny za jego obsługę impulsatora umieszczam ponizej:
Do 'poczatek petli glownej
If I1 = 1 And I2 = 1 Then 'impulsator w pozycji - zwarte
Af = 1
End If
If I1 = 0 And I2 = 0 Then
Af = 0
End If
If I1 = 0 And I2 = 1 Then
If Af = 1 Then
Do
If I2 = 0 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zwieksz
Else
Do
If I1 = 1 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zmniejsz
End If
End If
If I1 = 1 And I2 = 0 Then
If Af = 1 Then
Do
If I1 = 0 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zmniejsz
Else
Do
If I2 = 1 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zwieksz
End If
End If
Loop
Prosze o wszelkie podpowiedzi które spawią że kod będzię działał o wiele sprawniej, lub proszę o podpowiedż w sprawie zajmowanie zasobów przez BASCOMa i odpowiednie używanie wstawek asemblerowych. Układ pracuej z kwarcem 8MHz i wolałbym tego nie zmieniać z pewnych względów. Będę wdzięczny za wszelkie podpowiedzi.
Do 'poczatek petli glownej
If I1 = 1 And I2 = 1 Then 'impulsator w pozycji - zwarte
Af = 1
End If
If I1 = 0 And I2 = 0 Then
Af = 0
End If
If I1 = 0 And I2 = 1 Then
If Af = 1 Then
Do
If I2 = 0 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zwieksz
Else
Do
If I1 = 1 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zmniejsz
End If
End If
If I1 = 1 And I2 = 0 Then
If Af = 1 Then
Do
If I1 = 0 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zmniejsz
Else
Do
If I2 = 1 Then Exit Do
If P2.1 = 0 Then
Gosub Zmien_krok
End If
Loop
Gosub Czestotliwosc_zwieksz
End If
End If
Loop
Prosze o wszelkie podpowiedzi które spawią że kod będzię działał o wiele sprawniej, lub proszę o podpowiedż w sprawie zajmowanie zasobów przez BASCOMa i odpowiednie używanie wstawek asemblerowych. Układ pracuej z kwarcem 8MHz i wolałbym tego nie zmieniać z pewnych względów. Będę wdzięczny za wszelkie podpowiedzi.