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
 
 
;				;BL		clock_config
;				LDR		R0,=RCC_AHB1ENR				;wlacz zegar portu GPIOG
;				LDR		R1,[R0]
;				ORR		R1,R1,#(1<<6)
;				STR		R1,[R0]
;				
;				LDR 	R0,=GPIOG_MODER				;tryb pracy lini 13 i 14 portu G - wyjscie
;				LDR		R1,[R0]
;				ORR		R1,R1,#((1<<(2*13)) :OR: (1<<(2*14)))
;				STR		R1,[R0],#0x14				;R0=GPIOG_ODR
;
;				;LDR		R0,=GPIOG_OTYPER			;typ wyjscia przeciwsobne
;				;LDR		R1,[R0]
;				;ORR		R1,R1,#0
;				;STR		R1,[R0]
;
;				;LDR		R0,=GPIOG_ODR 				;GPIO output data register
;				
;				MOV		R2,#((1<<13) :OR: (1<<14))	;maska ledow - jedynki na 13 i 14 pozycji
;			MOV		R1,#(1<<13)					;wartosc poczatkowa - zielony led
;;
	;			LDR		R7,=delay_tab				;R7 - baza- adres tablicy
;				MOV		R6,#0						;w R6 wskaznik na pierwszy element
;main_loop
;				LDR		R4,[R7,R6, LSL #2]			;R4=delay_tab[baza+4*R6]
;				ADD		R6,R6,#1
;				AND		R6,R6,#7					;przesun wskaznik (mod 8)
;				
;				MOV		R5,#5						;5 iteracji z kazda wartoscia zwloki
;inner_loop		
;				EORS	R1,R1,R2					;zamien ledy
;				STR		R1,[R0]						;wyslij do portu i/o
;				
;				MOV		R3,R4						;wladuj liczbe iteracji 
;delay_loop											;zwloka regulowana wartoscia z tablicy
;				SUBS	R3,R3,#1
;				BCS		delay_loop				
 
;				SUBS	R5,R5,#1
;				BCS		inner_loop
 
;				B		main_loop                
 
	END
studia/magisterskie/1sem/mikroprocesory.1458066844.txt.gz · ostatnio zmienione: 2016/03/15 19:34 przez 149.156.112.6