Narzędzia użytkownika

Narzędzia witryny


studia:magisterskie:1sem:mikroprocesory

To jest stara wersja strony!


Zajęcia 3

RCC_AHB1ENR				EQU		0x40023830			;adres rejestru APB1 clock enable
GPIOG_MODER				EQU		0x40021800			;itd.
GPIOG_OTYPER			EQU		0x40021804
GPIOG_ODR				EQU		0x40021814
 
		THUMB
 
		AREA    vector_table, DATA, READONLY		;tablia wektorow przerwan  - niepelna!
 
				DCD     0x2000FFFF					;wartosc wskaznika stosu pod adresem 0x00000000
				DCD     reset_handler 				;komorka 0x00000004 - adres procedury obslugi przerwania reset
 
		ALIGN			
		AREA	program_data, DATA, READWRITE		;dane inicjowane wartoscia - tablica 8 liczb 32bitowych
 
delay_tab		DCD 0x0004, 0x0001, 0x0001, 0x0001, 0x0001
 
		ALIGN				
		AREA	program_code, CODE, READONLY		;kod programu
 
		ENTRY										;punkt wejsciowy - adres 1 instrukcji (ldr)
reset_handler				
 
 
 
				LDR		R3,= delay_tab
				LDR		R4,[R3], #4
				MOVS	R1, #0		
tab_loop
				LDR		R0,[R3], #4
				MOVS	R2, #32
main_loop
				EOR		R1, R1, R0	;R1=R1xR0
				LSR 	R0, R0, #1
				SUBS 	R2, R2, #1
				BNE		main_loop
 
				SUBS	R4, R4, #0 
				BNE		tab_loop
 
				AND 	R1, R1, #1
 
endless_loop
				B		endless_loop
 
				END
		THUMB

		AREA    vector_table, DATA, READONLY		;tablia wektorow przerwan  - niepelna!

				DCD     0x2000FFFF					;wartosc wskaznika stosu pod adresem 0x00000000
				DCD     reset_handler 				;komorka 0x00000004 - adres procedury obslugi przerwania reset

		ALIGN			
		AREA	program_data, DATA, READWRITE		;dane inicjowane wartoscia - tablica 8 liczb 32bitowych

delay_tab		DCB 0x0004, 0x0002, 0x0001, 0x0005, 0x0001
		ALIGN				
		AREA	program_code, CODE, READONLY		;kod programu		
		ENTRY		
reset_handler		;punkt wejsciowy - adres 1 instrukcji (ldr)
		LDR		R1,=delay_tab
		LDRB	R2,[R1],#1
		MOV		R3,#0
petla_loop
		LDRB	R0,[R1],#1
		CMP		R0,R3
		IT		HI
		MOVHI	R3,R0
		SUBS	R2,R2,#1
		BNE		petla_loop
studia/magisterskie/1sem/mikroprocesory.1458671599.txt.gz · ostatnio zmienione: 2016/03/22 19:33 przez 149.156.112.6