Ma byś to test sterowania ręcznego posuwem tokarki, ustawienia w programie mam takie:
Dla pokrętła enkodera osi Z:
porty
- '---------------------------Enkoder pokrętła osi Z-------------------------------
- Config Pina.3 = Input 'enkoder osi Z kanał A
- Config Pina.4 = Input 'enkoder osi Z kanał B
- Config Pina.5 = Input 'enkoder osi Z kanał Index
- Config Xpin = Porta.3 , Outpull = Pullup , Sense = Low_level
- Config Xpin = Porta.4 , Outpull = Pullup , Sense = Low_level
- Config Xpin = Porta.5 , Outpull = Pullup , Sense = Low_level
- '----------------------------------------------------------------------------------
- '**********************************Enkoder pokrętła osi Z*************************
- Config Event_system = Dummy , Mux2 = Porta.3 , Qd2 = Enabled , Qdi2 = Enabled , Digflt2 = 8
- Config Tcd0 = Normal , Prescale = E2 , Event_source = E2 , Event_action = Qdec
- '*******************************************************************************
- 'odczyt pokrętła osi Z
- $nocompile
- Sub Z_os_odczyt
- If Tcd0_cnt <> Z_enkoder_tmp Then 'jesli zawartosc timera TCD0 jest różna od naszej zmiennej to
- Z_enkoder_tmp = Tcd0_cnt 'przepisz nową wartość z timera TCD0 do zmiennej enkoder_tmp
- Z_enkoder_tmp_1 = Tcd0_cnt ' / 4 ' four inpulses per one step of teh encoder so wee need only one
- If Z_enkoder_tmp_1 <> Z_enkoder_tmp_2 Then 'Jeśli zmienna Enkoder_tmp_1 jest różna od zmiennej Enkoder_tmp_2
- Z_enkoder_tmp_2 = Z_enkoder_tmp_1 'wstaw wartość zmiennej Enkoder_tmp_1 do zmiennej Enkoder_tmp_2
- End If
- End If
- End Sub
- Call Z_os_odczyt
Nie wiem jak to zrobić - czy mogę liczyć na pomoc.
pozdrawiam Jacek.