summaryrefslogtreecommitdiff
path: root/examples/asmled.py
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2018-02-27 22:03:52 -0500
committerGitHub <noreply@github.com>2018-02-27 22:03:52 -0500
commit568c04e6afa8016062f685b2198c0209f62827f4 (patch)
treed07b76119f715add462983b335797adf64b61249 /examples/asmled.py
parent6a2379fd0bfe10017d8abc5c36ef1d470c0d9b27 (diff)
parentea633117d01d94e8d56ed94344e4b3e46b4eef03 (diff)
Merge pull request #650 from tannewt/merge_2x3.0.0-alpha.2
Merge in commits from 2.x branch.
Diffstat (limited to 'examples/asmled.py')
-rw-r--r--examples/asmled.py85
1 files changed, 0 insertions, 85 deletions
diff --git a/examples/asmled.py b/examples/asmled.py
deleted file mode 100644
index 917d9ba03..000000000
--- a/examples/asmled.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# flash LED #1 using inline assembler
-# this version is overly verbose and uses word stores
-@micropython.asm_thumb
-def flash_led(r0):
- movw(r1, (stm.GPIOA + stm.GPIO_BSRRL) & 0xffff)
- movt(r1, ((stm.GPIOA + stm.GPIO_BSRRL) >> 16) & 0x7fff)
- movw(r2, 1 << 13)
- movt(r2, 0)
- movw(r3, 0)
- movt(r3, 1 << 13)
-
- b(loop_entry)
-
- label(loop1)
-
- # turn LED on
- str(r2, [r1, 0])
-
- # delay for a bit
- movw(r4, 5599900 & 0xffff)
- movt(r4, (5599900 >> 16) & 0xffff)
- label(delay_on)
- sub(r4, r4, 1)
- cmp(r4, 0)
- bgt(delay_on)
-
- # turn LED off
- str(r3, [r1, 0])
-
- # delay for a bit
- movw(r4, 5599900 & 0xffff)
- movt(r4, (5599900 >> 16) & 0xffff)
- label(delay_off)
- sub(r4, r4, 1)
- cmp(r4, 0)
- bgt(delay_off)
-
- # loop r0 times
- sub(r0, r0, 1)
- label(loop_entry)
- cmp(r0, 0)
- bgt(loop1)
-
-# flash LED #2 using inline assembler
-# this version uses half-word sortes, and the convenience assembler operation 'movwt'
-@micropython.asm_thumb
-def flash_led_v2(r0):
- # get the GPIOA address in r1
- movwt(r1, stm.GPIOA)
-
- # get the bit mask for PA14 (the pin LED #2 is on)
- movw(r2, 1 << 14)
-
- b(loop_entry)
-
- label(loop1)
-
- # turn LED on
- strh(r2, [r1, stm.GPIO_BSRRL])
-
- # delay for a bit
- movwt(r4, 5599900)
- label(delay_on)
- sub(r4, r4, 1)
- cmp(r4, 0)
- bgt(delay_on)
-
- # turn LED off
- strh(r2, [r1, stm.GPIO_BSRRH])
-
- # delay for a bit
- movwt(r4, 5599900)
- label(delay_off)
- sub(r4, r4, 1)
- cmp(r4, 0)
- bgt(delay_off)
-
- # loop r0 times
- sub(r0, r0, 1)
- label(loop_entry)
- cmp(r0, 0)
- bgt(loop1)
-
-flash_led(5)
-flash_led_v2(5)