LPC2103 >> Assembly
Timer1
參考資料:
1. pdf
暫存器
main.s
.equ IODIR, 0xe0028008 .equ IOCLR, 0xe002800c .equ IOSET, 0xe0028004 .equ PINSEL0, 0xe002c000 .equ EXTINT, 0xe01fc140 .equ VICIntEnable, 0xfffff010 .equ T1PR, 0xe000800c .equ T1MR0, 0xe0008018 .equ T1MCR, 0xe0008014 .equ T1TCR, 0xe0008004 .equ T1CTCR, 0xe0008070 .equ T1IR, 0xe0008000 .data blink: .dcb 1 .text .align 2 .global _start _start: b reset _undef: b . _swi: b . _pabort: b . _dabort: b . _reserved: b . _irq: b irq_handler _fiq: b . reset: mrs r0, cpsr bic r0, #0x80 msr cpsr_c, r0 ldr r0, =T1PR ldr r1, =0x63 str r1, [r0] ldr r0, =T1MR0 ldr r1, =5000 str r1, [r0] ldr r0, =T1MCR ldr r1, [r0] orr r1, #0x03 str r1, [r0] ldr r0, =T1TCR ldr r1, =0x02 str r1, [r0] ldr r0, =T1TCR ldr r1, =0x01 str r1, [r0] ldr r0, =VICIntEnable ldr r1, =(1 << 5) str r1, [r0] ldr r0, =IODIR ldr r1, =(1 << 22) str r1, [r0] ldr r0, =IOCLR ldr r1, =(1 << 22) str r1, [r0] ldr r0, =blink ldr r1, =0x00 str r1, [r0] b . irq_handler: ldr r0, =blink ldr r1, [r0] cmp r1, #0x00 beq 1f ldr r0, =IOSET ldr r1, =(1 << 22) str r1, [r0] b 2f 1: ldr r0, =IOCLR ldr r1, =(1 << 22) str r1, [r0] 2: ldr r0, =blink ldr r1, [r0] eor r1, #0xff str r1, [r0] ldr r0, =T1IR ldr r1, =0x01 str r1, [r0] subs pc, lr, #4 .end
完成