Prog 2 modified to swap between LEDs
This commit is contained in:
parent
78ada02dfa
commit
48cb4f349c
|
@ -1,6 +1,6 @@
|
||||||
:10C0000031400004B240805A2001F240F700220083
|
:10C0000031400004B240805A2001F240F700220083
|
||||||
:10C01000F24060002100F24061002100F240C200C5
|
:10C01000F24060002100F24061002100F240420045
|
||||||
:10C020002100F240C3002100F24014002100F24040
|
:10C020002100F24043002100F24014002100F240C0
|
||||||
:10C0300015002100F24046002100F2404700210097
|
:10C0300015002100F24046002100F2404700210097
|
||||||
:04C0400032D01000EA
|
:04C0400032D01000EA
|
||||||
:02FFFE0000C041
|
:02FFFE0000C041
|
||||||
|
|
|
@ -9,3 +9,11 @@ Note to self:
|
||||||
program will not run without exiting
|
program will not run without exiting
|
||||||
- max value of a word is 2^16 = 65536, so halving blink rate by double dec count of 40000
|
- max value of a word is 2^16 = 65536, so halving blink rate by double dec count of 40000
|
||||||
means adding another decrementation of 40000 in another register
|
means adding another decrementation of 40000 in another register
|
||||||
|
|
||||||
|
off -> red -> green -> both -> off
|
||||||
|
00 -> 01 -> 10 -> 11 -> 00
|
||||||
|
0x00 -> 0x01 -> 0x40 -> 0x41 -> 0x00
|
||||||
|
0000 0000 -> 0000 0001 -> 0100 0000 -> 0100 0001 -> 0000 0000
|
||||||
|
xor 0x01 xor 0x41 xor 0x01 xor 0x41
|
||||||
|
xor 0x40 xor 0x40 xor 0x40
|
||||||
|
|
||||||
|
|
|
@ -4,22 +4,24 @@
|
||||||
RESET:
|
RESET:
|
||||||
mov.w #0x400, SP
|
mov.w #0x400, SP
|
||||||
mov.w #WDTPW|WDTHOLD, &WDTCTL
|
mov.w #WDTPW|WDTHOLD, &WDTCTL
|
||||||
mov.b #11110111b, &P1DIR
|
mov.b #11110111b, &P1DIR ; all pins outputs except P1.3
|
||||||
mov.b #01001001b, &P1OUT
|
mov.b #01001001b, &P1OUT ; LED1, LED2 on, P1.3 HI (?)
|
||||||
mov.b #00001000b, &P1REN
|
mov.b #00001000b, &P1REN ; enable resistor for P1.3
|
||||||
mov.b #00001000b, &P1IE
|
mov.b #00001000b, &P1IE ; P1.3 set as an interrupt
|
||||||
mov.w #0x0049, R7
|
mov.w #0x0049, R7 ; R7 = 0000 0000 0100 1001
|
||||||
mov.b R7, &P1OUT
|
mov.b R7, &P1OUT ; LED1, LED2 on, P1.3 HI (?)
|
||||||
EINT
|
mov.b #0x0041, R8 ; value to xor with R7
|
||||||
|
EINT ; enable interrupts
|
||||||
bis.w #CPUOFF, SR
|
bis.w #CPUOFF, SR
|
||||||
PUSH:
|
PUSH:
|
||||||
xor.w #0000000001000001b, R7
|
xor.w R8, R7
|
||||||
mov.b R7, &P1OUT
|
xor.w #0x0040, R8 ; 0x0041 -> 0x0001 -> 0x0041
|
||||||
bic.b #00001000b, &P1IFG
|
mov.b R7, &P1OUT ; set LEDs to new state
|
||||||
reti
|
bic.b #00001000b, &P1IFG ; interrupt flag P1.3 set to 0
|
||||||
|
reti ; return from interrupt
|
||||||
|
|
||||||
org 0xffe4
|
org 0xffe4
|
||||||
dw PUSH
|
dw PUSH ; interrupt from button goes here
|
||||||
|
|
||||||
org 0xfffe
|
org 0xfffe
|
||||||
dw RESET
|
dw RESET ; interrupt from reset button goes here
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
:10C0000031400004B240805A2001F240F700220083
|
:10C0000031400004B240805A2001F240F700220083
|
||||||
:10C01000F24049002100F2422700F2422500374059
|
:10C01000F24049002100F2422700F2422500374059
|
||||||
:10C020004900C247210032D232D0100037E041002F
|
:10C020004900C24721007840410032D232D010008E
|
||||||
:0AC03000C2472100F2C223000013F2
|
:10C0300007E838E04000C2472100F2C223000013A5
|
||||||
:02FFE4002CC02F
|
:02FFE40030C02B
|
||||||
:02FFFE0000C041
|
:02FFFE0000C041
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|
Loading…
Reference in New Issue