Szanowny Bartku korzystam cały czas z twojej pomocnej reguły i jest cacy , ale doszedłem do wniosku że mój cpu który to ma poświęcić więcej czasu na kontolę i czówanie nad
całym procesem zabezpieczeń ; napięć, prądów, przekaźników i temperatur przetwornic w systemie solarnym to niestety cpu musi także poświęcić czas 3s na wysłanie danych do pc.
Dlaczego 3s. Poniżej krótki sub w którym jest wysyłka danych z waitami 270ms bo jak zmniejsze to program odbierający chyba nie wyrabia i powstaje bałagan.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Sub Wysylka
- Print #3 , "V1=" ; Outpomiar(5) ; Chr(13)
- Waitms 260
- Print #3 , "V2=" ; Outpomiar(6) ; Chr(13)
- Waitms 260
- Print #3 , "V3=" ; Outpomiar(7) ; Chr(13)
- Waitms 260
- Print #3 , "V4=" ; Outpomiar(8) ; Chr(13)
- Waitms 260
- Print #3 , "V5=" ; Outpomiar(1) ; Chr(13)
- Waitms 260
- Print #3 , "V6=" ; Outpomiar(2) ; Chr(13)
- Waitms 260
- Print #3 , "V7=" ; Outpomiar(3) ; Chr(13)
- End Sub
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Sub Wysylka
- Print #3 , "V1=" ; Outpomiar(1) ; "V2=" ; Outpomiar(2) ; "V3=" ; Outpomiar(3) ;"V4=";Outpomiar(3); Chr(13)
- End Sub
Chodzi o to że to skróciłoby czas na wysyłanie do maksimum , a xmega miała by więcej czasu na inne sprawy ważniejsze.
Poniżej obecnie dzałający Sub , ale spowolniony.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Private Sub ReceivedText1() 'input from ReadExisting
- If InStr(1, mystring1, "V1=") > 0 Then ' ***************** Pomiar solara 40V
- Dim mydane() As String = mystring1.Split("=")
- 'RichTextBox1.Text = mydane(1)
- vcc1 = CStr(mydane(1)) ' Przepisany wynik w postaci np. 16,20
- vbar1 = Val(mydane(1))
- ProgressBar1.Value = vbar1
- RichTextBox1.Text = vcc1
- End If
- If InStr(1, mystring1, "V2=") > 0 Then ' ***************** Pomiar ładowania 24V
- Dim mydane() As String = mystring1.Split("=")
- 'RichTextBox2.Text = mydane(1)
- vcc2 = CStr(mydane(1))
- vbar2 = Val(mydane(1))
- ProgressBar2.Value = vbar2
- RichTextBox2.Text = vcc2
- End If
- If InStr(1, mystring1, "V3=") > 0 Then '****************** Pomiar 12V
- Dim mydane() As String = mystring1.Split("=")
- 'RichTextBox3.Text = mydane(1)
- vcc3 = CStr(mydane(1))
- vbar3 = Val(mydane(1))
- ProgressBar3.Value = vbar3
- RichTextBox3.Text = vcc3
- End If
- If InStr(1, mystring1, "V4=") > 0 Then ' ***************** Pomiar Napięcia AKUMULATOR-1
- Dim mydane() As String = mystring1.Split("=")
- vcc4 = CStr(mydane(1))
- 'RichTextBox4.Text = mydane(1)
- RichTextBox4.Text = vcc4
- End If
- If InStr(1, mystring1, "V5=") > 0 Then ' ***************** Pomiar Napięcia AKUMULATOR-2
- Dim mydane() As String = mystring1.Split("=")
- 'RichTextBox5.Text = mydane(1)
- vcc5 = CStr(mydane(1))
- RichTextBox5.Text = vcc5
- End If
- If InStr(1, mystring1, "V6=") > 0 Then ' ***************** Pomiar Napięcia 5V SYSTEM
- Dim mydane() As String = mystring1.Split("=")
- TextBox16.Text = mydane(1)
- End If
- If InStr(1, mystring1, "V7=") > 0 Then ' ***************** Pomiar Napięcia 3.3V CPU
- Dim mydane() As String = mystring1.Split("=")
- TextBox17.Text = mydane(1)
- End If
- ' ********************************************************** Pomiar Temperatur 2 x DS18b20
- If InStr(1, mystring1, "DS1 =") > 0 Then 'Pomiar temp DS1
- Dim mydane() As String = mystring1.Split("=") '
- TextBox4.Text = mydane(1)
- End If
- If InStr(1, mystring1, "DS2 =") > 0 Then 'Pomiar temp DS2
- Dim mydane() As String = mystring1.Split("=") '
- TextBox5.Text = mydane(1)
- End If