logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wyświetlacz widmowy... raz jeszcze

Darawariusz 20 Gru 2009 17:13 3193 8
REKLAMA
  • #1 7414365
    Darawariusz
    Poziom 11  
    Witam wszystkich forumowiczów...

    Wykonałem płytke do wyświetlacza widmowego wg. schematu (tam gdzie to 3V to wpiąłem przewody od USB zeby zaprogramowac, bo do programowania potrzebne 5V)


    Link

    wygląda to tak...


    Link1

    nie było problemu wykonac jednak gorzej u mnie z programowaniem...
    zakupiłem na allegro programator stk 200/300, program wyglada nastepująco
    ' Program widmowy wyswietlacz LED
    $crystal = 8000000                                          ' 8 MHz
    Config Portb = &B11111111                                   'wszystkie porty B jako wyjścia
           Portb = &B00000000                                   'stan niski na porcie B
    Config Portd = &B1111111                                    'wszystkie porty D jako wyjścia
           Portd = &B0000000                                    'wszystko wyłaczone
    Dim A As Byte                                               'jak na zmienną wystarczy jeden bajt to nie trzeba od razu integera
    
    A = 0
    
       Do
       Portd = Lookup(a , Ex)
       Waitus 1000
       Portd = &B0000000
       A = A + 1
       If A = 23 Then Exit Do                                   ' napis wyswietla sie tylko raz po zresetowaniu
       Loop
    End
    
    
    Ex:
    Data 0 , 0 , 255 , 64 , 32 , 16 , 32 , 64 , 255 , 0 , 0 , 0 , 60 , 66 , 129 , 129 , 129 , 66 , 60 , 0 , 0 , 255 , 64 , 32 , 16 , 32 , 64 , 255 , 0
    ' kody poszczegolnych kolumn napisu


    pobrałem program Bascom AVR, zainstalowałem drukarke pod LPT, podlączyłem do kompa wszystko jak trzeba i dalej postepowałem tak...

    Link1
    Link2
    Link3
    Link4

    (fusebitow nie przestawiałem bo po pierwsze nie bardzo mam pojecia jak a po drugie wystarszy zeby układ pracował na wewnetrznym oscylatorze ktory jest ustawiony fabrycznie )

    to chyba wszystko co zrobiłem... skoro nie chce sie programowac to gdzies musi byc błąd... ale gdzie? bardzo prosił bym o pomoc...

    jesli czegos istotnego nie napisałem to prosze o stosowny komentaz

    pozdrawiam --> Darek
  • REKLAMA
  • #2 7422783
    guuciek
    Poziom 14  
    A ustawiony masz w bascomie ten programator który posiadasz??
    Bo według tego co tu pisze to nie widzi programatora albo raczej pracuje na sample electronic programmer . Lepiej programować AVRDUDE , i jakiejś nakładce graficznej do niego np . AVR burnomat .
    Tam ustawić swój programator i wyjście którego używa (lpt) . Ponadto dokładanie wtedy zostanie wyrzucony błąd co jest nie tak

    W basomie swój programator ustawiasz w options --> programmer --> i wybierasz stk200/300
    Potem ustawiasz odpowiedni port (adres) i powinno działać . Jednak jak najbardziej polecam AVR z ww nakładką lub lepiej , z nakładką którą napisałem ci na PW .
  • #3 7426921
    Darawariusz
    Poziom 11  
    po trudach udało sie wrescia zaprogramowac uC Bascomem AVR jednakchyba z programem cos nie tak... co jest zle w tym programie ze nie wyswietla sie napis ?

    dodam jeszcze ze reset powienien nastapic po zwarciu resetu z GND (kontaktronem)...


    ' Program widmowy wyswietlacz LED
    $regfile = "attiny2313.dat"
    $crystal = 8000000                                          ' 8 MHz
    Config Portb = &B11111111                                   'wszystkie porty B jako wyjścia
           Portb = &B00000000                                   'stan niski na porcie B
    Config Portd = &B1111111                                    'wszystkie porty D jako wyjścia
           Portd = &B0000000                                    'wszystko wyłaczone
    Dim A As Byte                                               
    
    A = 0
    
       Do
       Portd = Lookup(a , Ex)
       Waitus 1000
       Portd = &B0000000
       A = A + 1
       If A = 42 Then Exit Do               ' napis wyswietla sie tylko raz po zresetowaniu
       Loop
    End
    
    
    Ex:
    Data 255 , 255 , 195 , 231 , 126 , 62 , 28 , 0 , 128 , 192 , 240 , 124 , 127 , 99 , 127 , 99 , 124 , 240 , 192 , 128 , 0 , 255 , 255 , 49 , 49 , 127 , 206 , 128 , 0 , 60 , 126 , 195 , 195 , 195 , 195 , 126 , 60 , 0 , 0 , 0 , 0 , 0 
    ' kody poszczegolnych kolumn napisu 
  • REKLAMA
  • #4 7429669
    gorsomir
    Poziom 13  
    Witam w twoim kodzie masz zadeklarowaną prace z częstotliwością 8 MHz a skoro nie zmieniałeś fabrycznych fuse bitów to uC pracuje z częstotliwością 1Mhz

    Pozdrawiam
  • #5 7429775
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #6 7430337
    guuciek
    Poziom 14  
    Ale kontrakton zwiera reset z masą, przez co w tym samym punkcie obrotu, program zaczyna się od nowa.
    Ale coś mi w tym kodzie nie pasuje tak w ogóle?
    Czemu te bity przypisywane są do portu d skoro używasz portu b?
  • #7 7431783
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #8 7432361
    guuciek
    Poziom 14  
    Co do tego co napisałeś powyżej to się zgodzę , jednak kontaktron nie jest zły do tego celu . Co prawda ma swoją bezwładność ale jak na taki projekt wystaracza w 100 % . Też nie pochwalam ciągłego resetowania procesora i zgadzam się że iskrzenie styków w tym nie pomaga . Ale wystarczy napisać program który czeka tylko do pierszego stanu niskiego (nie na resecie ) i potem robi swoje a za ten czas kontaktron się ustabilizuje .
    Np dać 2 pętle , duża z całm kodem i wyświetlaniem i mała w środku dużej np :

    do
    do
    loop until pind.1=0
    'procedura wyświetlania tekstu

    loop
    end

    I w ten sposób praktycznie zaczyna się wszystko w jednym punkcie , jako że program robi swoje , jak skończy to czeka na ponowny sygnał niski i wraca do wyświetlania .

    Co do czasu resetu jest on też zależny od ustawień fusów , 1ms , 4 ms , 64 ms .
  • #9 7477090
    Darawariusz
    Poziom 11  
    dzieki za wszystkie wypowiedzi ... problem zażegnany :)


    temat do zamkniecia...


    w zalaczniku dodaje efekt pracy... zapraszam do obejzenia i ewentualnego komentaza ;)
REKLAMA