diff options
Diffstat (limited to 'examples/asmled.py')
| -rw-r--r-- | examples/asmled.py | 85 |
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) |
