.syntax unified
.equ L152,1
.include "../Core/src/regs.s"
.global mainasm
mainasm:

.equ	LS1,Bit1
.equ	BaenderEin,Bit1
.equ	Weiche,Bit0

main:
		bl		startLCD
	    bl 		LCD_i2c_clear
	    ldr		R3,=GPIOA
	    ldr 	R2,=GPIOB
	    ldr 	R1,=GPIOC
	    mov		R0,Bit1
	    strb	R0,[R1,ODR]
	    mov		R7,#0x80	//Sollgewicht
schleife:
		bl		wartenAufWerkstueck
		bl		stoppeBaender
		bl		warte1s
		bl		wiegen
		bl		stelleWeiche
		bl		starteBaender

	    b 	schleife

wartenAufWerkstueck:
		ldr		R0,[R3,IDR]		//GPIOA
		tst		R0,LS1
		beq		wartenAufWerkstueck
		bx		lr

stoppeBaender:
		mov		R0,#BaenderEin
		strb	R0,[R1,BRR]
		bx		lr

warte1s:
		ldr		R0,=32000000/5
		mov		R4,#1
w1:
		subs	R0,R4
		bne		w1
		bx		lr

wiegen:
		ldrb	R5,[R2,IDR]		//Messwert in R5
		bx		lr

stelleWeiche:
		mov		R0,Weiche
		cmp		R7,R5
		bcs		zuleicht
gewichtOk:
		strb	R0,[R1,BRR]
		bx		lr
zuleicht:
		strb	R0,[R1,BSR]
		bx		lr

starteBaender:
		mov		R0,#BaenderEin
		strb	R0,[R1,BSR]
		bx		lr



leer:
.asciz "       "
.end
