Estoy intentando configurar el chip para que detecte un flanco ascendente en un pin y luego comience a emitir una onda cuadrada en el siguiente pin más.
Tengo la interrupción activada pero no sé cómo decir "si la interrupción se activa, ejecuta el generador de ondas". He revisado la hoja de datos pero parece que no puedo entenderlo.
; New asm data section
AREA square_func, CODE, READONLY
; Export back to C
EXPORT square_wave
ALIGN
square_wave
LDR R1,=0x2009c000 ; Pointer to base of port 0
LDR R2,=0x00000001 ; To control pin 0
LDR R3,=0x00000001 ; For XOR to invert pin 0
STR R2,[R1,#0x00] ; Set pin 0 to output (base+0x00)
STR R2,[R1,#0x14] ; Turn on pin 0
LDR R4,=749 ; Set up timer
LDR R6,=0x40028090 ; Interupt pointer for port 0
LDR R7,=0x00000002 ; For pin 1
STR R7,[R6] ; Set pin 1 to rising edge interrupt
loop
SUB R4, 1 ; Decrement timer
CMP R4, 0 ; Compare to 0
BNE loop ; If !0, keep looping
LDR R4,=749 ; Reset timer
EOR R2,R3 ; Invert bits
STR R2,[R1,#0x14] ; Invert pin
MUL R3,R3,R3 ; To waste cycles, ignore (1*1=1)
B loop ; Restart loop
ALIGN