Fix: 修复MicroPython MixGoAI和Microbit下一些py异常同时格式化代码
This commit is contained in:
@@ -1,58 +1,60 @@
|
||||
import time,board
|
||||
|
||||
import time, board
|
||||
|
||||
|
||||
def read_data(pin_name):
|
||||
data=[]
|
||||
j=0
|
||||
time.sleep_ms(1200)
|
||||
N1 = board.pin(pin_name, board.GPIO.OUT)
|
||||
N1.value(0)
|
||||
time.sleep_ms(20)
|
||||
N1.value(1)
|
||||
time.sleep_us(30)
|
||||
N1 =board.pin(pin_name, board.GPIO.IN)
|
||||
T1 = time.ticks_us()
|
||||
while N1.value()==0:
|
||||
continue
|
||||
while N1.value()==1:
|
||||
T2 =time.ticks_us()
|
||||
if time.ticks_diff(T2, T1) >200000:
|
||||
#raise ValueError("[MixNo]:Sensor read error")
|
||||
break
|
||||
continue
|
||||
while j<40:
|
||||
k=0
|
||||
while N1.value()==0:
|
||||
continue
|
||||
while N1.value()==1:
|
||||
k+=1
|
||||
if k>100:break
|
||||
if k<15:
|
||||
data.append(0)
|
||||
else:
|
||||
data.append(1)
|
||||
j=j+1
|
||||
del N1
|
||||
humidity_bit=data[0:8]
|
||||
humidity_point_bit=data[8:16]
|
||||
temperature_bit=data[16:24]
|
||||
temperature_point_bit=data[24:32]
|
||||
check_bit=data[32:40]
|
||||
humidity=0
|
||||
humidity_point=0
|
||||
temperature=0.0
|
||||
temperature_point=0
|
||||
check=0
|
||||
for i in range(8):
|
||||
humidity+=humidity_bit[i]*2**(7-i)
|
||||
humidity_point+=humidity_point_bit[i]*2**(7-i)
|
||||
temperature+=temperature_bit[i]*2**(7-i)
|
||||
temperature_point+=temperature_point_bit[i]*2**(7-i)
|
||||
check+=check_bit[i]*2**(7-i)
|
||||
tmp=humidity+humidity_point+temperature+temperature_point
|
||||
#print(humidity_point,temperature_point)
|
||||
if check==tmp:
|
||||
#print('temperature is',temperature,'-wet is',humidity,'%')
|
||||
return (temperature+temperature_point/10,humidity)
|
||||
else:
|
||||
#print('Error:',humidity,humidity_point,temperature,temperature_point,check)
|
||||
return (None,None)
|
||||
data = []
|
||||
j = 0
|
||||
time.sleep_ms(1200)
|
||||
N1 = board.pin(pin_name, board.GPIO.OUT)
|
||||
N1.value(0)
|
||||
time.sleep_ms(20)
|
||||
N1.value(1)
|
||||
time.sleep_us(30)
|
||||
N1 = board.pin(pin_name, board.GPIO.IN)
|
||||
T1 = time.ticks_us()
|
||||
while N1.value() == 0:
|
||||
continue
|
||||
while N1.value() == 1:
|
||||
T2 = time.ticks_us()
|
||||
if time.ticks_diff(T2, T1) > 200000:
|
||||
# raise ValueError("[MixNo]:Sensor read error")
|
||||
break
|
||||
continue
|
||||
while j < 40:
|
||||
k = 0
|
||||
while N1.value() == 0:
|
||||
continue
|
||||
while N1.value() == 1:
|
||||
k += 1
|
||||
if k > 100:
|
||||
break
|
||||
if k < 15:
|
||||
data.append(0)
|
||||
else:
|
||||
data.append(1)
|
||||
j = j + 1
|
||||
del N1
|
||||
humidity_bit = data[0:8]
|
||||
humidity_point_bit = data[8:16]
|
||||
temperature_bit = data[16:24]
|
||||
temperature_point_bit = data[24:32]
|
||||
check_bit = data[32:40]
|
||||
humidity = 0
|
||||
humidity_point = 0
|
||||
temperature = 0.0
|
||||
temperature_point = 0
|
||||
check = 0
|
||||
for i in range(8):
|
||||
humidity += humidity_bit[i] * 2 ** (7 - i)
|
||||
humidity_point += humidity_point_bit[i] * 2 ** (7 - i)
|
||||
temperature += temperature_bit[i] * 2 ** (7 - i)
|
||||
temperature_point += temperature_point_bit[i] * 2 ** (7 - i)
|
||||
check += check_bit[i] * 2 ** (7 - i)
|
||||
tmp = humidity + humidity_point + temperature + temperature_point
|
||||
# print(humidity_point,temperature_point)
|
||||
if check == tmp:
|
||||
# print('temperature is',temperature,'-wet is',humidity,'%')
|
||||
return (temperature + temperature_point / 10, humidity)
|
||||
else:
|
||||
# print('Error:',humidity,humidity_point,temperature,temperature_point,check)
|
||||
return (None, None)
|
||||
|
||||
Reference in New Issue
Block a user