From 861fad581975640dc943990ee889f3dc7cd8eb5d Mon Sep 17 00:00:00 2001 From: Daniel Campora Date: Tue, 15 Sep 2015 19:54:58 +0200 Subject: [PATCH] docs: Adapt WiPy's ADC doc and quickref to the new API. --- docs/library/pyb.ADC.rst | 74 +++++++++++++++++++++++++++++----------- docs/wipy/quickref.rst | 30 +++++++--------- 2 files changed, 68 insertions(+), 36 deletions(-) diff --git a/docs/library/pyb.ADC.rst b/docs/library/pyb.ADC.rst index 2e2c2070d8..8623dfc438 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. `_ .. 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,13 +58,13 @@ Constructors Methods ------- -.. method:: adc.read() - - Read the value on the analog pin and return it. The returned value - will be between 0 and 4095. - .. only:: port_pyboard + .. method:: adc.read() + + 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) Read analog values into ``buf`` at a rate set by the ``timer`` object. @@ -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 cad6d98b07..8376e5b404 100644 --- a/docs/wipy/quickref.rst +++ b/docs/wipy/quickref.rst @@ -78,8 +78,9 @@ See :ref:`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 ` and :ref:`pyb.UART `. :: SPI bus ------- -See :ref:`pyb.Pin ` and :ref:`pyb.SPI `. :: +See :ref:`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 `. :: 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) ---------------------