Strona Domowa

Dawida Urbanskiego

- Dział: arts -

< Go Back to List

elektronika/lampa_rowerowa

Lampa Rowerowa rodziny AVR

autor: Dawid napiano:2010-02-09

Ewolucja

wersja 1.0

założenia: doprowadzenie układu do wykonywania sekwencji 'mrugania' oraz wybór sekwencji przez switch, łatwa zmiana logiki ukladu

schemat:

Inicjacja mikroprocesora:
tu ustalamy które piny mają służyć do czego.
w tym przypadku:

  • portD (DDRD) ma służyć jako wyjścia-diody LED
  • ostatni pin na portcieB (PORTB)ma służyć jako wejscie - switch

Prototyp: (DOWNLOAD)

;output:
ldi	tmp,0xFF		; same jedynki
out	DDRD,tmp		; PORTD - wyjscie w stanie wysokim

;input:
ldi	tmp,0b00000010  ; pin 1 (licząc od 0)
out	PORTB,tmp		; PORTB - wejscia PULL-UP (w stanie wysokim)

W głownej pętli programu sprawdzamy czy nacisnieto przycisk:

;-----jezeli nacisniesz przycisk
; wczytaj z pinu
in	tmp,PINB		;  tmp = stan portu POTRTB
cpi	tmp,0x01		;  na pinie 1
	breq Nastepna	;przelacz do nastepnej funkcji

Oraz wybieramy sekwencję (o numerze tmp2):

;-----sekwencja 1
CPI  tmp2,0x0	;porownaj natychmiast
	breq Main_0	;takie same: Main_0
;-----sekwencja 2
CPI  tmp2,0x1	;porownaj natychmiast
	breq Main_1	;takie same: Main_1

za zmianę sekwencji po naciśnieciu guzika odpowiada opdowiada procedura 'Nastepna':

;=========================================
Nastepna:

	INC  tmp2		;  zwieksz (nastepna funkcja)

	CPI  tmp2,0x4	;  jezeli przekroczono zakrez zacznij od zera
	breq Zeruj		;  takie same: Zeruj

	;czekaj		
	ldi clock,7
	rcall Delay

rjmp	Main		;  powrot do petli

Zeruj:
	ldi  tmp2,0xFF	;  zeruj
rjmp	Main		;  powrot do petli
;=========================================

A tak wygląda przykładowa sekwencja (diody czerwone zgaszone):

;=========================================
Main_0:

	rcall PORTD_1_OFF
	rcall PORTD_2_OFF
	rcall PORTD_3_OFF
	rcall PORTD_4_OFF

rjmp	Main		;  powrot do petli
;=========================================

wersja 1.01

ma umożliwiać długie czasowo sekencje bez utraty płynnośći reagowania na switch.
W OPRACOWANIU

strony [1] [2] [3] [4] [5] [6]
czytaj dalej...

Back to List


komentarze

  • gość
    Warning: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/dawidurb2/domains/dawidurbanski.pl/public_html/engine/framework/smarty/libs/plugins/modifier.date_format.php on line 53
    Apr 20, 2016
    Tu podaj treść

dodaj komntarz

tools

qrcode:
qrcode
-

code by: Dawid Urbanski

Copyright © by Dawid Urbanski 2010 - 2020