.syntax unified .cpu cortex-m0plus .thumb .global speed_toggle .type speed_toggle, %function speed_toggle: //r0 ist der erste übergabeparameter, das muss die adresse vom set register sein //r1 ist der zweite übergabeparameter, das muss die maske des gewollten pins sein adds r2, r0, #4 //r2 ein ofset von 4 einbauen, also das ist dann die adresse für das clr register movs r3, #0 //movs auf 0 setzen str r1, [r2] //in das set-register die maske vom pin speichern. also pin setzen wait: //wait-label adds r3, r3, #1 //r3 inkrementieren cmp r3, #200 //r3 mit einer konstanten vergleichen Hier kann man die pulszeit einstellen. Ein durchgang ist etwa 31ns, die konstante sind die anzahl durchgänge, die er wartet. bne wait //falls nicht 5 zum wait-label springen str r1, [r0] //in das clr-register die maske vom pin speichern, also den pin löschen bx lr //funktion abschliessen