Program AVR01: Rozdiel medzi revíziami
Zo stránky SensorWiki
|  Nová stránka: .include "2313def.inc"		; hlavickovy subor s definiciou registrov   .def 	TMP 	=r16		; pomcna premenna bude v registri r16  .equ 	LED1 	=PINB1		; HW konfiguracia - kde su LEDky a SWi... | Bez shrnutí editace | ||
| (9 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | |||
| Riadok 1: | Riadok 1: | ||
| .include " | <source lang="asm"> | ||
| .include "m328def.inc"		; hlavickovy subor s definiciou registrov | |||
| Riadok 6: | Riadok 7: | ||
| .equ 	LED1 	=PINB1		; HW konfiguracia - kde su LEDky a SWitche | .equ 	LED1 	=PINB1		; HW konfiguracia - kde su LEDky a SWitche | ||
| .equ 	LED2 	=PINB2 | .equ 	LED2 	=PINB2 | ||
| .equ	SW1	 | .equ	SW1	=PINB6 | ||
| .equ	SW2	 | .equ	SW2	=PINB7 | ||
| .CSEG	 | .CSEG				; nasleduje CODE SEGMENT - program | ||
| .ORG	0000	 | .ORG	0000			; program zacina od adresy 0000 | ||
| START:	ldi  | START: | ||
| 	ldi r16,high(RAMEND)  ;  Set Stack Pointer (= SPH + SPL )to top of RAM (RAMEND) | |||
| 	out SPH,r16           ; | |||
| 	ldi r16,low(RAMEND) | |||
| 	out SPL,r16 | |||
| 	ldi TMP,0b00000110	; nakonfiguruj co su vstupy a vystupy | |||
| 	out DDRB,TMP		; zapis do registra  | |||
| 	ldi TMP,0x0F0		; zapni pull-upy a zhasni LED | |||
| 	out PORTB,TMP		; zapis na port | |||
| LOOP:	sbis PINB,SW1		; obskoc ak je stlacene tlacitko | LOOP:	sbis PINB,SW1		; obskoc ak je stlacene tlacitko | ||
| 	rjmp LED1_ON | |||
| LED1_OFF: | LED1_OFF: | ||
| 	sbi PORTB,LED1		; Set Bit LED1 na porte PB | |||
| 	rjmp LOOP		; skoc zasa dokola | |||
| LED1_ON: | LED1_ON: | ||
| 	cbi PORTB,LED1		; Clear Bit LED1 na porte PB | |||
| 	rjmp LOOP		; dokola | |||
| ; koniec | ; koniec | ||
| </source> | |||
| [[CADRS_Cvi%C4%8Denie_7#Postup|Späť na cvičenie...]] | |||
| [[Category:AVR]][[Category:CAD_RS]] | |||
Aktuálna revízia z 09:19, 28. september 2012
.include "m328def.inc"		; hlavickovy subor s definiciou registrov
.def 	TMP 	=r16		; pomcna premenna bude v registri r16
.equ 	LED1 	=PINB1		; HW konfiguracia - kde su LEDky a SWitche
.equ 	LED2 	=PINB2
.equ	SW1	=PINB6
.equ	SW2	=PINB7
.CSEG				; nasleduje CODE SEGMENT - program
.ORG	0000			; program zacina od adresy 0000
	
START:
	ldi r16,high(RAMEND)  ;  Set Stack Pointer (= SPH + SPL )to top of RAM (RAMEND)
	out SPH,r16           ;
	ldi r16,low(RAMEND)
	out SPL,r16
	ldi TMP,0b00000110	; nakonfiguruj co su vstupy a vystupy
	out DDRB,TMP		; zapis do registra 
	ldi TMP,0x0F0		; zapni pull-upy a zhasni LED
	out PORTB,TMP		; zapis na port
LOOP:	sbis PINB,SW1		; obskoc ak je stlacene tlacitko
	rjmp LED1_ON
LED1_OFF:
	sbi PORTB,LED1		; Set Bit LED1 na porte PB
	rjmp LOOP		; skoc zasa dokola
LED1_ON:
	cbi PORTB,LED1		; Clear Bit LED1 na porte PB
	rjmp LOOP		; dokola
; koniec