Witam. Mam problem. trochę dziwny bo nie miałem wcześniej styczności z programowaniem układów, a muszę zaprogramować akurat coś takiego. Przeglądałem kilka stron w necie, nic z tego nie rozumiem, no prawie nic bo udało mi się przerobić jeden kod na coś takiego co mi potrzebne. Posiadam programator zbudowany wedlug schematu Dybkowskiego, i programy ISP Programmer, ISP Flash Programmer i Bascom AVR. Oto kod" Config Portd = Output Config Portb = Output Config Pind.6 = Input Portd = 127 Portb = 255 Dim Linijka As Word Do Linijka = &B0000001100000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000011110000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000111111000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0001111111100011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0011111111110011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0111111111111011 Gosub Przypisanie Gosub Opoznienie Linijka = &B1111111111111111 Gosub Przypisanie Gosub Opoznienie Linijka = &B0111111111111011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0011111111110011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0001111111100011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000111111000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000011110000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000001100000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000010010000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000100001000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0001000000100011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0010000000010011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0100000000001011 Gosub Przypisanie Gosub Opoznienie Linijka = &B1000000000000111 Gosub Przypisanie Gosub Opoznienie Linijka = &B0100000000001011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0010000000010011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0001000000100011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000100001000011 Gosub Przypisanie Gosub Opoznienie Linijka = &B0000010010000011 Gosub Przypisanie Gosub Opoznienie Loop Przypisanie: Portb.0 = Linijka.15 Portb.1 = Linijka.14 Portb.2 = Linijka.13 Portb.3 = Linijka.12 Portb.4 = Linijka.11 Portb.5 = Linijka.10 Portb.6 = Linijka.9 Portb.7 = Linijka.8 Portd.0 = Linijka.7 Portd.1 = Linijka.6 Portd.2 = Linijka.5 Portd.3 = Linijka.4 Portd.4 = Linijka.3 Portd.5 = Linijka.2 Return Opoznienie: Waitms 80 Return End zastanawia mnie to - &B0000010010000011 bo z tego co zrozumialem jest tu 16 wyjsc, a wedlug ukladu jest 14. Nie wiem o co chodzi z tymi fuse-bitami. W sumie to nie wiem nic procz tego jak podlaczyc uklad pod programator;/ Jesli ktos bylby tak mily i mi rozjasnil troche to bym byl wdzieczny...
|
|||
Re: LEDS
Tak zaraz za 15 dokładasz efekt gaszenia diod, bo rozumiem że ma się zapalać od dołu do góry i gasić też od dołu do góry, więc inaczej na razie nie mam pomysłu jak można by to zrobić
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.
A ja mam pytania
Mam kilka pytań bo czegoś nie kminię.
Czemu zmienna Linijka w pętli do...loop przyjmuje wartości 16 bitowe skoro później jest przypisanie do tylko jednego pinu procesora? Nawet gdyby było przypisanie do całego portu to port jest tylko 8 bitowy więc pozostałe 8 zostanie utracone.
I co oznacza zapis:
Konkretnie chodzi mi o to jaką funkcję pełni w tym przypadku kropka?
Moja strona w powijakach
Re: LEDS
Pozwala wpisać do konkretnego bitu jednej zmiennej lub rejestru, bit innej zmiennej. Np:
Ustawi na portd.0 stan który jest na 10 bicie zmiennej linijka
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.
Tak mają sie zapalać od dołu
Tak mają sie zapalać od dołu do góry i gasić od dołu do góry
jest błąd w tej linijce:
Re Błąd w linijce
Bo nie możesz napisać
To jest ewidentny błąd. Musi być tak:
Ewentualnie może być potrzebny
Moja strona w powijakach
Ja posiadam taki kod, ale nie
Ja posiadam taki kod, ale nie działa jeszcze prawidłowo
Po zwarciu do masy pind.0 zapalają się od razu 4 diody na porcie D i również tak jest gdy zwieram pind.1. Co powinienem zmienić?
Ja mam taki kod $regfile =
Ja mam taki kod
Nie chce mi działać pind.1 co zrobiłem źle?
LED
Piny Do i d1 masz jako wejścia więc nic dziwnego, zmień w rejestrze ddrd
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.
kod
Spróbuj coś takiego:
makabra
Kochani, młodzi "programiści". Przestańcie używać tych wait'ów. Przecież to jest straszne. Nauczcie się wykorzystywać timery. Nawet w prostych zastosowaniach instrukcje wait wyglądają koszmarnie i do tego tak wyyyyyyydłużają kod programu.
Moja strona w powijakach
Sterownik
Witam ponownie
Zbudowałem sterownik na attiny 2313 i moje pytanie brzmi jak podłączyć tranzystor bc 547 żeby pracował jako klucz, czyli chcę podłączyć listwę diodową na 12V. Jest taka możliwość, czy będę musiał kupić mosfety?
Re: LED
A jak długą tą listwę chcesz podłączyć? a dokładniej jaki prąd chcesz sterować?
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.
Wiem ze maksymalnie mogę
Wiem ze maksymalnie mogę obciążyć tranzystor 100mA. Chcę sterować napięciem 12V. Dodam jeszcze ze gdy sterownik jest w spoczynku to wszystkie diody świecą, gdy zaczyna prace czyli powinien kolejno zapalać diody to one wtedy gasną
Re: LEDS
Musisz zanegować stany wpisywane do LEDS aby było odwrotnie
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.
Matryca 4x6 led
Mam matryce 4 na 6 ledy steruje nią multi pleksowo tyl;ko mam pytanie czy da sie zrobić napis który bedzie sie przesuwać teraz zrobiłem to tak.
Tylko wyświetla sie M
Jak najlepiej ustawić "odświeżanie" znaczy żeby ledy nie mrugały na jakimś timerze?
Re: LED
Z mojej strony zrobił bym to w sposób prosty..... Trzeba zrobić pamięć, która zawiera informacje o całym wyświetlaczu, np w postaci tablicy kolum... rozumiem że masz 4 kolumny po 6 diod więc trzeba by zrobić tabicę 4 elementy byte..... Co 4m w timerze niezaleznie od reszty multipleksował bym tą pamięć, pierwszy element tablicy na pierwszą kolumnę led itd.
Co np 100ms nastąpiło by przesunięcie tablicy 2->1 3->2 4->3 a na 4 wpisywana jest nowa dana wyliczona w tym momencie....
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.
matryca 4x6
mam 4 poziome rzedy po 6 diod.
niewiem jak z ta tablica mam zrobic bede dalej cos prubowal.
Mam pytanie co do kodu na
Mam pytanie co do kodu na początku:
tutaj wykorzystuje 14 wyjść, czyli wszystko PB i PD, te dwa pierwsze przy "leds" są nie używane - to są wyjścia PA? trzeba coś dopisywać do kodu żeby z nich też korzystać? Czy wystarczy w części case włączać te piny?
Matryca 4x6 led
czytałem o tablicach ale to narazie czarna magia
prosze napisz kawałek kodu np taki tylko ze wykonywany z tablicy.
$regfile = "Attiny2313.dat"
$crystal = 1000000
Dim Seconds_count As Byte
Config Portb = Output '
Config Portd= Output '
Config Timer1 = Timer , Prescale = 64 , Clear Timer = 1
Compare1a = 15625
On Oc1a Oc1a_isr
Enable Compare1a
Enable Interrupts
Tcnt1 = 0
Dim C As Byte
Dim A As Byte
C = 0
A = 0
Do
If C = 0 Then
End If
If C = 1 Then
'1
Portb = &B00000001
Portd = &B00100000
Waitms A
Portb = 0
Portd = 0
End If
If C = 2 Then
'2
Portb = &B00000010
Portd = &B00100000
Waitms A
Portb = 0
Portd = 0
End If
If C = 3 Then
'1
Portb = &B00000001
Portd = &B00100000
'2
Waitms A
Portb = &B00000010
Waitms A
Portb = 0
Portd = 0
End If
Loop
End
Oc1a_isr:
Incr C
If C > 11 Then
C = 0
End If
Return
Re: porta
Zmienna Leds to zwykła zmienna.... ważne jest:
gdzie dwie dodatkowe linijki przypiszą stan tej zmiennej na odpowiednie piny x i y portu 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.
Matryca 4x6 led
nadal mi nic to nie mówi :((
Tablice
Jak chcesz zrobić multipleksowanie z wykorzystaniem tablicy to najpierw trzeba zadeklarować tablicę i dodatkowe zmienne:
teraz w przerwaniu timera multiplesującego:
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.
Matryca 4x6 led
skopiowałem to do bascoma pokombinowałem troche ale nadal nic nie świeci
Tak dla jasności :)
Katody diod led mam podłączone do PB0, PB1,PB2 i PB3
Anody diod led są podłączone do PD0,PD1,PD2,PD3,PD4,PD5.
Co nam daje 24 ledy.
Matryca 4x6 led
nie dopisałem ze steruje nimi stanem wysokim bo Katody mam podłączone przez tranzystory.
RE: LED
Sprawdź czy wogóle coś świeci ustawiając stan wysoki na PD0 i stan wysoki na PB0. Powinna zawiecić dioda na skrzyżowaniu
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.
Matryca 4x6 led
w Twoim programie nic nie świeci
a tak jak napiszę stan wysoki na PD0 i stan wysoki na PB0 to działa tylko nie wiem jak wprowadzić dane do tablic bo chce zrobić zegar binarny i nauczyć się wyświetlać multipleksowo ale brakuje mi pamięci w procku udało mi się tylko zrobić przesuwające się M i brakło miejsca a gdzie reszta wyrazu.