LPC2103 >> Assembly
Timer3
參考資料:
1. pdf
暫存器
main.s
.equ IODIR, 0xe0028008 .equ IOCLR, 0xe002800c .equ IOSET, 0xe0028004 .equ PINSEL0, 0xe002c000 .equ EXTINT, 0xe01fc140 .equ VICIntEnable, 0xfffff010 .equ T3PR, 0xe007400c .equ T3MR0, 0xe0074018 .equ T3MCR, 0xe0074014 .equ T3TCR, 0xe0074004 .equ T3CTCR, 0xe0074070 .equ T3IR, 0xe0074000 .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, =T3PR ldr r1, =0x63 str r1, [r0] ldr r0, =T3MR0 ldr r1, =5000 str r1, [r0] ldr r0, =T3MCR ldr r1, [r0] orr r1, #0x03 str r1, [r0] ldr r0, =T3TCR ldr r1, =0x02 str r1, [r0] ldr r0, =T3TCR ldr r1, =0x01 str r1, [r0] ldr r0, =VICIntEnable ldr r1, =(1 << 27) 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, =T3IR ldr r1, =0x01 str r1, [r0] subs pc, lr, #4 .end
完成