Elektroda.pl
Elektroda.pl
X
Deimic One - Szkolenia
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATMEGA 8][BASCOM] Tablica informacyjna LED

hiv_sick 03 Gru 2008 23:13 33642 106
  • #1 03 Gru 2008 23:13
    hiv_sick
    Poziom 22  

    witam, mam do zrobienia jako prace dyplomową tablicę informacyjną LED. Zbudowałem już matrycę, która składa się z 24 kolumn i 8 wierszy diod LED, a także sterownik do niej. W matrycy diody led połączone są multipleksowo.

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    W sterowniku działa mikrokontroler atmega8 połączony magistralą I2C z trzema 8-bitowymi ekspanderami PCF8574, które odpowiednio połączone są poprzez klucze tranzystorowe z anodami matrycy (kolumny). Port D mikrokontrolera połączony jest z ośmioma wierszami matrycy.

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    Tablica LED ma działać w taki sposób, że ma wyświetlać napisy, przesuwając je od prawej do lewej strony...

    Może ma ktoś koncepcje napisania odpowiedniego programu sterującego ową matrycą?

    Czy rezonator kwarcowy 8MHz bedzie odpowiedni? może wybrać o większej częstotliwości taktowania?

    Adresy ekspanderów są następujące:

    expander 1 - 000
    expander 2 - 001
    expander 3 - 010

    pozdrawiam

    0 29
  • Deimic One - Szkolenia
  • Pomocny post
    #2 03 Gru 2008 23:33
    dawid512
    Poziom 32  

    Multipleksujesz to jak zwykłe 7 segmentowe wyświetlacze LED. Mam nadzieję że wiesz na czym to polega. W ruch idzie timer który podczas przerwania zapala jedną kolumnę i wpisuje do portu odpowiednią wartość. Kiedy nie występuje przerwanie to kolumny zostają wygaszone. I tak w kółko z taką częstotliwością żeby oko ludzkie nie było w stanie tego zauważyć. W twoim przypadku musisz wysłać na PCF-a odpowiednią wartość co będzie odpowiadało zapaleniu kolejnego segmentu.

    0
  • #3 03 Gru 2008 23:39
    hiv_sick
    Poziom 22  

    ale nie wiem jak do tego zaprzęgnąć timer, moze jakis przyklad?

    Dodano po 1 [minuty]:

    jakie polecenia wysylac do pcfów aby zapalic dany segment wiem...

    0
  • Deimic One - Szkolenia
  • #4 03 Gru 2008 23:46
    dawid512
    Poziom 32  

    Proszę bardzo:

    Code:
    Config Timer0 = Timer , Prescale = 256
    
    On Timer0 Odmierz_8ms   

    Enable Interrupts                                         
    Enable Timer0                                             
    Counter0 = 6     

    ....

    Odmierz_8ms:

    Counter0 = counter0 +6

    .... instrukcje

    return

    0
  • #5 04 Gru 2008 00:01
    hiv_sick
    Poziom 22  

    ok, dzieki. napisalem (z twoją pomocą DAWID512) program, ktory bedzie zapalał kolejne wiersze od dołu do góry...heh i jest problem bo widać jak diody mrugają...czy problemem jest ustawienie timera, czy moze czestotliwość taktowania mikrokontrolera (8MHz)?

    Code:

    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Timer0 = Timer , Prescale = 1
    On Timer0 Odmierz_8ms

    Config Portd = Output
    Config I2cdelay = 0

    Config Scl = Portc.0                                        'konfiguracja I2C
    Config Sda = Portc.1

    Dim I As Byte
    Dim J As Byte
    Dim Exp1 As Byte
    Dim Exp2 As Byte
    Dim Exp3 As Byte
    Dim Pauza As Byte
    Dim K1 As Byte
    Dim K2 As Byte
    Dim K3 As Byte
    Dim K4 As Byte
    Dim K5 As Byte
    Dim K6 As Byte
    Dim K7 As Byte
    Dim K8 As Byte

    Exp1 = 64                                                   'adres WYJSCIA expandera pierwszego
    Exp2 = 66                                                   'adres WYJSCIA expandera drugiego
    Exp3 = 68                                                   'adres WYJSCIA expadnera trzeciego

    Portd = 254

    I = 254

    Pauza = 0

    K1 = 254
    K2 = 253
    K3 = 251
    K4 = 247
    K5 = 239
    K6 = 223
    K7 = 191
    K8 = 127

    Do

       Enable Interrupts
       Enable Timer0
       Counter0 = 6



       Odmierz_8ms:

       Counter0 = Counter0 + 6

          For I = 1 To 8

             Rotate Portd , Left

             I2csend , Exp1 , K1
             Waitms Pauza
             I2csend , Exp1 , K2
             Waitms Pauza
             I2csend , Exp1 , K3
             Waitms Pauza
             I2csend , Exp1 , K4
             Waitms Pauza
             I2csend , Exp1 , K5
             Waitms Pauza
             I2csend , Exp1 , K6
             Waitms Pauza
             I2csend , Exp1 , K7
             Waitms Pauza
             I2csend , Exp1 , K8
             Waitms Pauza
             I2csend Exp1 , 255

       I2csend , Exp2 , K1
       Waitms Pauza
       I2csend , Exp2 , K2
       Waitms Pauza
       I2csend , Exp2 , K3
       Waitms Pauza
       I2csend , Exp2 , K4
       Waitms Pauza
       I2csend , Exp2 , K5
       Waitms Pauza
       I2csend , Exp2 , K6
       Waitms Pauza
       I2csend , Exp2 , K7
       Waitms Pauza
       I2csend , Exp2 , K8
       Waitms Pauza
       I2csend Exp2 , 255

       I2csend , Exp3 , K1
       Waitms Pauza
       I2csend , Exp3 , K2
       Waitms Pauza
       I2csend , Exp3 , K3
       Waitms Pauza
       I2csend , Exp3 , K4
       Waitms Pauza
       I2csend , Exp3 , K5
       Waitms Pauza
       I2csend , Exp3 , K6
       Waitms Pauza
       I2csend , Exp3 , K7
       Waitms Pauza
       I2csend , Exp3 , K8
       Waitms Pauza
       I2csend Exp3 , 255

       Next I

    Return

       For I = 1 To 8

          Rotate Portd , Left

       Next I

    Loop

    End


    Dodałem znaczniki [code]
    [zumek]

    0
  • #6 04 Gru 2008 07:58
    seba_x
    Poziom 31  

    spróbuj przyspieszyć transmisję na i2c przy użyciu "CONFIG I2CDELAY" i wywal "waitms" to nigdy nie działa tak jak trzeba. Ewentualnie zmniejsz czas przerwania 8ms .

    0
  • Pomocny post
    #7 04 Gru 2008 12:34
    dawid512
    Poziom 32  

    Zmień doświadczalnie wartość wpisywaną do timera. Zobacz czy poprawnie wyświetla ci to co chcesz. Ważne jest także żeby przerwanie nie było za długie bo wtedy może grozić to resetem uc.

    0
  • #8 04 Gru 2008 16:27
    hiv_sick
    Poziom 22  

    witam ponownie. Uzywalem polecenie config I2CDELAY =0. nic to nie dalo, napisalem tez program (bez przerwania timera), ktory bedzie przemiatał wiersze od dołu do góry. Niby przemiata, ale niestety robi dalej to wolno, tzn widać że diody migają...moze to wina rezonatora? wpięty jest 8MHz...

    moze ktos napisze jak zrobic to z timerem

    Code:

    $regfile = "m8def.dat"
    $crystal = 8000000

    Config Portd = Output
    Config I2cdelay = 0

    Config Scl = Portc.0 'konfiguracja I2C
    Config Sda = Portc.1

    Dim I As Byte
    Dim J As Byte
    Dim Exp1 As Byte
    Dim Exp2 As Byte
    Dim Exp3 As Byte
    Dim K1 As Byte
    Dim K2 As Byte
    Dim K3 As Byte
    Dim K4 As Byte
    Dim K5 As Byte
    Dim K6 As Byte
    Dim K7 As Byte
    Dim K8 As Byte

    Exp1 = 64 'adres WYJSCIA expandera pierwszego
    Exp2 = 66 'adres WYJSCIA expandera drugiego
    Exp3 = 68 'adres WYJSCIA expadnera trzeciego

    Portd = 254

    I = 254

    K1 = 254
    K2 = 253
    K3 = 251
    K4 = 247
    K5 = 239
    K6 = 223
    K7 = 191
    K8 = 127

    Do

    Rotate Portd , Left

    I2csend , Exp1 , K1

    I2csend , Exp1 , K2

    I2csend , Exp1 , K3

    I2csend , Exp1 , K4

    I2csend , Exp1 , K5

    I2csend , Exp1 , K6

    I2csend , Exp1 , K7

    I2csend , Exp1 , K8

    I2csend Exp1 , 255

    I2csend , Exp2 , K1

    I2csend , Exp2 , K2

    I2csend , Exp2 , K3

    I2csend , Exp2 , K4

    I2csend , Exp2 , K5

    I2csend , Exp2 , K6

    I2csend , Exp2 , K7

    I2csend , Exp2 , K8

    I2csend Exp2 , 255

    I2csend , Exp3 , K1

    I2csend , Exp3 , K2

    I2csend , Exp3 , K3

    I2csend , Exp3 , K4

    I2csend , Exp3 , K5

    I2csend , Exp3 , K6

    I2csend , Exp3 , K7

    I2csend , Exp3 , K8

    I2csend Exp3 , 255

    Loop

    End



    Dodałem znaczniki [code]
    Kod umieszczamy w znacznikach [code] - proszę o tym pamiętać.
    [zumek]


    Dodano po 2 [godziny] 14 [minuty]:

    zmienilem kwarc na 12MHz, dalej to samo...cos mi się wydaje ze problem tkwi w magistrali I2C...

    0
  • #9 04 Gru 2008 19:03
    KJ
    Poziom 31  

    Problem jak dla mnie jest oczywisty. I2C w bascomie jest stanowczo za wolne do takich rzeczy. Trzeba będzie zmienić ten układ raczej. Albo napisać soft w C lub assemblerze.

    Zaraz chwila ... czy mi się wydaje czy ty masz wsp. multiplexu 1/24 do tego po i2c ... To nie ma prawa szybko działać Proponuje zrobić współczynnik 1/8 - pomiędzy linie a procek wstaw ULN2803 i steruj tak: wpisujesz w i2c dane dla pierwszej linii i ją włączasz portem. Potem wygaszasz i wpisujesz dane dla drugiej linii po i2c włączasz 2 linie itd ....

    0
  • #10 04 Gru 2008 19:38
    Dr.Vee
    VIP Zasłużony dla elektroda

    Sprawdź w symulatorze jak długo trwa jedno polecenie I2csend. Poza tym dlaczego nie wykorzystałeś sprzętowego interfejsu I2C, tylko obsługujesz wszystko programowo?

    Zamiast "doświadczalnie" dobierać wartości timera, lepiej policz co i jak. Potrzebujesz odświeżać całą matrycę z częstotliwością 100Hz, czyli zmieniasz kolumnę 24x szybciej = 2,4kHz, czyli co ok. 400us. Maksymalna częstotliwość SCL dla układu PCF to 100kHz, do wysłania adresu + danych potrzebujesz ok. 20 bitów = 200us. Jak widać nie masz tutaj wiele rezerwy, zwłaszcza że czasem musisz wysłać dane do dwóch układów na raz.

    Gdybyś policzył to wcześniej, to nie musiałbyś się teraz głowić dlaczego nie działa :) Polecam rozwiązanie z rejestrami szeregowymi (np. '164 albo '595) - ostatnio pisałem projekt w C na '51, matryca 88 kolumn, 100Hz i wyrabiał się z dużą rezerwą przy taktowaniu 1,5MHz (1 cykl na 1 takt zegara).

    Edit: zmiana '165 na '164 :)

    Pozdrawiam,
    Dr.Vee

    0
  • #11 04 Gru 2008 21:23
    hiv_sick
    Poziom 22  

    no to tak, w bascomie jedno polecenie I2csend trwa 3139 cykli ! ;O. czyli widze, ze uklad sterownika bedzie trzeba budowac jeszcze raz ;/. Dr.Vee jak mozesz to przybliz mi temat zwiazany z tymi rejestrami szeregowymi jak wyglądałoby wtedy zapalanie na nich kolumn.

    Istnieje jeszcze mozliwosc wstawiania kodu ASEMBLERA do programu BASCOMA, moze wtedy by to szybciej zadziałało...jednak z asemblera jestem zielony...moze wy wiecie jak wygladalby kod programu asemblera, ktory by pokoleji zapalał kolumny z odpowiednią szybkośćią. pozdrawiam

    0
  • Pomocny post
    #12 04 Gru 2008 21:26
    dawid512
    Poziom 32  

    A gdyby tak wykorzystać TWI np. w C? Może I2C Bascoma jest takie wolne?

    -1
  • Pomocny post
    #14 04 Gru 2008 21:34
    dawid512
    Poziom 32  

    Tak TWI które jest sprzętowe zaś I2C to programowa interpretacja.

    -1
  • #15 04 Gru 2008 21:37
    Dr.Vee
    VIP Zasłużony dla elektroda

    TWI = Two Wire Interface = sprzętowy interfejs I2C (nazwa używana przez Atmela, bo I2C jest zastrzeżone przez Philipsa). Niewiele to pomoże, chyba że obniżysz F odświeżania (obliczenia masz powyżej).

    Z rejestrem przesuwnym np 74HC164 spinasz wyjście Q7 pierwszego rejestru z wejściami A i B drugiego rejestru i tak dalej... Wejścia CP i MR wszystkich rejestrów zwierasz razem i do 2 pinów uC. Wejścia A i B pierwszego rejestru łączysz z 3 pinem uC i możesz już sterować całym szeregiem rejestrów. Do wyjść rejestrów podłączasz tranzystory kolumn i gotowe.

    Pozdrawiam,
    Dr.Vee

    0
  • #16 04 Gru 2008 22:00
    zumek
    Poziom 39  

    Do sterowania 74164, polecam interface SPI - "szybko tanio i bezboleśnie" :D

    Piotrek

    0
  • #17 04 Gru 2008 22:00
    hiv_sick
    Poziom 22  

    panie DR.VEE czy to ma wygladać tak?:

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    jezeli juz bym zbudowal to na rejestrach to jak mam to obsluzyc programowo?

    0
  • #18 04 Gru 2008 22:04
    kedzi1
    Poziom 18  

    Dlaczego nie napiszesz swojej obsługi I2C? Jak mówi się że bascom be to wszyscy krzyczą, a jak bascom już czegoś "nie umie" to sie już nie da :). Piszę bo przypomniałeś mi moją pracę dyplomową z technikum. Ja robiłem tablice z matrycą 8x80 i do tego mnóstwo 7-segmentowców. Ech... to były czasy. U mnie na wierszach był drajwer prądowy a kolumnami sterowały dekodery 4 na 16 przez tranzystory, adresowane przez jeden 3 na 8. Program dzięki temu był bardzo prosty. Bezpośrednio adresowałem każdą kolumnę jedną zmienną przepisywaną na port. Jeszcze jest kwestia czy wszystkie literki mają mieć tą samą czy różną szerokość. Beznadziejnie wygląda jak "i" zajmuje tyle co "W". Jak jesteś ambitny to dasz rade. Pisz do mnie jak bedziesz miał kłopot to pomogę.
    Jeszcze jedno, jak ja robiłem swoją pracę to też pisałem w Bascomie i jak mi się "skończyło" w połowie demo z powodu ograniczenia 2 kilo to zdecydowałem się na asm i napisałem wszystko w niecałych 2 kilobajtach. Dziś macie C i pełno gotowców z netu. Może czas nabrać dobrych przyzwyczajeń. Pracuje już 3 lata w branży i powiem że to konieczność znać C. Żaden poważny pracodawca nie kupi Ci Bascoma żebyś mógł dla niego pracować :).

    0
  • #19 04 Gru 2008 22:34
    hiv_sick
    Poziom 22  

    kedzi1: szczerze mówiąc to z C mam mało wspolnego...jezeli juz programowac w C to jaki kompilator, moze gdzies jakiś kurs w necie się znajdzie?

    0
  • Pomocny post
    #20 04 Gru 2008 22:55
    dawid512
    Poziom 32  

    Na prawdę warto zainteresować się pisaniem w C. Sam pisałe i pisze programy w Bascomie ale ostatnio większość staram się pisać w C i widzę wiele korzyści. Na początek polecam AVR STUDIO oraz kompilator WINAVR. Jeśli chodzi o kurs to jest coś takiego jak to Link. Uważaj na sbi i cbi których już się nie stosuje.

    0
  • #21 04 Gru 2008 23:12
    hiv_sick
    Poziom 22  

    hmm, jezeli mozesz i ci się chce to napisz program, który bedzie zapalał wiersze w mojej matrycy np. od dołu do góry. Jezeli zadziała lepiej w C to nic nie przerabiam w ukladzie, a biorę się za nauki języka C. jezeli napiszesz i skompiluje się u mnie, to daje 20pktów (troche skromnie ale sam duzo wiecej nie mam :P)

    W Bascomie pisalem to tak:

    Code:


    K1 = 254
    K2 = 253
    K3 = 251
    K4 = 247
    K5 = 239
    K6 = 223
    K7 = 191
    K8 = 127

    Exp1 = 64            'adresy expanderów line out
    Exp2 = 66
    Exp3 = 68

    portd = 254

    Do

    Rotate Portd , Left , 1

    I2csend , Exp1 , K1
    I2csend , Exp1 , K2
    I2csend , Exp1 , K3
    I2csend , Exp1 , K4
    I2csend , Exp1 , K5
    I2csend , Exp1 , K6
    I2csend , Exp1 , K7
    I2csend , Exp1 , K8
    I2csend , Exp2 , K1
    I2csend , Exp2 , K2
    I2csend , Exp2 , K3
    I2csend , Exp2 , K4
    I2csend , Exp2 , K5
    I2csend , Exp2 , K6
    I2csend , Exp2 , K7
    I2csend , Exp2 , K8
    I2csend , Exp3 , K1
    I2csend , Exp3 , K2
    I2csend , Exp3 , K3
    I2csend , Exp3 , K4
    I2csend , Exp3 , K5
    I2csend , Exp3 , K6
    I2csend , Exp3 , K7
    I2csend , Exp3 , K8

    Loop



    Dodano po 38 [sekundy]:

    AVR STUDIO mam :)

    0
  • #22 05 Gru 2008 10:26
    seba_x
    Poziom 31  

    Możesz spróbować użyć do transmisji i2c pinów pc.4 i pc.5 ?

    pcf8574 mają fSCL max 100khz , a gdybyś zastosował pcf8575 ? fSCL mają max 400khz.

    0
  • #23 05 Gru 2008 15:33
    Dr.Vee
    VIP Zasłużony dla elektroda

    hiv_sick napisał:
    czy to ma wygladać tak?:

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    Dokładnie tak.

    Możesz podłączyć A i B do MOSI, CLK do SCK i stosować sprzętowe SPI tak jak radzi zumek.

    Pozdrawiam,
    Dr.Vee

    0
  • #24 05 Gru 2008 20:33
    ZbeeGin
    Poziom 38  

    By użyć sprzętowego TWI nie trzeba wielkich rzeczy. Dopisuje się tylko

    $lib "I2C_TWI.LBX"

    A wszystkie procedurki nie kierują się na programowy a sprzętowy I2C-TWI. Oczywiście wszystkie CONFIGi są wymagane: CONFIG SCL, CONFIG SDA, CONFIG TWI. Inaczej nie zostaną skonfigurowane porty i preskaler.

    Programu to niestety nie przyśpieszy w stopniu takim jaki byśmy chcieli, gdyż i tak trzeba sprawdzać czy TWI jest zajęte czy nie w pustej pętli i to kilka razy. Głównym ograniczeniem jest niestety sama częstotliwość taktowania SCL i ilość bitów wysyłanych po magistrali. Trzeba pamiętać, że aby wysłać coś do każdego ekspandera tracimy w sumie 20 taktów na jeden bajt: START, SLA+W, DATA, STOP!!

    Jak i poprzednicy: I2C odstaw na bok. Skorzystaj z rejestrów przesuwających. Zamiast kostek TTL (nawet CMOS-TTL) możesz użyć CD4094, który ma zatrzaski wyjściowe - obraz nie będzie wtedy "śnieżył". Zapiszesz w rejestrach całą linię i dopiero wyślesz na wyjścia. A w czasie gdy poprzednia linia się wyświetla, zapisujesz w rejestrach nową linię. Cały trick to odpowiednie sterowanie wierszami - w szczególności ich wygaszanie przed zmianą wyświetlanej linii.

    0
  • #25 05 Gru 2008 21:52
    BoskiDialer
    Poziom 34  

    20 taktów na jeden bajt co najmniej. 3 porty po 8 wyprowadzeń, 8 wierszy, przyjmijmy odświeżanie 50Hz, i już mamy strumień danych: 20*3*8*8*50 = 192000 kilobitów/s. Oczywiście aktualizacja nie powinna być podczas wyświetlania linii, więc częstotliwość trzeba by zwiększyć i to znacznie - a i tak mamy słabe parametry. I2c zdecydowanie nie wyrobi.

    Przy rejestrach przesuwanych można też zrobić manewr z podłączeniem: wejście szeregowe każdego do osobnego wyprowadzenia procesora, wtedy zawsze mamy 8 cykli zegara, więcej operacji na bitach, mimo to średnia prędkość powinna być większa (pisząc w asm). Oczywiście połączenie szeregowo pod SPI też jest dobre.

    Dodano po 4 [minuty]:

    Zerowanie rejestrów tutaj nawet nie jest potrzebne, wystarczyło by wejście CLR sprowadzić na stałe do poziomu wysokiego (jeśli zerowanie jest stanem niskim).

    0
  • #26 06 Gru 2008 01:44
    hiv_sick
    Poziom 22  

    ZbeeGin - masz racje nie pomogło zawiele włączenie sprzętowego TWI, "obraz" nadal miga. Z tego co widze to nie powinno być lepiej nawet w C. Dlatego robie kolejny projekt sterownika...

    prosze jeszcze sprawdzic czy tak bedzie ok...

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    sterownik bedzie zbudowany z czterech rejestrów przesuwnych, ponieważ z każdego rejestru bede mogl uzyc siedmiu wyjść, ósme będzie do wysylania informacji kolejnym rejestrom. jeszcze mam pytanie jak tym wtedy sterować? bo rozumiem, że w danym czasie będe musiał zapalać daną kolumną z danymi wierszami...

    Aby zapalić diodę w pierwszym wierszu i w pierwszej kolumnie, oraz drugą diodę w drugim wierszu i kolumnie...

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    będę musiał podać stan niski na wejście AB rejestru, oraz dać stan niski na pierwszy wiersz, nastepnie podać stan wysoki na CLK (aby przesunąć wartość rejestru w prawo), jednocześnie wpisać do wiersza pierwszego jedynke logiczną, oraz zero logiczne do wiersza drugiego...o to chodzi?

    Dodano po 12 [minuty]:

    albo jeszcze lepiej zastosuje zworki, np gdybym chcial uzyc SPI :)

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    0
  • #27 06 Gru 2008 04:05
    Dr.Vee
    VIP Zasłużony dla elektroda

    Wyjście QH tak samo powinno sterować tranzystorem, jak wszystkie inne. Zapomniałeś podłączyć emitery tranzystorów...

    Zerowanie Ci się nie przyda, bo u Ciebie kolumny wyłącza się stanem wysokim. Przy włączeniu zasilania wypełniasz wszystkie rejestry jedynkami, później ustawiasz 0 na AB dajesz impuls na CLK i wysterowujesz odpowiednio wiersze. Dla drugiej (i każdej następnej) kolumny dajesz 1 na AB, impuls na CLK i wysterowujesz wiersz...

    Pozdrawiam,
    Dr.Vee

    0
  • #28 06 Gru 2008 08:28
    lord_dagoth
    Poziom 25  

    Może zainteresuje Cie mój sterownik do matrycy 20x20, bardzo łatwo można go zmodyfikować do innych wymiarów ;)

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    0
  • #29 06 Gru 2008 12:45
    hiv_sick
    Poziom 22  

    witam kazde wyjscie rejestru podłączyłem do tranzystora ktory bedzie sterował kolumnami - tak jak pisałeś DR.VEE.

    [ATMEGA 8][BASCOM] Tablica informacyjna LED

    lord_dagoth jezeli mnie przekonasz, że twój sterownik będzie lepszy to wybiorę twój - podaj kilka argumentów...a może inni się wypowiedzą na ten temat?

    -1
  • #30 06 Gru 2008 17:54
    lord_dagoth
    Poziom 25  

    No nie wiem czy jest lepszy ale:
    Płytka jest ładniejsza, bo nie mam tranzystorów i związanej z nimi plątaniny ścieżek, tylko ULN'y i UDN'y. Na dodatek rejestr '595 ma zatrzask, dzięki czemu będziesz w trakcie przesuwania bitów nie będziesz miał efektu migania. Po prostu wsuniesz bity, a następnie jednym impulsem przepiszesz je na wyjście.

    Jak chcesz to wieczorem wrzuce schemat płytki, żeby pokazać czemu ULN'y i UDN'y są lepszy wyjściem niż tranzystory.

    0