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

jak podpiąc wejścia pod atmega 16? // spalona atmega?

fjohny 30 Mar 2009 20:58 3698 20
REKLAMA
  • #1 6355008
    fjohny
    Poziom 10  
    Witam.

    mam pytanko o atmegę : czy gdy zadeklaruję załóżmy port a jako wejscie to na wejście mam podawać +5V czy 0V ?

    pytanie drugie: mam program sprawdzony (załaczanie diody). Symulator poprawnie go interpretuje a jak go wgram do uC (poprawna weryfikacja) to na wyjsciu nie ma sygnału. program przyjał, dobrze procka rozpoznał a efektu nie ma.

    Czy mogłem w jakiś sposób spalić te atmegę że wejscia/wyjscia nie działają a procek poprawnie działa?
  • REKLAMA
  • #2 6355079
    Konto nie istnieje
    Poziom 1  
  • #3 6355097
    _Robak_
    Poziom 33  
    Niech zgadne wystawiasz sygnal na porcie C ? ;)
  • REKLAMA
  • #5 6355400
    fjohny
    Poziom 10  
    W celu sprawdzenia wyjść uC napisałem taki oto program który na symulatorze działa poprawnie zaś na nóżkach uC brak napięcia... dlaczego?

    $regfile = "m16def.dat"                                    
    
    $crystal = 1000000                                         
    
    
    Config Porta = Output
    Config Portb = Output
    Config Portc = Output
    Config Portd = Output
    
    
    
               Do
    Wait 1
    
    
    Toggle Porta.0
    toggle Porta.1
    toggle Porta.2
    toggle Porta.3
    toggle Porta.4
    toggle Porta.5
    toggle Porta.6
    toggle Porta.7
    
    toggle Portb.0
    toggle Portb.1
    toggle Portb.2
    toggle Portb.3
    toggle Portb.4
    toggle Portb.5
    toggle Portb.6
    toggle Portb.7
    
    toggle Portc.0
    toggle Portc.1
    toggle Portc.2
    Toggle Portc.3
    toggle Portc.4
    toggle Portc.5
    toggle Portc.6
    toggle Portc.7
    
    toggle Portd.0
    toggle Portd.1
    toggle Portd.2
    toggle Portd.3
    toggle Portd.4
    toggle Portd.5
    toggle Portd.6
    toggle Portd.7
    Loop
    End
  • #6 6355631
    janbernat
    Poziom 38  
    No, ja bym czegoś takiego nie wymyślił...

    A czym mierzysz to napięcie?
  • #7 6356502
    fjohny
    Poziom 10  
    miernikiem w stosunku do masy lub diodą led. Wcześniej drobne programiki działały i wyjscia działały. Zacząłem poznawać sterowanie wejsciami i coś nie wyszło chyba bo już nic nie moge realizować na tej atmedze..

    Tylko że program sie wgrywa, weryfikuje wiec nie wiem czy mam uwalony układ czy co.. Podpowiedzcie coś.
  • #8 6356522
    _Robak_
    Poziom 33  
    Zrob pprogramy dwa, jeden w ktorym wystawiasz zera na wyjscie i sprawdz czy tak jest, oraz drugi gdzie wystawiasz jedynki. Jesli nie bedzie dzialac napisz, ale okresl co to znaczy nie dziala ;)
  • REKLAMA
  • #9 6356613
    fjohny
    Poziom 10  
    nie działa - program ma zapalać i gasić wyjścia (wszystkie) ale tego nie realizuje pomimo wgranego przedstawionego powyżej programu. Wgrałem też program który wcześniej działał i również nie działa - żadne wyjścia nie są wystawiane..

    Układ program przyjmuje i nie wykrywa żadnych problemów (verify OK)
  • #10 6356629
    _Robak_
    Poziom 33  
    Nie dziala, to znaczy? Pokaz ustawienia fusow
  • REKLAMA
  • #12 6356900
    Konto nie istnieje
    Poziom 1  
  • #13 6359824
    janbernat
    Poziom 38  
    Spróbuj wywalić End i po każdym "toggle" wstawić "Wait 1"
  • #14 6361316
    slawko_k
    Poziom 35  
    daj coś takiego. musi działać.
    
    config porta=output
    do
      porta=0
      wait 1
      porta=255
      wait 1
    loop
    end
    


    jeśli nie działa to albo porty uwalone albo źle mierzysz i wydaje ci się że nie działa a działa
  • #15 6367613
    fjohny
    Poziom 10  
    slawko_k; niestety ten program u mnie nie działa, natomiast nie było żadnych problemów z wgraniem go do uC. Zamieszczam ustawienia fusebit mojej atmegi.

    jak podpiąc wejścia pod atmega 16? // spalona atmega?
  • #16 6367723
    fjohny
    Poziom 10  
    uzupełniłem powyższy program o dodatkowe porty i nadal nie ma na wyjściu sygnałów ani względem + ani względem -.

    Czy dobrze mam ustawione fuse bity? gdzie jeszcze mogę coś podejrzec?
  • #17 6367758
    slawko_k
    Poziom 35  
    nie wiem co ci podpowiedzieć?
    co podajesz na reset? najlepiej zostaw w powietrzu. może procek cały czas jest w resecie
    czy program testujesz w wpiętym programtorem? jeśli tak to odepnij.
  • #18 6368768
    fjohny
    Poziom 10  
    testuję w dwojaki sposób, raz z prrogramatorem a raz bez niego. Najlepsze jest to że przy tym podłączeniu (bo jest takie samo cały czas) działały początkowo programy wystawiające wyjscia. Dopiero gdy zacząłem próbować pisać programy z obsługą wejść coś się sknociło. Chyba będę zmuszonykupić nowy uC...
  • #19 7774757
    fjohny
    Poziom 10  
    ech, w końcu znalazłem rozwiązanie, tylko wytłumaczcie mi co jest nie tak...

    taki program działa:

    config pind.6=input
    reset portd.6
    config portb.0=output
    reset portb.0
    do
         debounce pind.6,1,wlacz_led,sub
    loop
    wlacz_led:
         toggle portb.0
    return



    zaś taki banalny nie:

    Config Pind.6 = Input
    reset portd.6
    
    config portb.0=output
    reset portb.0
    
    do
         If Pind.6 = 1 Then
         Toggle Portb.0
    loop
      end if


    w powyższym przykładzie dioda mruga chaotycznie, niezależnie od stanu wejścia.
    Pytanie : DLACZEGO?
  • #20 7774828
    Konto nie istnieje
    Poziom 1  
  • #21 7775278
    slawko_k
    Poziom 35  
    nawet jak zmienisz kolejność loop z end if co jest bardziej niż oczywiste to twój program po podaniu 1 na wejście będzie non sto zmieniał stan diody więc ciągle będzie ona świecić. po podaniu 0 na wejście stanie w ostatnim stanie czyli zaświecona albo zgaszona.
REKLAMA