Stap 2: Testprogramma
Laten we eerst een snelle test-programma om ervoor te zorgen dat de instelling doet wat we willen doen schrijven.
;************************************ ; written by: 1o_o7 ; date: <2014|11|03> ; version: 1.0 ; file saved as: analyzer.asm ; for AVR: atmega328p ; clock frequency: 16MHz ;************************************
; Program funcion:---------------------- ; analyzes the bits stored in a register ;---------------------------------------
.nolist .include "./m328Pdef.inc" .list
.def temp = r16
.org 0x0000 rjmp Init
Init: ser temp out DDRB,temp out DDRC,temp clr temp out PortB,temp out PortC,temp
main: ldi r20,0b11111111 ; register to analyze ; ldi r20,0b10101010 ; ldi r20,0b01010101 rcall analyze rjmp main
analyze: clr temp out portb,temp out portc,temp sbrc r20,7 sbi portb,1 sbrc r20,6 sbi portb,2 sbrc r20,5 sbi portb,3 sbrc r20,4 sbi portb,4 sbrc r20,3 sbi portc,1 sbrc r20,2 sbi portc,2 sbrc r20,1 sbi portc,3 sbrc r20,0 sbi portc,4 ret
Zoals u zien kunt, testen we gewoon de LEDs hier: dat ze allemaal werken en dat ze correct zijn aangesloten. Ik 3 verschillende patronen van bits in het register r20 geladen en vervolgens output hen naar de LED's om ervoor te zorgen dat de LEDs correct vertegenwoordigen de byte die in dat register.
Nu kunnen we het gebruik van deze code om analyseren de byte die is opgeslagen in een register dat wij willen.
We willen dit gebruiken om te begrijpen hoe de X, Y, en Z pointers werken, maar eerst laat doen een paar meer tests...