Skip to content

Commit 4edd46a

Browse files
IhorNehrutsaIhorNehrutsa
authored andcommitted
Update AS5x47.py
1 parent 39aac16 commit 4edd46a

File tree

1 file changed

+28
-31
lines changed

1 file changed

+28
-31
lines changed

ports/esp32/modules/AS5x47.py

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ def __init__(self, spi, spi_baudrate, cs):
185185
self.tclk_2_us = 1_000_000 // (spi_baudrate * 2) # tH = tclk / 2 ns # Time between last falling edge of CLK and rising edge of cs
186186
if self.tclk_2_us == 0:
187187
self.tclk_2_us = 1
188-
print('self.tclk_2_us:', self.tclk_2_us)
188+
#print('self.tclk_2_us:', self.tclk_2_us)
189189
self.cs = cs # active is low
190190

191191
self._write_command = bytearray(b'\xC0\x00')
@@ -199,31 +199,28 @@ def __init__(self, spi, spi_baudrate, cs):
199199
self.error = self.NO_error
200200

201201
self._angle14 = 0
202-
# set _angle14 !!!
203-
self.readAngleCom()
202+
self.readAngleCom() # set _angle14 !!!
204203
self.readAngleCom()
205204
self.readAngleCom()
206205

207206
self._angle14_prev = self._angle14
208-
if self._angle14_prev >= 8192:
207+
if self._angle14_prev >= 0x2000:
209208
self._angle14_prev = 0
210209

211210
self._angle_major = 0
212211

213212
# ------------------
214213
@micropython.native
215214
def _readAngleInfinity(self, readAngleFunc):
216-
readAngleFunc() # 8192 == 2 ** 14 // 2
215+
readAngleFunc()
217216
if not self.error:
218217
delta = self._angle14 - self._angle14_prev
219-
if delta >= 8192:
220-
self._angle_major -= 360
221-
#print(' self._angle14, self._angle14_prev, delta', self._angle14, self._angle14_prev, delta)
222-
elif delta <= -8192:
223-
self._angle_major += 360
224-
#print(' self._angle14, self._angle14_prev, delta', self._angle14, self._angle14_prev, delta)
218+
if delta >= 0x2000:
219+
self._angle_major -= 0x4000
220+
elif delta <= -0x2000:
221+
self._angle_major += 0x4000
225222
self._angle14_prev = self._angle14
226-
return self._angle14 * __to_angle + self._angle_major
223+
return (self._angle14 + self._angle_major) * __to_angle
227224
else:
228225
return None
229226

@@ -249,14 +246,14 @@ def writeData(self, command, value):
249246
def checkReceivedFrame(self):
250247
if self.received_frame.EF:
251248
#raise RuntimeError('received_frame.EF on 0x%X' % self.command_frame.ADDR)
252-
print('received_frame.EF on 0x%X' % self.command_frame.ADDR)
249+
#print('received_frame.EF on 0x%X' % self.command_frame.ADDR)
253250
self.error = self.EF_error
254251
elif self.received_frame.PARD != is_even(self.received_frame.DATA, __MSB_mask):
255252
#raise ValueError('received_frame.PARD != is_even on 0x%X' % self.command_frame.ADDR)
256-
print('received_frame.PARD != is_even on 0x%X' % self.command_frame.ADDR)
253+
#print('received_frame.PARD != is_even on 0x%X' % self.command_frame.ADDR)
257254
self.error = self.PARD_error
258255
elif self._received_data == b'\xff\xff':
259-
print("_received_data == b'\xff\xff'")
256+
#print("_received_data == b'\xff\xff'")
260257
self.error = self.DATA_error
261258
else:
262259
self.error = self.NO_error
@@ -317,22 +314,22 @@ def writeRegister(self, registerAddress, registerValue):
317314

318315
self.writeData(self.command_frame, self.data_frame)
319316

320-
# ------------------
321-
@micropython.viper
322-
def readAngle(self):
323-
self.readRegister(ANGLEUNC)
324-
if not self.error:
325-
self._angle14 = struct(addressof(self._received_data), ANGLEUNC_struct, BIG_ENDIAN).CORDICANG
326-
327-
@micropython.viper
328-
def readAngleAgain(self):
329-
self.readDataAgain()
330-
if not self.error:
331-
self._angle14 = struct(addressof(self._received_data), ANGLEUNC_struct, BIG_ENDIAN).CORDICANG
332-
333-
@micropython.viper
334-
def readAngleInfinity(self):
335-
return self._readAngleInfinity(self.readAngleAgain)
317+
# # ------------------
318+
# @micropython.viper
319+
# def readAngle(self):
320+
# self.readRegister(ANGLEUNC)
321+
# if not self.error:
322+
# self._angle14 = struct(addressof(self._received_data), ANGLEUNC_struct, BIG_ENDIAN).CORDICANG
323+
#
324+
# @micropython.viper
325+
# def readAngleAgain(self):
326+
# self.readDataAgain()
327+
# if not self.error:
328+
# self._angle14 = struct(addressof(self._received_data), ANGLEUNC_struct, BIG_ENDIAN).CORDICANG
329+
#
330+
# @micropython.viper
331+
# def readAngleInfinity(self):
332+
# return self._readAngleInfinity(self.readAngleAgain)
336333

337334
# ------------------
338335
@micropython.viper

0 commit comments

Comments
 (0)