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

Jakie napięcie na nóżkach atmega8 ??

rybok_999 07 Sie 2010 00:10 4371 24
  • #1 8372765
    rybok_999
    Poziom 10  
    Witam

    Zacznę od tego iż z mikrokontrolerami mam stycznośc od kilku tygodni wiec nie wiem za dużo na ten temat. Pisałem temat na diodzie ponieważ nie mogłem ruszyć teraz jak już teoretycznie ruszyłem to nie wiem czy moge mieć to co mam.

    Teraz pytanie co mam.

    Mam napięcie na nóżkach mikrokontrolera 2.18v prawie na każdej nóżce. Dlatego nie mogłem sterować I/0 ponieważ cały czas miałem napięcie ale teraz poradziłem już sobie i podaje zamiast napięcia to mase. Ale i tak mam takie napięcie.

    I np. czy jak podepne LCD 2x16 bo takowy posiadam to nie bedzie problemów.??

    Moge miec takie napięcie ?? i z czego to sie bierze może jak to wyeliminować ??

    Będe wdzięczny za wszelkie sugestie.

    dziękuje i pozdwariam
  • #2 8372781
    MELP
    Poziom 16  
    Witam!
    Niech kolega napisze:
    1. jaki mikrokontroler stosuje,
    2. jak wygląda cały układ elektroniczny ( to jest jakaś płytka testowa? ),
    3. w czym kolega pisze program i niech wyśle kod programu.
    Bo na razie niewiele wiadomo i trudno będzie koledze pomóc.
  • #3 8372789
    rybok_999
    Poziom 10  
    Tak więc jak juz pisałem.

    1) Mikrokontroler Atmega8
    2) Oczywiście płytka testowa. ( jak narazie kombinuje i nie ma sensu wszystkiego po kilkaset razy lutować)
    3) Program jest napisany w BascomAVR
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    
    
    Config Portb.1 = Output
           Portb.1 = 1
    Config Portc.5 = Input
           Portc.5 = 1
    
    
     Do
         If Pinc.5 = 0 Then
         Waitms 150
         Toggle Portb.1
    
         End If
    
     Loop
    
    End


    Ten program działa ponieważ jak pisałem wyżej na nóżkach mam wciąz napięcie i musze sterować masą. Gdybym nie miał napięcia mógł bym podawać Vcc na przycisk

    Chyba w miare zrozumiałe. Gdyby coś prosze pytać.
  • #4 8372895
    MELP
    Poziom 16  
    Atmega 8 jest układem cyfrowym, więc na nóżkach zdefiniowanych jako wyjście w tym wypadku Portb może być napięcie bliskie 0V lub bliskie Vcc.

    Cytat:
    ...podaje zamiast napięcia to mase.


    Gdzie to kolega podaje, na który pin?? Na wszystkie nóżki??

    Cytat:
    ...na nóżkach mam wciąz napięcie i musze sterować masą. Gdybym nie miał napięcia mógłbym podawać Vcc na przycisk


    Niestety nie rozumiem jak kolega steruje masą...
    Bez schematu wiele nie zdziałamy, niech kolega podeśle link do strony z schematem, albo podeśle schemat w Eaglu lub jako jpg.
    Jakie jest napięcie zasilania układu scalonego?
  • #5 8372934
    danthe
    Poziom 30  
    Z tego co widzę kolega jest przyzwyczajony do logiki dodatniej - stan aktywny wysoki +vcc . I chciałby nadal w ten sposób sterować atmegę czyli podawać plus aby wywołać reakcję procesora. Proponuję dwa rozwiązania.

    1. Przestać myśleć szablonowo i zaakceptować fakt że w wielu przypadkach za stan aktywny uważa się stan niski.

    2. Zrezygnować z wewnętrznego rezystora pull-up (portc.5 = 0) i dodać zewnętrzny rezystor pomiędzy nóżkę c.5 procesora i masę (czyli skomplikować układ).

    Osobiście szczerze radzę sięgnąć po pierwszą możliwość bo są też układy peryferyjne dla których też stanem aktywnym często jest "0" i wtedy nie będziesz miał problemu ze skomplikowanymi rozwiązaniami i dokładaniem sobie zbędnej pracy.

    Pozdrawiam i życzę sukcesów - Daniel
  • #6 8372993
    rybok_999
    Poziom 10  
    Ok wiec napisze to najjaśniej jak umie.


    Tak wiec prosze popatrzeć na kod programu w poście wyżej. On działa bezproblemowo. Lecz abym doszedł do tego potrzebne mi było wielu dni.

    Standartowo wgrywałem kod z diody czyli wyglądało to następująco na mojej atmedze:
    
    $regfile = "m8def.dat" 
    $crystal = 1000000 
    
    
    
    Config Portb.1 = Output 
           Portb.1 = 0 
    Config Portc.5 = Input 
           Portc.5 = 0 
    
    
     Do 
         If Pinc.5 = 1 Then 
         Waitms 150 
         Toggle Portb.1 
    
         End If 
    
     Loop 
    
    End


    I w ten sposób nic nie działa a teoretycznie powinno. A dlaczego nie działa ??

    Więc ten program wygląda tak że gdy na pinc.5 podam Vcc to zmienia sie stan na portb.1.
    ALE ja mam jak pisałem wyżej na nogach napięcie 2.16 wiec on brał sobie ten prąd i nic mi nie działało.

    Gdy kombinowałem tak długo aż zmieniłem program ( ten w poprzednim poście) i on działa dlatego że na nogach jest prąd.
    ALE jak pisałem wyżej steruje masą. Czyli gdy na portc.5 podam GND to na pinb.1 mam wtedy Vcc i wszystko śmiga.

    Ale moje pytanie jest takie jak np. podłącze wyświetlacz pod Atmege8. (mam 2 sztuki i tak samo to działa)

    Ona ma napięcie na nogach i czy nie będzie to przeszkadzało w tym aby on poprawnie działał ??

    Teraz jeszcze obczaiłem że jeżeli w programie napisze:
    
    Config Portc.4 = Output
           Portc.4 = 0
    


    To mam 0 volt na tym pinie. Ale jeśli napisze że to input to odrazu mam 2.16volt
  • #7 8373140
    mirekk36
    Poziom 42  
    MELP napisał:
    Atmega 8 jest układem cyfrowym, więc na nóżkach zdefiniowanych jako wyjście w tym wypadku Portb może być napięcie bliskie 0V lub bliskie Vcc.


    A słyszał kolega o stanie wysokiej impedancji na wejściu HI-z ??? w tym stanie (a w taki wprowadza autor) normalnym jest, że napięcie może być prawie dowolne pomiędzy 0-5V (jest wtedy pływające i to całkiem normalny jeden ze stanów w technice cyfrowej)

    Dzieje się tak dlatego, że pn ustawiony jest jako wejście i nie jest podciągnięty ani zewnętrznym rezystorem ani wewnętrznym np do VCC.


    Druga sprawa panie autor - jak chcesz przestawiać jakiś pin na wejście alb wyjście w Bascomie to pisz tak jak się należy i tak jak masz to opisane w Helpie, czyli:

    Config Pinb.1 = Output


    albo

    Config Pinb.1 = Input


    a nie tak jak ty cuda robisz:

    Cytat:
    Config Portb.1 = Output !!!


    Jeśli chcesz mieć prawidłowe wejście, które będzie reagowało na stan NISKI (bez rezystora zewnętrznego podciągającego do VCC) to musisz napisać:

    Config Pinc5.1 = Input
    Portc.5 = 1


    czyli ustawiasz nogę portu C.5 jako wejście a drugą instrukcją robisz tzw programowe podciąganie do VCC rozumiesz ???? wtedy na wejściu nie będziesz miał, żadnego napięcia pływającego pomiędzy 0 a 5V i ładnie będzie reagowało na

    If Pinc.5 = 0 then coś tam


    A jeśli chcesz sterować wyjściem to robisz:

    Config Portc.4 = Output


    (bo to jest ustawienie jako wyjście !!!! a nie twoje Config Portc.4=Output) to twoje polecenie nic nie robi , a że domyślnie Bascom wszystkie Piny po resecie ustawia jako wyjścia (to też zapamiętaj sobie) to dlatego akurat działa ci już prawidłowo następna instrukcja:

    Portc.4 = 0 ---- ustaw stan niski na pinie C.4

    
    Portc.4 = 1 ----- ustaw stan wysoki na pinie C.4


    teraz jaśniej ?????

    Dodano po 3 [minuty]:

    Poprawka , nawet może jeśli w Bascomie poprawnie działa Config Portc.5=Input zamiast Config Pnc.5=Input to nie zmienia faktu, że jeśli ustawisz pin jako wejście:

    Config Pinc.5 = Input

    a następnie zdejmiesz programowe podciąganie do VCC poprzez polecenie:

    Portc.5=0

    to wtedy właśnie uzyskasz wejście w stanie wysokiej impedancji
  • #8 8373391
    landy13
    Poziom 31  
    mirekk36 napisał:
    domyślnie Bascom wszystkie Piny po resecie ustawia jako wyjścia (to też zapamiętaj sobie)


    Czy aby na pewno?
  • #9 8375939
    mirekk36
    Poziom 42  
    landy13 napisał:
    mirekk36 napisał:
    domyślnie Bascom wszystkie Piny po resecie ustawia jako wyjścia (to też zapamiętaj sobie)


    Czy aby na pewno?


    Z tego co pamiętam kiedy jeszcze bawiłem się Bascomem to tak było. A teraz? Co za problem sobie sprawdzić w helpie albo doświadczalnie. Jedno czy drugie to "dwa" ruchy ręką.
  • #10 8376041
    danthe
    Poziom 30  
    Od kiedy pamiętam to nie skonfigurowane piny są wejściami. A działanie instrukcji portx.x = 1 po resecie włączy rezystor podciągający i też miernik pokaże 5v, a po instrukcji portx.x = 0 może pokazać wartość bliską zeru. Jutro sprawdzę doświadczalnie, a co mi tam :D .

    P.S. Zajrzałem sobie na stronę kolegi mirekk36, cytat:

    "Zapraszamy na kursy programowania mikrokontrolerów AVR.
    .
    .
    3. programowanie mikroprocesorów w językach: Bascom, asembler oraz C"

    Hmm, i później po takim kursie delikwent jest święcie przekonany że jak nie skonfiguruje portu to będzie miał wyjścia, a układ jeśli działa to tylko cudem z powodu obecności rezystora podciągającego. Ile jeszcze błędnych informacji można wynieść z takiego kursu... ?
  • #11 8376054
    Konto nie istnieje
    Poziom 1  
  • #12 8376149
    mirekk36
    Poziom 42  
    danthe napisał:

    .
    3. programowanie mikroprocesorów w językach: Bascom, asembler oraz C"

    Hmm, i później po takim kursie delikwent jest święcie przekonany że jak nie skonfiguruje portu to będzie miał wyjścia, a układ jeśli działa to tylko cudem z powodu obecności rezystora podciągającego. Ile jeszcze błędnych informacji można wynieść z takiego kursu... ?


    Zacznij kolego najpierw czytać ze zrozumieniem, potem się trochę doucz żeby później nie wypisywać takich bzdur. (pod koniec mojego postu zanim mnie "dopadliście" sam napisałem, że być może nie pamiętam domyślnych ustawień Bascoma. A czytanie ze zrozumieniem i sprawdzanie tego co ktoś pisze na forum to podstawa - zamiast ślepego wykonywania takich porad szczególnie takich jak twoje:

    danthe napisał:
    Z tego co widzę kolega jest przyzwyczajony do logiki dodatniej - stan aktywny wysoki +vcc . I chciałby nadal w ten sposób sterować atmegę czyli podawać plus aby wywołać reakcję procesora. Proponuję dwa rozwiązania.

    1. Przestać myśleć szablonowo i zaakceptować fakt że w wielu przypadkach za stan aktywny uważa się stan niski.

    2. Zrezygnować z wewnętrznego rezystora pull-up (portc.5 = 0) i dodać zewnętrzny rezystor pomiędzy nóżkę c.5 procesora i masę (czyli skomplikować układ)....


    Kurczę logika dodatnia do sterowania atmegi, szablonowe myślenie o przypadkach. Takie szablonowe myślenie o chyba tylko ty miałeś.

    Skomplikowanie układu rezystorem - szok!

    Pomyśl na drugi raz zanim zaczniesz wypisywać takie bzdury.


    emarcus napisał:
    Nie sądzę aby to było jaśniej. Namąciłeś mu w głowie okropnie!.....
    O wiele łatwiej jest przeczytać ze zrozumieniem jeden mały paragraf w „BASCOM Manual” odnośnie konfiguracji portów (str.145/146) PortB As General Digital I/O, gdzie w bardzo wyraźny sposób określono różnice co należy rozumieć PORT a co jest PIN. W dalszej części wyraźnie określono możliwość alternatywnego stosowania jednego lub drugiego terminu, bo w sumie cała konfiguracja kierunku PORTu jako całej szerokości lub pojedynczego BITu/PINu sprowadza się do edytowania lub konfiguracji DDRx.
    Autor tego wątku zapewne przeoczył ten paragraf i ma trudności ze zrozumieniem configuracji kierunku portu lub pojedynczego bitu/pinu.
    Także wydaje mi się że nie bardzo jest mu znana istota/koncept i potrzeba podciągania „pull up” (nie ważne czy to jest wewnętrzne lub zewnętrzne) dla Input posługując się „prostą ludzką logiką myślenia”, którą nie bardzo wygodnie jest wdrożyć do świata cyfrowego. Wygodniejsze jest tu stosowanie odwrotnej logiki - „ZERO (stan niski) jako Input”.

    Poza tym: “By default, the DDR and PORT registers are 0.” Zdaje się że zero dla DDR oznacza INPUT a nie OUTPUT, a dla portu - nieaktywne wewnętrzne podciąganie. A to nie ma juz związku z Bascom.

    e marcus


    Dużo lepszym specjalistą od mącenia jest widzę kolega. Chyba przez to, że aby coś zrozumieć stosujesz logikę zbyt odwrotną.

    Na początek poczytajcie sobie dobrze Helpa Bascoma z niego się dowiecie, że istanieje tzw trzeci stan - stan wysokiej impedancji Hi-Z !!!

    Jakie napięcie na nóżkach atmega8 ??

    na czerwono zaznaczyłem - to, że w Bascomie domyślnie piny ustawiane są jako wejścia - więc w kilku postach wyżej pomyliłem się ale też od razu zaznaczyłem, że nie pamiętam, że może jest odwrotnie i autor musi sam sprawdzić.
    Wyraźnie opisałem jak zmienia się ustawienia pojedynczych pinów portów, nie omawiając ustawiania kierunku całych portów.

    Zajrzyjcie sobie jeden z drugim do HELPA:

    Jakie napięcie na nóżkach atmega8 ??

    i poczytajcie proszę ze zrozumieniem.

    A dodatkowo nie wciskajcie kitów o waszych logikach zbyt odwrotnych, o ciężkim komplikowaniu układu przez dodanie rezystora czy przez próbę zrozumienia co to jest podciąganie bo to akurat jest jedną z podstaw przy programowaniu procków.

    A jeśli macie tak duże problemy ze zrozumieniem Tri-state (Hi-Z) to poczytajcie tutaj może to wam pomoże:
    http://en.wikipedia.org/wiki/High_impedance

    do tego żeby zrozumieć co to jest Pull-up i skąd mogą się brać stany nieustalone:
    http://pl.wikipedia.org/wiki/Pull-up

    Przyda się wam też może lektura o bramkach logicznych byle chciało się np koledze danthe przeczytać do końca i uważnie - w załączniku:
  • #13 8377898
    danthe
    Poziom 30  
    Mnie również zdarzało się popełnić jakiś błąd doradzając na tym forum, ale gdy wskazywano mi możliwość pomyłki natychmiast to sprawdzałem i poprawiałem a nie odsyłałem z tekstem typu "mogę się mylić, sprawdź sobie sam".
    Dziwi mnie również taka ostra reakcja na krytykę.

    Odnośnie logiki dodatniej / ujemnej to chyba żartujesz?

    Cytuję za wikipedią :
    Cytat:
    Jeśli do napięć wysokich zostanie przyporządkowana logiczna jedynka, a do niskich logiczne zero, wówczas mówi się, że układ pracuje w logice dodatniej (inaczej zwaną pozytywną), w przeciwnym razie mamy do czynienia z logiką ujemną (inaczej zwaną negatywną).


    W notach wielu układów cyfrowych znajdziesz określenie "active low" oznaczające że stanem aktywnym jest 0 !

    Ponadto próbujesz doradzać osobie która jest właśnie na etapie podstaw działania mikrokomputerów jednoukładowych (oceniam na podstawie postów autora), więc myślę że nie można za wiele wymagać i trzeba jasno i wyraźnie wytłumaczyć z czym ma do czynienia.

    Żeby właściwie skonfigurować porty Atmegi są następujące możliwości:

    Config Pinx.y = input/output - konfiguruje pojedynczy pin (y) portu (x) jako wejście lub wyjście.
    Config Portx = input/output - konfiguruje cały port (x) jako wejście lub wyjście.
    Config Portx = wartość - konfiguruje portx według podanej wartości, najłatwiej w postaci binarnej czyli &bxxxxxxxx

    Przykłady:

    Config Pinb.0 = input - Pin b.0 jest wejściem
    Config Pinb.1 = output - Pin b.0 jest wyjściem
    Config Portb = &b10000001 = pin b.0 oraz b.7 jest wyjściem (1) pozostałe piny portu b są wejściami (0)

    Gdy pin jest skonfigurowany jako wejście jest jeszcze możliwość włączenia wewnętrznego rezystora podciągającego wejście do +VCC przez ustawienie portu (w tym przykładzie b.0) w stan wysoki - Portb.0 = 1
    Rezystor podciągający ma wartość w przedziale 20k do 100k (zaczerpnąłem z noty katalogowej).

    
    
    $regfile = "m8def.dat" 
    $crystal = 1000000 
    
    
    
    Config Pinb.1 = Output 
    Config Pinc.5 = Input
    
    Portb.1 = 0                 'na wyjściu 0V 
    Portc.5 = 1        ' wejście podciągamy do +5V
    
    
     Do 
         If Pinc.5 = 0 Then        'zwarcie pinu c.5 do masy spowoduje spełnienie warunku
         
         Waitms 150 
         Toggle Portb.1 
    
         End If 
    
     Loop 
    
    End
  • #14 8378366
    mirekk36
    Poziom 42  
    danthe napisał:
    Żeby właściwie skonfigurować porty Atmegi są następujące możliwości:

    Config Pinx.y = input/output - konfiguruje pojedynczy pin (y) portu (x) jako wejście lub wyjście.
    Config Portx = input/output - konfiguruje cały port (x) jako wejście lub wyjście.
    Config Portx = wartość - konfiguruje portx według podanej wartości, najłatwiej w postaci binarnej czyli &bxxxxxxxx

    Przykłady:

    Config Pinb.0 = input - Pin b.0 jest wejściem
    Config Pinb.1 = output - Pin b.0 jest wyjściem
    Config Portb = &b10000001 = pin b.0 oraz b.7 jest wyjściem (1) pozostałe piny portu b są wejściami (0)

    Gdy pin jest skonfigurowany jako wejście jest jeszcze możliwość włączenia wewnętrznego rezystora podciągającego wejście do +VCC przez ustawienie portu (w tym przykładzie b.0) w stan wysoki - Portb.0 = 1
    Rezystor podciągający ma wartość w przedziale 20k do 100k (zaczerpnąłem z noty katalogowej).


    I teraz w końcu dobrze i jasno mówisz (chociaż to samo co ja wcześniej). I to jest proste wytłumaczenie a nie początkującemu o logice odwrotnej, dodatneij czy ujemnej....
  • #15 8378605
    rybok_999
    Poziom 10  
    Witam. Miałem małe kłopoty z internetem i dopiero teraz jestem. A więc tak. To co piasliście jest dla mnie w miare jasne.

    ALE Chodzi o to że ( napisze to teraz w takim języku jak Wy piszecie):

    możliwość włączenia wewnętrznego rezystora podciągającego wejście do +VCC

    I wszystko fajnie tylko gdy ja podciągam ten vcc albo gnd to nigdy na wejściach podkreślam wejściach nie mam odpowiedniego napięcia.

    Np. gdy napisze:
    $regfile = "m8def.dat" 
    $crystal = 1000000 
    
    
    
    Config Pinb.1 = Output 
    Config Pinc.5 = Input 
    
    Portb.1 = 0                  ' Tutaj mam 2,16 volta
    Portc.5 = 1         
    
    
     Do 
         If Pinc.5 = 0 Then        
         Waitms 150 
         Toggle Portb.1 
    
         End If 
    
     Loop 
    
    End


    Tak jak napisałem mam tam 2,16 volta. A gdy napisze w tym samym miejscu:
     Portb.1 = 01

    mam tam 3.70 czy coś takiego w każdym razie powyżej 3 poniżej 4.


    Moje pytanie jest takie. Wgrałem na mikrokontroler tylko do sprawdzenia programik który ma wyświetlać coś na LCD.
    Po podłączeniu zasilania miał na nóżkach które mają iśc do wyświetlacze po 2,16 volta.

    Czy w takim stanie wyświatlacz zadziała ??
  • #16 8378962
    Jaca
    Poziom 31  
    Sprawdź zasilanie całego układu. Jakim napięciem zasilasz procek (zmierz) oraz podaj sposób podłączenia zasilania do M8 (które nogi wykorzystujesz) ?
  • #17 8379138
    mirekk36
    Poziom 42  
    Jaca napisał:
    Sprawdź zasilanie całego układu. Jakim napięciem zasilasz procek (zmierz) oraz podaj sposób podłączenia zasilania do M8 (które nogi wykorzystujesz) ?


    To jedno i najważniejsze. A po drugie sprawdź czy masz w ogóle dobry miernik. Bo tu juz kiedyś jeden osobnik walczył z 5 dni z dziwnymi napięciami zanim w końcu zobaczył że ma miernik skopany.

    Podaj schemat dokładny tego co i jak połączyłeś.
  • #18 8379220
    danthe
    Poziom 30  
    Warto by jeszcze wspomnieć o kondensatorach odsprzęgających 100nF ceramicznych włączonych pomiędzy GND i Vcc możliwie najbliżej wyprowadzeń układu. Tak dla wyrobienia odpowiednich przyzwyczajeń :D . I pytanie czy wszystkie wejścia zasilania są podłączone? Bo nie wystarczy podłączyć tylko jednej nóżki GND oraz VCC, trzeba podłączyć wszystkie GND oraz musi być zasilone także wejście AVCC.
  • #19 8379285
    rybok_999
    Poziom 10  
    Tak więc mam to na płytce stykowej jak pisałem wyżej. wiec tak :

    VCC 7
    GND 8 22

    te numerki to tak jak na rysunku w datasheet. Oczywiście kondensatory posiadam w układzie. Kombinowałem bez ale wtedy jak np. włączyłem diode to napięcie spadało a z kondensatorem mam jedno.

    A no i zasilanie. Mam zasilacz 9 volt. z tego idzie do stabilizatora ( z tego co pamiętam 7805cv. Ale głowy nie daje. I przy stabilizatorze oczywiście mam również kondensator.

    I na procku mam 5.01Volta Czyli mysle że to mam dobrze.

    Tylko dlaczego takie rzeczy sie dzieją... Co moge dołozyć ?
  • Pomocny post
    #20 8379407
    danthe
    Poziom 30  
    Koniecznie dołącz zasilanie (+5V) do nóżki AVCC czyli nr 20. Domyślam się że programujesz amegę w programatorze a następnie wkładasz ją do płytki stykowej? No i jeszcze te kondensatory 100nF, dobrze by były przy samym procku.

    Przez jaki rezystor podłączasz diodę świecącą i do plusa czy do masy ?

    Może spróbuj tak :

    
    $regfile = "m8def.dat" 
    $crystal = 1000000
    
    Config portb = output
    
    do
    
    portb = 255
    
    wait 2
    
    portb = 0
    
    wait 2
    
    loop
    
    


    Może dla twojego miernika przełączanie stanu 6x na sekundę to za szybko i nie może właściwie zareagować ? Po uruchomieniu tego programu powinno być 5V przez 2 sekundy i 0V przez następne 2 sekundy.
  • #21 8382514
    rybok_999
    Poziom 10  
    danthe GENIALNE to działaPowiedz mi dlaczego mi to nie chodzi ??

    Znaczy Twój program działa idealnie ale moje nie chodzą co ja mam źle ??
  • #22 8382652
    mirekk36
    Poziom 42  
    rybok_999 napisał:

    Znaczy Twój program działa idealnie ale moje nie chodzą co ja mam źle ??


    A co rozumiesz pod pojęciem , że ci nie działa ??? Dioda LED podpięta do Portb.1 nie miga ci z prędkością co 150ms ??? gdy trzymasz wciśnięty klawisz ????

    Tylko nie mierz napięcia - za to obserwuj miganie diody LED albo zwiększ czas ze 150ms do np 500ms

    Tylko podłącz to zasilanie +5V także do nogi AVCC
  • #23 8382659
    danthe
    Poziom 30  
    Trudno powiedzieć, odnosząc się do poprzedniej wypowiedzi może to być :
    Pomyłka w konfiguracji - może mierzysz napięcie n niewłaściwej końcówce?
    Może za szybko zmieniałeś stan na wyjściu (150ms) co powodowało że miernik zgłupiał?
    Ustawiłem cały port b jako wyjście, i ładowałem do niego same jedynki / zera (255 = FF hex = 11111111 bin / 0 = 00 hex = 00000000 bin) co mogło wykluczyć pomyłkę w pinach wyjściowych.

    Jeśli chcesz podpiąć diodę led koniecznie użyj rezystora w szereg z diodą o oporze 220 - 470 om.

    Widzę że z mirekk36 chociaż innymi słowami to jesteśmy jednak zgodni.
  • #24 8382776
    rybok_999
    Poziom 10  
    Panowie ok moje sprostowanie.

    Działa mi to ale na output.

    Gdy pisze program i na input dam 0 ( więc steruje VCC, czyli gdy podpinam na dany pin vcc to działa.)

    Ale nie działa bo ja na tym pinie mam napięcie i on tak jak by cały czas pracuje. Myśli że ja trzymam napięcie chociaż nie trzymam ale po zmierzeniu miernikiem jest 2.16
  • #25 8382881
    danthe
    Poziom 30  
    Hmm, więc po kolei.

    Rozumiem że używasz Amega8 w obudowie PDIP 28?

    Nóżkę 28 (pinc.5) chcesz wykorzystywać jako wejście? (Input)
    Nóżkę 15 (pinb.1) chcesz wykorzystywać jako wyjście? (Output)

    Na wejście chcesz koniecznie podawać stan wysoki? (+5V)
    Co chcesz podłączyć do wyjścia ?
    Czy zastosowałeś się do rady i podłączyłeś +5V do nóżki 20? (AVCC)

    Jeżeli na to wejście chcesz podawać stan wysoki to musisz podłączyć rezystor pomiędzy nóżkę wejściową i masę, może być powiedzmy od 1k do 10k, wtedy napięcie powinno spaść do 0V.
REKLAMA