Bascom hc-05 i 3 PWM jak ???

Pytania, kody i porady dotyczące nie tylko Bascom.
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: grafii1 » 01 sty 2019, 22:10

Ok. sory mój błąd , sprawdziłem i rzeczywiście jest tak jak piszesz , sorka
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: grafii1 » 02 sty 2019, 13:23

Witam , duża część programu jest dla mnie zrozumiała ale czy można prosić o bardziej szczegółowy opis działania timer2 .
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: niveasoft » 02 sty 2019, 18:16

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.
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: grafii1 » 02 sty 2019, 20:14

ustawienia rozumiem tylko do czego , czyżby do odbioru ...
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: niveasoft » 02 sty 2019, 20:42

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 :D
Te wydruki "Nowe R_val= 50" tam są tylko na potrzeby podglądu i lepiej na końcu je zaremować.
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: grafii1 » 02 sty 2019, 21:29

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
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: niveasoft » 02 sty 2019, 21:43

Tak. Wtedy sprawdziłby się nawet ten pierwszy kod.
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 ???

Post autor: Pikczu » 02 sty 2019, 21:45

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 :lol:
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: grafii1 » 02 sty 2019, 22:00

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
Awatar użytkownika
Henryk
Posty: 348
Rejestracja: 22 sty 2018, 17:20

Re: Bascom hc-05 i 3 PWM jak ???

Post autor: Henryk » 24 lut 2019, 17:04

Witam :D
Próbuje bawić się HC-05 na przykładzie kodu Pikaczu i jakoś nie potrafię odebrać żadnych danych .
  1. $regfile = "m8def.dat"
  2. $crystal = 8000000
  3. $hwstack = 64
  4. $swstack = 16
  5. $framesize = 64
  6. $baud = 9600
  7. Config Serialin = Buffered , Size = 20
  8. Config Lcd = 20 * 4
  9. Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
  10.  
  11.  
  12. Dim Led_r As Byte , Led_g As Byte , Led_b As Byte
  13. Dim Serial_flag As Byte
  14. Dim Serial_rx(3) As Byte
  15. Cursor Off
  16. Cls
  17.  
  18. Do
  19.  
  20.  Serial_flag = Ischarwaiting()
  21.  
  22.     If Serial_flag = 1 Then
  23.      Inputbin Serial_rx(1) , 3
  24.    Led_r = Serial_rx(1) , 1       'twoja led czerwona
  25.    Led_g = Serial_rx(2) , 1       'twoja led zielona
  26.    Led_b = Serial_rx(3) , 1       'twoja led niebieska
  27.    End If
  28.  
  29.    Locate 1 , 1 : Lcd "R- " ; Led_r ; "  "
  30.    Locate 2 , 1 : Lcd "G- " ; Led_g ; "  "
  31.    Locate 3 , 1 : Lcd "B- " ; Led_b ; "  "
  32.    Waitms 200
  33.     Loop
  34.  
  35.  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 ?
ODPOWIEDZ