summaryrefslogtreecommitdiffstatshomepage
path: root/docs/pyboard/quickref.rst
diff options
context:
space:
mode:
authorDaniel Campora <daniel@wipy.io>2015-05-27 13:59:59 +0200
committerDamien George <damien.p.george@gmail.com>2015-06-04 23:44:35 +0100
commit7ca1bd314bd5e3146f8c868f91af54d17dd04d45 (patch)
treec30c7ccb9a8437a9e69f2716f196b87f27beca5d /docs/pyboard/quickref.rst
parent031278f661e5d285c56359e355a96161bf6e1a9f (diff)
downloadmicropython-7ca1bd314bd5e3146f8c868f91af54d17dd04d45.tar.gz
micropython-7ca1bd314bd5e3146f8c868f91af54d17dd04d45.zip
docs: Generate a separate docs build for each port.
Using Damien's approach where conf.py and topindex.html are shared by all ports.
Diffstat (limited to 'docs/pyboard/quickref.rst')
-rw-r--r--docs/pyboard/quickref.rst152
1 files changed, 152 insertions, 0 deletions
diff --git a/docs/pyboard/quickref.rst b/docs/pyboard/quickref.rst
new file mode 100644
index 0000000000..2a1429cb05
--- /dev/null
+++ b/docs/pyboard/quickref.rst
@@ -0,0 +1,152 @@
+.. _quickref:
+
+Quick reference for the pyboard
+===============================
+
+.. image:: http://micropython.org/resources/pybv10-pinout.jpg
+ :alt: PYBv1.0 pinout
+ :width: 700px
+
+General board control
+---------------------
+
+See :mod:`pyb`. ::
+
+ import pyb
+
+ pyb.delay(50) # wait 50 milliseconds
+ pyb.millis() # number of milliseconds since bootup
+ pyb.repl_uart(pyb.UART(1, 9600)) # duplicate REPL on UART(1)
+ pyb.wfi() # pause CPU, waiting for interrupt
+ pyb.freq() # get CPU and bus frequencies
+ pyb.freq(60000000) # set CPU freq to 60MHz
+ pyb.stop() # stop CPU, waiting for external interrupt
+
+LEDs
+----
+
+See :ref:`pyb.LED <pyb.LED>`. ::
+
+ from pyb import LED
+
+ led = LED(1) # red led
+ led.toggle()
+ led.on()
+ led.off()
+
+Pins and GPIO
+-------------
+
+See :ref:`pyb.Pin <pyb.Pin>`. ::
+
+ from pyb import Pin
+
+ p_out = Pin('X1', Pin.OUT_PP)
+ p_out.high()
+ p_out.low()
+
+ p_in = Pin('X2', Pin.IN, Pin.PULL_UP)
+ p_in.value() # get value, 0 or 1
+
+Servo control
+-------------
+
+See :ref:`pyb.Servo <pyb.Servo>`. ::
+
+ from pyb import Servo
+
+ s1 = Servo(1) # servo on position 1 (X1, VIN, GND)
+ s1.angle(45) # move to 45 degrees
+ s1.angle(-60, 1500) # move to -60 degrees in 1500ms
+ s1.speed(50) # for continuous rotation servos
+
+External interrupts
+-------------------
+
+See :ref:`pyb.ExtInt <pyb.ExtInt>`. ::
+
+ from pyb import Pin, ExtInt
+
+ callback = lambda e: print("intr")
+ ext = ExtInt(Pin('Y1'), ExtInt.IRQ_RISING, Pin.PULL_NONE, callback)
+
+Timers
+------
+
+See :ref:`pyb.Timer <pyb.Timer>`. ::
+
+ from pyb import Timer
+
+ tim = Timer(1, freq=1000)
+ tim.counter() # get counter value
+ tim.freq(0.5) # 0.5 Hz
+ tim.callback(lambda t: pyb.LED(1).toggle())
+
+PWM (pulse width modulation)
+----------------------------
+
+See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.Timer <pyb.Timer>`. ::
+
+ from pyb import Pin, Timer
+
+ p = Pin('X1') # X1 has TIM2, CH1
+ tim = Timer(2, freq=1000)
+ ch = tim.channel(1, Timer.PWM, pin=p)
+ ch.pulse_width_percent(50)
+
+ADC (analog to digital conversion)
+----------------------------------
+
+See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.ADC <pyb.ADC>`. ::
+
+ from pyb import Pin, ADC
+
+ adc = ADC(Pin('X19'))
+ adc.read() # read value, 0-4095
+
+DAC (digital to analog conversion)
+----------------------------------
+
+See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.DAC <pyb.DAC>`. ::
+
+ from pyb import Pin, DAC
+
+ dac = DAC(Pin('X5'))
+ dac.write(120) # output between 0 and 255
+
+UART (serial bus)
+-----------------
+
+See :ref:`pyb.UART <pyb.UART>`. ::
+
+ from pyb import UART
+
+ uart = UART(1, 9600)
+ uart.write('hello')
+ uart.read(5) # read up to 5 bytes
+
+SPI bus
+-------
+
+See :ref:`pyb.SPI <pyb.SPI>`. ::
+
+ from pyb import SPI
+
+ spi = SPI(1, SPI.MASTER, baudrate=200000, polarity=1, phase=0)
+ spi.send('hello')
+ spi.recv(5) # receive 5 bytes on the bus
+ spi.send_recv('hello') # send a receive 5 bytes
+
+I2C bus
+-------
+
+See :ref:`pyb.I2C <pyb.I2C>`. ::
+
+ from pyb import I2C
+
+ i2c = I2C(1, I2C.MASTER, baudrate=100000)
+ i2c.scan() # returns list of slave addresses
+ i2c.send('hello', 0x42) # send 5 bytes to slave with address 0x42
+ i2c.recv(5, 0x42) # receive 5 bytes from slave
+ i2c.mem_read(2, 0x42, 0x10) # read 2 bytes from slave 0x42, slave memory 0x10
+ i2c.mem_write('xy', 0x42, 0x10) # write 2 bytes to slave 0x42, slave memory 0x10