Witam wszystkich, Potrzebuje pomocy w napisaniu programu, którego rolą jest przelewanie 5 z 28 diód od lewej do prawej i spowrotem. Całość była podzielona na 4sekcje dlatego potrzebna jest multipleksacja . Próbowałem napisać ten program , lecz moje doświadczenie w programu jest nikłe nie licze na to że wogule by to zadziałało( dołączam kod). '*************konfig********* $regfile = "attiny2313.dat" $crystal = 8000000 '*********zmienne********** Dim Mux As Byte Dim Licz1 As Byte Dim Sekcja1 As Byte Dim Sekcja2 As Byte Dim Sekcja3 As Byte Dim Sekcja4 As Byte '*********petla************ Set Licz1 Do Prawo: Incr Licz1 If Licz1 = 40 Then Gosub Lewo Else Gosub Efekty End If Lewo: Decr Licz1 If Licz1 = 0 Then Gosub Prawo Else Gosub Efekty End If Efekty: Sekcja1 = Licz1 If Sekcja1 > 7 Then Sekcja1 = 12 End If Sekcja2 = Licz1 If Sekcja2 < 8 Or Sekcja2 > 19 Then Sekcja2 = 12 Else Sekcja2 = Sekcja2 - 11 End If Sekcja3 = Licz1 If Sekcja3 < 20 Or Sekcja3 > 31 Then Sekcja3 = 12 Else Sekcja3 = Sekcja3 - 20 End If Sekcja4 = Licz1 If Sekcja4 < 32 Then Sekcja4 = 12 Else Sekcja4 = Sekcja4 - 32 End If '*********wyswietlanie******* Incr Mux If Mux = 4 Then Mux = 0 Select Case Mux Case 0: Set Portd.2 Sekcja1 = Lookup(sekcja1 , Tabela) Portb = Sekcja1 Reset Portd.2 Case 1: Set Portd.3 Sekcja2 = Lookup(sekcja2 , Tabela) Portb = Sekcja2 Reset Portd.3 Case 2: Set Portd.4 Sekcja3 = Lookup(sekcja3 , Tabela) Portb = Sekcja4 Reset Portd.4 Case 3: Set Portd.5 Sekcja4 = Lookup(sekcja4 , Tabela) Portb = Sekcja4 Reset Portd.5 End Select Loop Tabela: Data 254 , 252 , 248 , 240 , 224 , 193 , 131 , 135 , 143 , 159 , 191 , 255 '****** sk1 , 2 , 3 , 4 ,sp5 , 6 , kk7 , 8 , 9 , 10 , 11 , kp0 'sk- start sekwencji4 'kk- koniec sekwencji4 'sp- start sekwencji1 'kp- koniec sekwencji1
|
|||
Re: Program Attiny2313 " knight rider efekt" i multipleksacja di
Ja mam gotowy na atmega8 i multiplex na CD4067. W sumie 48 diod które pływają i do tego jest regulacja prędkości plus obsługa wyświetlacza lcd a na nim temperatura z jednego czujnika LM35 plus pomiar napięcia akumulatora samochodowego. Jak skończę to przedstawię projekt. Całość prawie zrobiona, zostało tylko złożyć.
Moja strona w powijakach
Re: Program Attiny2313
Z miłą chęcią obejrze twój projekt, tylko że mi nie jest potrzebne aż tyle wodotrysków do jednego bajeru ;]
Re: Program Attiny2313
Musziałem użyć do projektu atmega8 bo pamięć ma sporą a kod zajął dość dużo miejsca.
Moja strona w powijakach
błąd w kodzie
poprawiłem swój kod lecz jest w nim jeden błąd
Error:61 Line:133 Label not found [_ENDIF0 ]
prosze o pomoc w jego wyeliminowaniu
Re: błąd w kodzie
Wywala Ci błąd bo na końcu pętli
masz tylko dyrektywę
else
a brak
Moja strona w powijakach
Re; program lED
Błąd jest w pierwszej części:
Sprawdź tak:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: program
Dziekuje za pomoc
zaprogramowalem attiny2313 tym programem lecz w ukladzie testowym nie widac zadnej reakcji
fusebity
schemat pogladowy
http://schematukladupdf.patrz.pl
lub
http://www.speedyshare.com/files/26382642/untitled.pdf
kondensatory przy rezonatorze 22pf
rezonator 16mhz
rezystory 330ohm
wrazie problemow z odszyfrowaniem
anody sa połączone po 7x do portów pd2...pd5
katody sa łączone po 4x przez rezystory do portów pb1...pb7
Re: diody
na początku programu dodaj konfigurację porów:
całego programu jeszcze nie analizowałem...
Wrazie dalszych kłopotow napisz najpierw program na 8 diod a potem pomyślisz co nie idzie. Przynajmniej wytestujesz czy sam układ działa
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re:Re: diody
Dzieki mirley ;)
okiełznałem potwora tylko teraz jeszcze potrzebuje tabeli a nie bardzo ja potrafie przeliczyc
jesli chcialbym teraz ustawic przez
to wzor jest 255 - 2^(potega jest numerem portu)
tylko wtedy odejmowac trzeba jesli portb(numer) = 1
czyli
przyklad portb.0 = 1 portb.1 = 1 portb.7 = 1
255 - 2^0 - 2^1 - 2^7
dobrze rozumiem?
Re: Porty
Port w liczbie binarnej są w naturalnej kolejnosi, to znaczy że piny 7,6...1,0 odpowiadają kolejnym bitom liczby binarnej 11111110 (1 to stan wysoki na pinie a 0 to stan niski, w przykładzie wszystkie piny sa w stanie wysokim poza portx.0, który jest w stanie niskim) najpierw ustaw sobie stan binarny który chcesz przliczyc na dziesiętny a potem uzyj kalkulatora do zamiany wartości.
W większości przypadków do tabeli najłatwiej jest od razu wpisac binarne liczby:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.