Program AVR01: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 13: | Riadok 13: | ||
.ORG 0000 ; program zacina od adresy 0000 | .ORG 0000 ; program zacina od adresy 0000 | ||
START: ldi TMP,0b00110000 ; nakonfiguruj co su vstupy a vystupy | 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,0b00110000 ; nakonfiguruj co su vstupy a vystupy | |||
out DDRB,TMP ; zapis do registra | out DDRB,TMP ; zapis do registra | ||
Verzia z 10:55, 5. november 2008
.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 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,0b00110000 ; 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