Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
raspberrypipico:raspberrypipico [2021/03/11 19:06] admin [Programmable I/O] |
raspberrypipico:raspberrypipico [2021/03/12 13:10] admin [Programmable I/O] |
||
---|---|---|---|
Line 106: | Line 106: | ||
---- | ---- | ||
==== Programmable I/O ==== | ==== Programmable I/O ==== | ||
+ | [[raspberrypipico: | ||
+ | |||
+ | ---- | ||
+ | [[https:// | ||
The RP Pico has eight state machines (0-7) including these parameters: | The RP Pico has eight state machines (0-7) including these parameters: | ||
- state machine number\\ | - state machine number\\ | ||
Line 141: | Line 145: | ||
==The Nine State Machine Instructions== | ==The Nine State Machine Instructions== | ||
- | * in – Shifts 1 word of 32 bits at a time into the ISR from another location | + | * in – Shifts 1 word of 32 bits at a time into the ISR |
* out – Shifts 1 word of 32 bits from the OSR e.g. out(pins, 4) | * out – Shifts 1 word of 32 bits from the OSR e.g. out(pins, 4) | ||
- | * push – Sends data to the RX (input) | + | * push – Sends data to the RX (input) |
* pull() – gets data from the TX (output), | * pull() – gets data from the TX (output), | ||
* mov() – moves data x or y in register, e.g. mov(y, osr) osr=output shift register | * mov() – moves data x or y in register, e.g. mov(y, osr) osr=output shift register | ||
- | * irq – Sets or clears interrupt flag | + | * irq – Sets or clears interrupt flag e.g. irq(rel(0)) in python: sm.irq(myFunction) |
* set() [] – Writes data to destination, | * set() [] – Writes data to destination, | ||
* wait – Pauses until a defined action happens | * wait – Pauses until a defined action happens | ||
Line 153: | Line 157: | ||
- nop () [] - no operations, delays 0 to 31 circles\\ | - nop () [] - no operations, delays 0 to 31 circles\\ | ||
- wrap_target() and wrap () - resets program counter and starts over again\\ | - wrap_target() and wrap () - resets program counter and starts over again\\ | ||
- | - irq() - interrupt, e.g. irq(rel(0)) in python: sm.irq(myFunction) | ||
- lable() - sts a lable label(" | - lable() - sts a lable label(" | ||
- jmp () - jumps conditions: | - jmp () - jumps conditions: |