-
Notifications
You must be signed in to change notification settings - Fork 0
/
rda.py
90 lines (71 loc) · 1.67 KB
/
rda.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
###===========================================================###
###================ RDA5807M>><<MicroPython ================###
###===========================================================###
from machine import I2C, Pin
iic = I2C(sda = Pin(4), scl = Pin(5), freq = 400000)
reg = {2:0xc001, 3:0x0008, 5:0x0081, 7:0x4201}
i2r = iic.readfrom_mem
i2w = iic.writeto_mem
bit = bytearray(2)
stf = 880
rda = 17
vmx = 15
def urip():
for b in reg:
i2w(17, b, int.to_bytes(reg[b], 2, 'big'))
freq(stf)
def freq(mhz):
mhz = (mhz * 100) - 76000
i2w(17, 8, int.to_bytes(mhz, 2, 'big'))
def mute():
val = i2r(17, 2, 2)
bit[1] = val[1]
if ((val[0] >> 4) >> 2) & 1:
bit[0] = val[0] - 64
else:
bit[0] = val[0] + 64
i2w(17, 2, bit)
def bass():
val = i2r(17, 2, 2)
bit[1] = val[1]
if not((val[0] >> 4) & 1):
bit[0] = val[0] + 16
i2w(17, 2, bit)
def siji():
val = i2r(17, 2, 2)
bit[1] = val[1]
if not((val[0] >> 4) & 2):
bit[0] = val[0] + 32
i2w(17, 2, bit)
def loro():
val = i2r(17, 2, 2)
bit[1] = val[1]
if ((val[0] >> 4) & 2) > 1:
bit[0] = val[0] - 32
i2w(17, 2, bit)
def rata():
val = i2r(17, 2, 2)
bit[1] = val[1]
if (val[0] >> 4) & 1:
bit[0] = val[0] - 16
i2w(17, 2, bit)
def mati():
i2w(17, 2, b'\x00\x00')
def volN(N):
val = i2r(17, 5, 2)
bit[0] = val[0]
bit[1] = 128 + N
i2w(17, 5, bit)
def volU():
val = i2r(17, 5, 2)
bit[1] = val[1]+1
if val[1]&15 == vmx:
bit[1] -= 1
i2w(17, 5, bit)
def volD():
val = i2r(17, 5, 2)
bit[1] = val[1]
if val[1]&15 > 0:
bit[1] -= 1
i2w(17, 5, bit)
###===©===============================================ls.18===###