Program AVR01: Rozdiel medzi revíziami
Zo stránky SensorWiki
dBez shrnutí editace |
Bez shrnutí editace |
||
(2 medziľahlé úpravy od rovnakého používateľa nie sú zobrazené.) | |||
Riadok 1: | Riadok 1: | ||
<source lang="asm"> | <source lang="asm"> | ||
.include " | .include "m328def.inc" ; hlavickovy subor s definiciou registrov | ||
Riadok 19: | Riadok 19: | ||
out SPL,r16 | out SPL,r16 | ||
ldi TMP, | ldi TMP,0b00000110 ; nakonfiguruj co su vstupy a vystupy | ||
out DDRB,TMP ; zapis do registra | out DDRB,TMP ; zapis do registra | ||
Riadok 40: | Riadok 40: | ||
[[CADRS_Cvi%C4%8Denie_7#Postup|Späť na cvičenie...]] | [[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