.syntax unified

.equ L152,1
.include "../Core/src/regs.s"

.global mainasm

mainasm:



main:
	//Taktversorgung
ldr R0,=rcc
ldr R1,[R0,RCC_APB1ENR]
orr R1,0b110001
str R1,[R0,RCC_APB1ENR]

//Timerauswahl
ldr R3,=TIM6
//440HZ 440Perioden pro Sekunde
//eine Periode dauert 1Periode dauert 1s / 440 = 0,002272 s =2272µs
//_______|^^^^^^^^|_______|^^^^^^^^
//<- Periode     ->
//Interrupt all 1136µs Interrupt
mov	R0,#31
str	R0,[R3,PSC]
mov R0,#1135
str R0,[R3,ARR]
mov R0,#0
str R0,[R3,CNT]
str R0,[R3,SR]
mov	R0,#1
str R0,[R3,CR1]
//Timer initialisiert
//NVIC alle Inerrupts freigeben
ldr R4,=nvic
ldr R0,=0xFFFFFFFF
str R0,[R4,isrEnableReg0]
str R0,[R4,isrEnableReg1]

//Timer Interrupt freigeben
mov R0,#1
str R0,[R3,DIER]

schleife:
b schleife

.global TIM6isr
TIM6isr:
ldr R4,=GPIOC
ldr R0,[R4,ODR]
eor R0,Bit0
strb R0,[R4,ODR]
mov	R0,#0
str R0,[R3,SR] //Reset UIF
bx	lr

.end
