summaryrefslogtreecommitdiffstatshomepage
path: root/tests/wipy/adc.py
blob: 50a2b3d722e7349c506757746fafd3ce7b8fd64f (plain) (blame)
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
'''
ADC test for the CC3200 based boards.
'''

from pyb import ADC
from pyb import Pin
import os

machine = os.uname().machine
if 'LaunchPad' in machine:
    adc_pin = 'GP5'
    adc_channel = 3
elif 'WiPy' in machine:
    adc_pin = 'GP3'
    adc_channel = 1
else:
    raise Exception('Board not supported!')

adc = ADC(0)
print(adc)
adc = ADC()
print(adc)
adc = ADC(0, bits=12)
print(adc)

apin = adc.channel(adc_channel)
print(apin)
apin = adc.channel(id=adc_channel)
print(apin)
apin = adc.channel(adc_channel, pin=adc_pin)
print(apin)
apin = adc.channel(id=adc_channel, pin=adc_pin)
print(apin)

print(apin.value() > 3000)
print(apin() > 3000)

# de-init must work
apin.deinit()
print(apin)

adc.deinit()
print(adc)
print(apin)
adc.init()
print(adc)
print(apin)
apin.init()
print(apin)
print(apin() > 3000)

# check for memory leaks...
for i in range (0, 1000):
    adc = ADC()
    apin = adc.channel(adc_channel)

# next ones should raise
try:
    adc = ADC(bits=17)
except:
    print('Exception')

try:
    adc = ADC(id=1)
except:
    print('Exception')

try:
    adc = ADC(0, 16)
except:
    print('Exception')

adc = ADC()
try:
    apin = adc.channel(4)
except:
    print('Exception')

try:
    apin = adc.channel(-1)
except:
    print('Exception')

try:
    apin = adc.channel(0, pin='GP3')
except:
    print('Exception')

apin = adc.channel(1)
apin.deinit()
try:
    apin()
except:
    print('Exception')

try:
    apin.value()
except:
    print('Exception')

adc.deinit()
try:
    apin.value()
except:
    print('Exception')

try:
    apin = adc.channel(1)
except:
    print('Exception')

# re-init must work
adc.init()
apin.init()
print(apin)
print(apin() > 3000)