diff --git a/docs/library/pyb.ADC.rst b/docs/library/pyb.ADC.rst index 2e2c2070d8ea7348ca1d2b7d988aed2852744de2..8623dfc438aded1d6a1c874f4cba4b0c60399eb8 100644 --- a/docs/library/pyb.ADC.rst +++ b/docs/library/pyb.ADC.rst @@ -1,12 +1,12 @@ .. _pyb.ADC: -class ADC -- analog to digital conversion: read analog values on a pin -====================================================================== +class ADC -- analog to digital conversion +========================================= .. only:: port_pyboard Usage:: - + import pyb adc = pyb.ADC(pin) # create an analog object from a pin @@ -24,32 +24,32 @@ class ADC -- analog to digital conversion: read analog values on a pin import pyb - adc = pyb.ADC(pin) # create an analog object on one of the 4 ADC channels - val = adc.read() # read an analog value - adc.deinit() # disable the adc channel - adc.init() # enable the adc channel + adc = pyb.ADC() # create an ADC object + apin = adc.channel(pin='GP3') # create an analog pin on GP3 + val = apin() # read an analog value Constructors ------------ + .. only:: port_pyboard .. class:: pyb.ADC(pin) - + Create an ADC object associated with the given pin. This allows you to then read analog values on that pin. .. only:: port_wipy - .. class:: pyb.ADC(pin) - + .. class:: pyb.ADC(id=0, \*, bits=12) + Create an ADC object associated with the given pin. This allows you to then read analog values on that pin. For more info check the `pinout and alternate functions table. <https://raw.githubusercontent.com/wipy/wipy/master/docs/PinOUT.png>`_ .. warning:: - + ADC pin input range is 0-1.4V (being 1.8V the absolute maximum that it can withstand). When GP2, GP3, GP4 or GP5 are remapped to the ADC block, 1.8 V is the maximum. If these pins are used in digital mode, @@ -58,12 +58,12 @@ Constructors Methods ------- -.. method:: adc.read() +.. only:: port_pyboard - Read the value on the analog pin and return it. The returned value - will be between 0 and 4095. + .. method:: adc.read() -.. only:: port_pyboard + Read the value on the analog pin and return it. The returned value + will be between 0 and 4095. .. method:: adc.read_timed(buf, timer) @@ -97,15 +97,51 @@ Methods # this will take 10 seconds to finish for val in buf: # loop over all values print(val) # print the value out - + This function does not allocate any memory. .. only:: port_wipy + .. method:: adc.channel(id, *, pin) + + Create an analog pin. If only channel ID is given, the correct pin will be selected. Alternatively, + only the pin can be passed and the correct channel will be selected. Examples:: + + # all of these are equivalent and enable ADC channel 1 on GP3 + apin = adc.channel(1) + apin = adc.channel(pin='GP3') + apin = adc.channel(id=1, pin='GP3') + .. method:: adc.init() - Enable the ADC channel. + Enable the ADC block. .. method:: adc.deinit() - Disable the ADC channel. + Disable the ADC block. + +.. only:: port_wipy + + class ADCChannel --- read analog values from internal or external sources + ========================================================================= + + .. only:: port_wipy + + ADC channels can be connected to internal points of the MCU or to GPIO pins. + ADC channels are created using the ADC.channel method. + + .. method:: adcchannel() + + Fast method to read the channel value. + + .. method:: adcchannel.value() + + Read the channel value. + + .. method:: adcchannel.init() + + Re-init (and effectively enable) the ADC channel. + + .. method:: adcchannel.deinit() + + Disable the ADC channel. diff --git a/docs/wipy/quickref.rst b/docs/wipy/quickref.rst index cad6d98b0755b528734776577d17dba019823615..8376e5b4041fd63a0874f298518c3b25ca6f1a0d 100644 --- a/docs/wipy/quickref.rst +++ b/docs/wipy/quickref.rst @@ -78,8 +78,9 @@ See :ref:`pyb.ADC <pyb.ADC>`. :: from pyb import ADC - adc = ADC(1) - adc.read() # read value, 0-4095 + adc = ADC() + apin = adc.channel(pin='GP3') + apin() # read value, 0-4095 UART (serial bus) ----------------- @@ -94,21 +95,16 @@ See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.UART <pyb.UART>`. :: SPI bus ------- -See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.SPI <pyb.SPI>`. :: +See :ref:`pyb.SPI <pyb.SPI>`. :: - from pyb import Pin, SPI - - # first assign CLK, MISO, MOSI, CS to the correct pins - Pin('GP14', af=7, mode=Pin.STD) # CLK - Pin('GP15', af=7, mode=Pin.STD) # MISO - Pin('GP16', af=7, mode=Pin.STD) # MOSI - Pin('GP17', af=7, mode=Pin.STD) # NSS/CS + from pyb SPI # configure the SPI master @ 2MHz - spi = SPI(1, SPI.MASTER, baudrate=200000, polarity=0, phase=0) - spi.send('hello') - spi.recv(5) # receive 5 bytes on the bus - spi.send_recv('hello') # send a receive 5 bytes + spi = SPI(0, SPI.MASTER, baudrate=200000, polarity=0, phase=0) + spi.write('hello') + spi.read(5) # receive 5 bytes on the bus + rbuf = bytearray(5) + spi.write_readinto('hello', rbuf) # send a receive 5 bytes I2C bus ------- @@ -132,9 +128,9 @@ See :ref:`pyb.WDT <pyb.WDT>`. :: from pyb import WDT # enable the WDT with a timeout of 5s (1s is the minimum) - wdt = WDT(5000) - wdt.kick() - + wdt = WDT(timeout=5000) + wdt.feed() + Real time clock (RTC) ---------------------