Hello,
I am trying to use assembly example given in the forum in order to blink 3 LEDs together, but so far only one of the LEDs work. Could you please give advice on proper register setting in my code?
void setup() {
asm volatile(
"mov r0, %[led2] \n\t"
"mov r1, #150999040 \n\t"
"str r1, [r0] \n\t" : : [led] "r" (®_PIOB_OER), [led2] "r" (®_PIOB_OER)
);
}
void loop() {
asm volatile(
"push {r0-r3, lr} \n\t"
"mov r0, %[led_set] \n\t"
"mov r1, #1 \n\t"
"lsl r1, #27 \n\t"
"str r1, [r0] \n\t"
"mov r0, #100 \n\t"
"bl delay \n\t"
"mov r0, %[led_clr] \n\t"
"mov r1, #1 \n\t"
"lsl r1, #27 \n\t"
"str r1, [r0] \n\t"
"mov r0, #100 \n\t"
"bl delay \n\t"
"pop {r0-r3, lr} \n\t"
"bx lr \n\t"
: : [led_set] "r" (®_PIOB_SODR), [led_clr] "r" (®_PIOB_CODR)
);
}