Jak zapalić diodę LED z użyciem mikrokontrolera AT90S1200 - wszystkie potrzebne instrukcje!

jak zapalic diode?





Poprzedni Następny
Wiadomość
spis treści
From: atkinson_at_nospam_go2.pl (atkinson)
Subject: jak zapalic diode?
Date: Fri, 07 Apr 2000 06:00:10 GMT


chcialbym nauczyc sie programowac AVR'y, mam zamiar zaczac od
AT90S1200; w jaki sposob zapalic diode podlaczona do portu? chodzi mi
o wszystkie instrukcje inicjalizujace port, etc.

Poprzedni Następny
Wiadomość
spis treści
From: jareka1234_at_nospam_dawid.com.pl (Jaroslaw Andrzejewski)
Subject: Re: jak zapalic diode?
Date: Fri, 07 Apr 2000 07:37:34 GMT


Fri, 07 Apr 2000 06:00:10 GMT, atkinson_at_nospam_go2.pl (atkinson) napisał(-a):

chcialbym nauczyc sie programowac AVR'y, mam zamiar zaczac od
AT90S1200; w jaki sposob zapalic diode podlaczona do portu? chodzi mi
o wszystkie instrukcje inicjalizujace port, etc.
Oczywiście mój pierwszy program na AVR to tez było "Hello, LED" :-)
Nie mam pod ręką kodu, ale trzeba było:
a) ustawić odpowiednią linię jako wyjście
b) ustawiać rytmicznie stan linii wyjściowej :-)
Przy pomocy takiego programu łatwo zauważyć silną zależność
częstotliwości wewnętrznego generatora RC od napięcia zasilania.
--
Jarek Andrzejewski
(UWAGA: z adresu wytnij CYFRY - to jest pułapka na spamerów)

Poprzedni Następny
Wiadomość
spis treści
From: "Andrzej" <anok_at_nospam_ceti.pl>
Subject: Re: jak zapalic diode?
Date: Sat, 08 Apr 2000 03:30:17 GMT


atkinson napisał(a) w wiadomości: <38ed7820.18325912_at_nospam_news.tpnet.pl>...
chcialbym nauczyc sie programowac AVR'y, mam zamiar zaczac od
AT90S1200; w jaki sposob zapalic diode podlaczona do portu? chodzi mi
o wszystkie instrukcje inicjalizujace port, etc.

moze tak jak ponizej
(nie sprawdzalem czy dziala)
opoznienie dobrane tak na wyczucie
nie chcialo mi sie liczyc cykli

dioda na PIN 14
-------------------
.include "1200def.inc"

.org $0000

rjmp start
reti
reti
reti

start: ldi r16, $04
out DDRB, r16

loop: sbi PORTB, $2
rcall delay
cbi PORTB, $2
rcall delay
rjmp loop

delay: ldi r18, $ff
dly1: ldi r17, $ff
dly2: nop
nop
dec r17
brne dly2
dec r18
brne dly1
ret
------------------------





Poprzedni Następny
Wiadomość
spis treści
From: "SponsorTM" <sponsor_at_nospam_zaibatsu.sky.pl>
Subject: Re: jak zapalic diode?
Date: Fri, 7 Apr 2000 23:24:57 +0200


AT90S1200; w jaki sposob zapalic diode podlaczona do portu? chodzi mi

Najlepiej zapalniczka ;-)))

--
SponzdrowieniaTM






--
nowa oferta, nowe mozliwosci, nowe ceny - http://rubikon.pl

Poprzedni Następny
Wiadomość
spis treści
From: Adam Dybkowski <adybkows_at_nospam_amwaw.edu.pl>
Subject: Re: jak zapalic diode?
Date: Sat, 08 Apr 2000 00:13:18 +0200


atkinson wrote:

chcialbym nauczyc sie programowac AVR'y, mam zamiar zaczac od
AT90S1200; w jaki sposob zapalic diode podlaczona do portu? chodzi mi
o wszystkie instrukcje inicjalizujace port, etc.

Wysylam caly programik, ktory mam pod reka bo nie chce mi sie go
specjalnie ciac. Mysle, ze jest dosc zrozumialy (opoznienie skalibrowane
AFAIK dla XTAL 4 MHz).

----------------------

;pierwszy program - miganie na przemian diodami LED

.include "2313def.inc"

rjmp RESET ;skok do glownej petli po resecie

; *** znaczenie bitow portu B

.equ LRED =0
.equ LGREEN =1
.equ PRZEK =2
.equ DATA =3

; *** rejestry uzywane przez procedure delay jako zmienne lokalne

.def fine =r18 ;liczniki petli
.def medium =r19
.def coarse =r20

; *** procedura opozniajaca o 250 ms

delay:
ldi coarse,4 ;1
cagain:
ldi medium,250 ;1
magain:
ldi fine,249 ;1
fagain:
nop ;1
dec fine ;1
brne fagain ;2/1: 249*4-1=995
nop ;1
dec medium ;1
brne magain ;2/1: 250*1000-1=249999
dec coarse ;1
brne cagain ;coarse*250001-1 = coarse * 1/16 sek
ret

; *** Main Program Here

.def temp =r16 ;zmienna pomocnicza

RESET:
ldi temp,RAMEND
out SPL,temp ;przesuniecie stosu na koniec pamieci RAM
ldi temp,7 ;ustawienie portu B jako I/O
out DDRB,temp ;PB0..2 - Out, PB3 - In+PullUp, PB4..7 -
Hi-Z
ldi temp,8 ;inicjalizacja bitow - LEDy zgaszone, PRZEK
off
out PORTB,temp
petla:
sbi PORTB,LRED ;zapal obie diody - kolor zolty
sbi PORTB,LGREEN
rcall delay
sbi PORTB,LRED ;zapal diode czerwona
cbi PORTB,LGREEN
rcall delay
cbi PORTB,LRED ;zapal diode zielona
sbi PORTB,LGREEN
rcall delay
rjmp petla


--

Adam Dybkowski
adybkows_at_nospam_amwaw.edu.pl
http://www.amwaw.edu.pl/~adybkows