Bascom hc-05 i 3 PWM jak ???
-
- Posty: 58
- Rejestracja: 23 wrz 2018, 11:28
Re: Bascom hc-05 i 3 PWM jak ???
Ok. sory mój błąd , sprawdziłem i rzeczywiście jest tak jak piszesz , sorka
-
- Posty: 58
- Rejestracja: 23 wrz 2018, 11:28
Re: Bascom hc-05 i 3 PWM jak ???
Witam , duża część programu jest dla mnie zrozumiała ale czy można prosić o bardziej szczegółowy opis działania timer2 .
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Bascom hc-05 i 3 PWM jak ???
Nie rozumiesz jego ustawień czy tego po co tam jest zastosowany?
Pytam bo od dłuższego czasu zabierałem się za jakiś podstawowy tutorial na temat timerów i wtedy bym to opisał osobno.
Pytam bo od dłuższego czasu zabierałem się za jakiś podstawowy tutorial na temat timerów i wtedy bym to opisał osobno.
-
- Posty: 58
- Rejestracja: 23 wrz 2018, 11:28
Re: Bascom hc-05 i 3 PWM jak ???
ustawienia rozumiem tylko do czego , czyżby do odbioru ...
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Bascom hc-05 i 3 PWM jak ???
Aaa no to będzie prościej i szybciej.
Najczęściej przy transmisjach występuje jakiś znak po którym można rozpoznać koniec ramki. Na przykład CR LF (CarriageReturn i LineFeed) czyli w skrócie Enter.
Niektóre ramki kończą się umownie tak jak sobie napisze programista protokół. Na przykład ramka może się kończyć Hashem #.
Widzisz Hash to wiesz że koniec i możesz parsować dane.
W Modbus nie ma znaku końca ramki. Ramka może mieć różną długość a sterowniki i tak rozpoznają koniec ramki.
Robi się to tak, że jeśli dostaliśmy własnie znak to wiadomo że przy tym Baudrate kolejny powinien przyjść za określony czas. Jeśli czekamy już długość czterech znaków a nowy nie nadszedł to znaczy że ramka się skończyła i można parsować dane.
Pewnie się zastanawiasz po co to tutaj.
Pomysl. Literek i cyfr może być cztery, trzy lub nawet tylko dwie (R255, R25, R2).
Gdybym dostał tylko dwa znaki "R5" i czekał na pozostałe dwa które nigdy by nie nadeszły?
Tak więc za każdym razem kiedy dostaję jakiś znak odpalam Timer z wartością 0. Jak doliczy do 199 znaczy że minęło 3,2ms
Możliwe jest też że dostanę cztery znaki w całości "R255". Wtedy zatrzymuję Timer bo by mi parsował pusty już string.
Czyli takie rozwiązanie stosuje się jeśli nie ma wyraźnego znaku końca transmisji.
Czasem używam go do zabezpieczenia transmisji w których Enter powinien się pojawić ale się nie pojawił. Wtedy najczęściej, ale nie zawsze, kasuję taki string bo to mogą być śmieci. Wszystko zależy od potrzeb urządzenia
Na końcu ciekawostka. Timer włączam dopiero w linii 104 bo nadanie samego słowa "Nowe" to już cztery znaki i Timer już by zgłosił jakiś koniec transmisji
Te wydruki "Nowe R_val= 50" tam są tylko na potrzeby podglądu i lepiej na końcu je zaremować.
Najczęściej przy transmisjach występuje jakiś znak po którym można rozpoznać koniec ramki. Na przykład CR LF (CarriageReturn i LineFeed) czyli w skrócie Enter.
Niektóre ramki kończą się umownie tak jak sobie napisze programista protokół. Na przykład ramka może się kończyć Hashem #.
Widzisz Hash to wiesz że koniec i możesz parsować dane.
W Modbus nie ma znaku końca ramki. Ramka może mieć różną długość a sterowniki i tak rozpoznają koniec ramki.
Robi się to tak, że jeśli dostaliśmy własnie znak to wiadomo że przy tym Baudrate kolejny powinien przyjść za określony czas. Jeśli czekamy już długość czterech znaków a nowy nie nadszedł to znaczy że ramka się skończyła i można parsować dane.
Pewnie się zastanawiasz po co to tutaj.
Pomysl. Literek i cyfr może być cztery, trzy lub nawet tylko dwie (R255, R25, R2).
Gdybym dostał tylko dwa znaki "R5" i czekał na pozostałe dwa które nigdy by nie nadeszły?
Tak więc za każdym razem kiedy dostaję jakiś znak odpalam Timer z wartością 0. Jak doliczy do 199 znaczy że minęło 3,2ms
Możliwe jest też że dostanę cztery znaki w całości "R255". Wtedy zatrzymuję Timer bo by mi parsował pusty już string.
Czyli takie rozwiązanie stosuje się jeśli nie ma wyraźnego znaku końca transmisji.
Czasem używam go do zabezpieczenia transmisji w których Enter powinien się pojawić ale się nie pojawił. Wtedy najczęściej, ale nie zawsze, kasuję taki string bo to mogą być śmieci. Wszystko zależy od potrzeb urządzenia
Na końcu ciekawostka. Timer włączam dopiero w linii 104 bo nadanie samego słowa "Nowe" to już cztery znaki i Timer już by zgłosił jakiś koniec transmisji
Te wydruki "Nowe R_val= 50" tam są tylko na potrzeby podglądu i lepiej na końcu je zaremować.
-
- Posty: 58
- Rejestracja: 23 wrz 2018, 11:28
Re: Bascom hc-05 i 3 PWM jak ???
ok... timer2 to coś na podobieństwo okna czasowego , tylko nie do końca rozumiem co wywołuje przerwanie
ok ok już zauważyłem co powoduje jego uruchomienie . Czy przez to można rozumieć że jeżeli koniec ramki miał by konkretny znak to timer2 był by w zasadzie niepotrzebny
ok ok już zauważyłem co powoduje jego uruchomienie . Czy przez to można rozumieć że jeżeli koniec ramki miał by konkretny znak to timer2 był by w zasadzie niepotrzebny
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Bascom hc-05 i 3 PWM jak ???
Tak. Wtedy sprawdziłby się nawet ten pierwszy kod.
Niektóre programy oferują opcję "Dodaj znak CrLf".
Niektóre programy oferują opcję "Dodaj znak CrLf".
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Bascom hc-05 i 3 PWM jak ???
Dokładnie, był by nie potrzebny i można by było napisać ten kod inaczej ( nie znaczy lepiej lub gorzej) wtedy można by reagować na ascii 13 czyli enter lub ASCII 10 (Line feed) nowa linia itd itp.
Głównym udogodnieniem było by zwolnienie timera.
---edit----
Szybszy byłeś o dwie minuty tyle zajęło mi zrobienie herbaty
Głównym udogodnieniem było by zwolnienie timera.
---edit----
Szybszy byłeś o dwie minuty tyle zajęło mi zrobienie herbaty
-
- Posty: 58
- Rejestracja: 23 wrz 2018, 11:28
Re: Bascom hc-05 i 3 PWM jak ???
dzięki za naukę i pozdrawiam
ps. w elektronice siedzę trochę lat ... ale w tej analogowej i jeżeli będę mógł pomóc , proszę pytać , narka
ps. w elektronice siedzę trochę lat ... ale w tej analogowej i jeżeli będę mógł pomóc , proszę pytać , narka
- Henryk
- Posty: 348
- Rejestracja: 22 sty 2018, 17:20
Re: Bascom hc-05 i 3 PWM jak ???
Witam
Próbuje bawić się HC-05 na przykładzie kodu Pikaczu i jakoś nie potrafię odebrać żadnych danych .
Moduł HC-05działa ,jest sparowany z PC , jak zwieram Tx Rx w module dane przelatują z powrotem do terminala , podmieniam atmegi , ciągle coś nie tak .
Dane wysyłam binarnie .
Proszę o podpowiedź co robię źle ?
Próbuje bawić się HC-05 na przykładzie kodu Pikaczu i jakoś nie potrafię odebrać żadnych danych .
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m8def.dat"
- $crystal = 8000000
- $hwstack = 64
- $swstack = 16
- $framesize = 64
- $baud = 9600
- Config Serialin = Buffered , Size = 20
- Config Lcd = 20 * 4
- Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
- Dim Led_r As Byte , Led_g As Byte , Led_b As Byte
- Dim Serial_flag As Byte
- Dim Serial_rx(3) As Byte
- Cursor Off
- Cls
- Do
- Serial_flag = Ischarwaiting()
- If Serial_flag = 1 Then
- Inputbin Serial_rx(1) , 3
- Led_r = Serial_rx(1) , 1 'twoja led czerwona
- Led_g = Serial_rx(2) , 1 'twoja led zielona
- Led_b = Serial_rx(3) , 1 'twoja led niebieska
- End If
- Locate 1 , 1 : Lcd "R- " ; Led_r ; " "
- Locate 2 , 1 : Lcd "G- " ; Led_g ; " "
- Locate 3 , 1 : Lcd "B- " ; Led_b ; " "
- Waitms 200
- Loop
- End
Moduł HC-05działa ,jest sparowany z PC , jak zwieram Tx Rx w module dane przelatują z powrotem do terminala , podmieniam atmegi , ciągle coś nie tak .
Dane wysyłam binarnie .
Proszę o podpowiedź co robię źle ?