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

Atmega8, nie działa tak jak powinna

Widmo2006 31 Paź 2010 21:54 2799 22
  • #1 8686904
    Widmo2006
    Poziom 11  
    Witam!

    Nie wiem czy w dobrym dziale to zamieszczam ale zaryzykuję.

    Otóż kupiłem niedawno dwa układy atmega8 i kilka układów attiny2313.
    Attiny działa mi bardzo dobrze, nie ma z nim żadnych problemów.
    Atmega natomiast działa ale dziwnie tzn, gdy napiszę program na miganie diody to ona tylko świeci, na attiny ten sam program działa.
    Zauważyłem, że atmega nie wykonuje żadnych rozkazów po "waitms", po prostu staje i na tym koniec.
    Pomóżcie co to może być, uszkodzony układ?

    Proszę, zgodnie z regulaminem pkt 11.1, o usunięcie słów PROBLEM lub/i POMOC z tytułu. Prośba dotyczy także wszelkich wariacji typu: kłopot, pomocy, problemy itd. - arnoldziq
  • #2 8686983
    tadzik85
    Poziom 38  
    Stawiam na twój błąd. Ale z twojego opisu można tylko wróżyć. Jakiś kod, dokładny opis problemu?
  • #3 8687156
    mirekk36
    Poziom 42  
    Jak można w ogóle zadawać takie pytanie i nie wesprzeć go kawałkiem kodu ???? jakiegoś schematu i tym podobnych informacji. Lekka masakra! A do tego "Pomóżcie!" , "czy to uszkodzony układ?". Szok!.
  • #4 8687753
    Widmo2006
    Poziom 11  
    Chciałeś kod to masz, ale co to zmieni jak na attiny ten program działa a na atmega nie, to jest troche dziwne nie uważasz?



    $regfile = "attiny2313.dat"
    $crystal = 4000000


    Config Portb.2 = Output

    Do
    Toggle Portb.2
    Waitms 50
    Loop


    PS: nie zadawajcie pytań czy podłączyłem dobrze bo dobrze podłączyłem.

    Za wszelkie sugestie dzięki.
    Aha i druga atmega którą kupiłem w tym sklepie wo góle nie działa.
  • #5 8687770
    kubus_puchatek
    Poziom 18  
    Ja tam się nie znam bo to jakiś dziwaczny język ale skoro masz:
    $regfile = "attiny2313.dat"
    to to jest wyraźna sugestia że to nie na atmega8, więc tą linijkę trzaby aby zmienić.
  • #7 8687777
    sulfur
    Poziom 24  
    Jeśli na ATmegę nagrywasz dokładnie ten sam program, to nie dziwne, że nie działa.
  • #9 8687813
    hotdog
    Poziom 26  
    Widmo2006 napisał:
    PS: nie zadawajcie pytań czy podłączyłem dobrze bo dobrze podłączyłem.


    Ja po około 4 latach obcowania z tymi procesorami bym 10 razy wszystko sprawdził zanim bym takie coś napisał. Ty rozpoczynający przygody powinieneś sobie takie frazy darować, no chyba że nie oczekujesz tutaj pomocy. Tutaj pracujesz na sprzęcie i na to czy on będzie działał ma wpływ dużo rzeczy. Jest to co najmniej 3 razy trudniejsze od zwykłego programowania na PC.

    Jest bardzo mało prawdopodobne, żebyś kupił zepsute procesory... tym bardziej 2. Ja już programowałem setki tych procesorów i jednej sztuki wadliwej nie było. Stawiam flachę że procesory są sprawne. Sprawdź czy megi są dobrze zasilane (mają 2 nóżki do których trzeba podłączyć - AVCC i VCC i 2 nóżki GND). Sprawdź stabilność zasilania.

    Poza jak napisali poprzednicy rzeczywiście jak nie zmieniłeś deklaracji procesora to nie dziwi mnie że skompilowany program nie działa.

    Pozdrawiam
  • #10 8687865
    mirekk36
    Poziom 42  
    Widmo2006 napisał:
    Chciałeś kod to masz, ale co to zmieni jak na attiny ten program działa a na atmega nie, to jest troche dziwne nie uważasz?


    Nie uważam, a ty poczytaj co tutaj już ludzie napisali na temat twojego rzekomo dobrego kodu, który na tiny działa jak twierdzisz a na mega , nie.

    Widmo2006 napisał:
    PS: nie zadawajcie pytań czy podłączyłem dobrze bo dobrze podłączyłem.


    Przykro to mówić, ale pisząc takie rzeczy i tak zadając pytania na forum ośmieszasz się po prostu i to już całkowicie.

    Widmo2006 napisał:
    Za wszelkie sugestie dzięki. Aha i druga atmega którą kupiłem w tym sklepie wo góle nie działa.

    To zastanów się czy tobie chodzi o to żeby pomóc w rozwiązaniu problemu czy o to żeby wszyscy grzecznie potwierdzili twoje niestety bzdurne teorie o uszkodzonych prockach z fabryki/sklepu.
  • #11 8687895
    Widmo2006
    Poziom 11  
    Chciałem się tylko dowiedzieć czy ktoś miał już podobny problem. A co do kodu to nie jestem taki głupi żeby nie zdefiniować procka czy czego tam jeszcze, dałem po prostu przykładowy program żebyście sie nie czepiali że źle napisałem. Procek sie dziwnie zachowuje i i nie wiem co o tym myśleć.
  • #12 8687939
    mirekk36
    Poziom 42  
    Widmo2006 napisał:
    nie jestem taki głupi żeby nie zdefiniować procka czy czego tam jeszcze, dałem po prostu przykładowy program żebyście sie nie czepiali że źle napisałem. Procek sie dziwnie zachowuje i i nie wiem co o tym myśleć.


    Nikomu przez myśl nigdy nie przechodzi, że ktoś kto zakłada nowy temat jest głupi, no chyba że sam pytający w kolejnych postach potęguje to wrażenie, do czego ty na pewno masz zdolności. To po pierwsze.

    Po drugie jak już ochłoniesz i będziesz chciał myśleć to wtedy wklej kod dokładnie taki jaki masz na atmega8 oraz pokaż schemat połaczeń a najlepiej jeszcze fotkę swojego układu testowego i ew programatora.

    Jeśli jednak uważasz nadal że wszystko masz dobrze zrobione a procek nie działa, to idź że pan do HydeParku i tam wtedy głoś swoje kazania o tym, że nowe procesory ze sklepu są zepsute - wtedy spokojnie będziesz mógł oczekiwać na brawa po takich wypowiedziach. Tam będzie mała , ale szansa że się pojawią. A wtedy potwierdzisz sobie swoją teorię, obrazisz się na ten sklep i już nigdy nie kupisz u nich procka. Kupisz w innym .... a sytuacja się powtórzy i koło się zamknie. Aż kiedyś w końcu zrozumiesz jak warto zadawać pytania do tych, którzy już dużo dłużej niż są z mikrokontrolerami "za pan brat"
  • #13 8688109
    Widmo2006
    Poziom 11  
    Kurde trochę głupio wyszło bo widzę że każdy się wkurza ale zrozumcie mnie, ja nie mam już nerwów do tego, pisze program na attiny żeby dioda migała i miga, pisze program na atmega żeby dioda migała a ona świeci. Próbowałem już chyba wszystkiego, różne opóźnienia, różne ustawienia kwarcu a program i tak sie wiesza na "waitms", przynajmniej takie mam wrażenie. Nie chodzi tu o żadne programatory i układy tylko o jedną głupią diode żeby migała.

    Prosze was nie wściekajcie się, sorki że pisze jak opętany ale już mnie to tak wkur... że mam ochote tym o ścianę walnąć :/

    Czy jest możliwe że procek nie wykonuje instrukcji?
  • #14 8688176
    adi84_84
    Poziom 14  
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    
    Config Portd.2 = Output
    
    Do
    Toggle Portb.2
    Wait 1
    Loop


    Może spróbuj na innym porcie np:
    Config Portc.2 = Output
    Toggle Portc.2

    No i najważniejsze:daj schemat,może być nawet na kartce narysowany! Gdzieś na pewno popełniasz błąd bo to musi działać!!! Czym programujesz(programator) i jakiego programu do tego używasz?
  • #15 8688272
    Widmo2006
    Poziom 11  
    Programowałem dwoma programatorami ISP pierwszy to samoróbka bez żadnego bufora przy lpt a drugi to stk200, na obydwu jest taki sam efekt. Gdybym miał jakis programator szeregowy to też bym spróbował na nim.

    Na wszystkich portach mikro kontrolera jest tak samo. Program do programowania to bascom AVR, dwie wersje przetestowane. Próbowałem też wgrywać pony progiem ale niestety jest to samo.


    Atmega8, nie działa tak jak powinna

    pisałem też program aby np: jednym przyciskiem zaświecić 2 diody a drugim przyciskiem inne diody na innych portach, program działa ale jak chce go zmodyfikować aby diody migały to program tak jakby sie wiesza. Podobny program na attiny działa :(


    Do
    Toggle Portb.2
    Waitms 50
    Loop

    jest tak że gdy dam waitms przed toggle to dioda nawet sie nie zaświeci
  • #16 8688335
    mirekk36
    Poziom 42  
    Widmo2006 napisał:

    PS: nie zadawajcie pytań czy podłączyłem dobrze bo dobrze podłączyłem.


    Sorry, że się czepiam ale mam nadzieję, że po tej lekcji już nigdy na forum nie użyjesz tak głupiego tekstu jak wyżej zacytowałem.

    Bo ŹLE podłączyłeś !

    Zobacz sobie w nocie PDF na procesor ATmega8 - nie widzisz tam drugiego pinu GND ????? nie widzisz tam drugiego pinu AVCC ???? to są najnormalniejsze jak dla ciebie piny zasilania i TRZEBA KONIECZNIE je podłączać do zasilania! (Tylko proszę, nie wyskakuj mi teraz na to z komentarzami, że widziałeś na wielu schematach, że ludzie nie podłączają - bo jeśli ci ludzie będą dla ciebie wzorem i te schematy a ty bez zrozumienia będziesz je powielał to dotąd będziesz miał po wsze czasu ciągle różne dziwne problemy z mikrokontrolerami) Zresztą te tematy są wałkowane do upadłego na elektrodzie i wystarczy chcieć poszukać i poczytać.

    Później jak już się trochę poduczysz podstaw (albo poczytasz uważnie notę PDF) to zrozumiesz do czego służy AVCC i dlaczego trzeba je podłączać (choć niektóre mądrale będą ci mówić, że akurat w ATmega8 jest wewnątrz zwarcie pomiędzy VCC i AVCC, ale proponuję porady mądral odstawić w kąt na tym etapie nauki)

    Połącz więc poprawnie procesor i daj w końcu taki program jak już ci ktoś radził, nie żadne waitms 50 !!!!!!! - tylko daj dla pierwszego testu sobie wait 1 (oczekiwanie 1s pomiędzy mignięciami)

    Jak wszystko ci ruszy to w końcu ochłoniesz i zobaczysz że twoje procki zmartwychwstały.
  • #17 8688483
    PiotrPitucha
    Poziom 34  
    Witam
    Masz źle podłączone, chcesz by Ci migało na PB2 a podpinasz diodę do PC5.
    Po drugie jak pisze Mirekk36 nie masz podpiętych wszystkich mas.
    Po trzecie jak chcesz działać na porcie C to musisz zasilić AVCC
    Pozdrawiam
  • #18 8688535
    Widmo2006
    Poziom 11  
    Zrobiłem tak jak mówiliście, podłączyłem zasilanie pod te dodatkowe piny ale dalej jest to samo. dioda tylko świeci. Drugiej atmegi natomiast w ogóle nie wykrywa.

    Podłączyłem diode pod portb.0, napisałem program,

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

    Config Portb.0 = Output

    Do
    Toggle Portb.0
    Wait 1
    Loop

    pozostaje mi chyba napisać to samo w "c", tylko czy obsłuży mi jakiś program stk200, tzn czy wgram to potem przez programator równoległy?

    aha i czytałem gdzieś że ktoś miał problemy z komunikacją atmegi przy 5V, podobno gdy obniżył napięcie do 3V to wszystko zaczęło grać?
    mógł by mi ktoś to wytłumaczyć?
  • #19 8688579
    mirekk36
    Poziom 42  
    Jeśli tak znasz C jak Bascom to nie istotne czy zaczniesz pisać w C czy w Bascomie czy w czym zechcesz.

    Po pierwsze to nie

    Config Portb.0 = Output

    tylko

    Config Pinb.0 = Output

    Po drugie ciekawe czemu tak cho chwilę żonglujesz dyrektywą

    $crystal 4000000

    czy zmieniłeś w ogóle fusebity na zewnętrzny rezonator kwarcowy ??? a jeśli tak to po jaką choinkę masz na schemacie rezonator 8MHz ??

    A jeśli nie zmieniałeś fusebitów to zapamiętaj sobie że procek jest domyślnie taktowany przez wewn. oscylator 1MHz a dyrektywa $crystal nie służy do zmiany sposobu taktowania tylko do poinformowania łaskawie kompilatora, jakiego taktowania ty używasz do procka.

    Zobacz ile robisz błędów i staraj się je naprawić niż rozwiązywać problem przez próbę programowania w innym języku bo to ci nie pomoże. A to że zastanawiasz się czy C obsłuży ci STK200 to już w ogóle świadczy o tym, że powinieneś jednak troszkę poczytać , kupić sobie jakąś książkę albo przeczytać chociaż jeden kurs Bascoma z internetu - zamiast wygadywać takie rzeczy.
  • #20 8688662
    Ciapol
    Poziom 24  
    Zrób zdjęcie swojego układu. Najlepiej o strony elementów i od strony ścieżek. Byłoby cudownie gdybyś zdjęcia wykonał tak, by można było oglądnąć mozaikę ścieżek. Bo jeśli układ wykonałeś tak jak programujesz to może się na nim pojawić wiele błędów.
  • #21 8688693
    Widmo2006
    Poziom 11  
    mirekk36 napisał:
    Jeśli tak znasz C jak Bascom to nie istotne czy zaczniesz pisać w C czy w Bascomie czy w czym zechcesz.

    Po pierwsze to nie

    Config Portb.0 = Output

    tylko

    Config Pinb.0 = Output

    Po drugie ciekawe czemu tak cho chwilę żonglujesz dyrektywą

    $crystal 4000000

    czy zmieniłeś w ogóle fusebity na zewnętrzny rezonator kwarcowy ??? a jeśli tak to po jaką choinkę masz na schemacie rezonator 8MHz ??

    .


    Prosze mnie nie wprowadzać w błąd bo instrukcją np: pind=1 odczytuje stan portu a portd=1 to wtedy podciągam wejście czy tam wyjście do zasilania, plusa.

    Nawet jak bym ustawił źle dyrektywe to to nie ma wielkiego znaczenia bo dioda tak czy siak powinna migać jak jest na attiny.

    I co przeszkadza ten zewnętrzny rezonator gdy procek pracuje na wewnętrznym.

    Według mnie piszecie mi cały czas o mało istotnych rzeczach. Tu chodzi o to że dioda nie chce migać. Inny program który załącza i wyłącza diode poprzez przełącznik działa bardzo dobrze na tej atmedze.

    Według mnie do niczego tu nie dojdziemy. Przepraszam że zawróciłem wam wszystkim głowe. Jutro pojade do kolegi i u niego sprawdzimy co jest nie tak.

    Sory ale myśle że to jest jedna z tych rzeczy która się "fizjologom nie śniła"

    Jeszcze raz wybaczcie.
  • #22 8688864
    mirekk36
    Poziom 42  
    Widmo2006 napisał:
    Prosze mnie nie wprowadzać w błąd bo instrukcją np: pind=1 odczytuje stan portu a portd=1 to wtedy podciągam wejście czy tam wyjście do zasilania, plusa.


    Chłopie weź ty usiądź, uspokój się i porządnie zastanów się nad tym co robisz - bo teraz to już (sorry za określenie) BREDZISZ !!!!! i to na max'a

    Tu masz CZYSTE INFO Z HELPA BASCOMA:

    Cytat:
    CONFIG PORT
    Action

    Sets the port or a port pin to the right data direction.

    Syntax

    CONFIG PORTx = state

    CONFIG PINx.y = state


    Remarks

    state
    A numeric constant that can be INPUT or OUTPUT.


    INPUT will set the data direction register to input for port X.

    OUTPUT will set the data direction to output for port X.

    You can also use a number for state. &B00001111, will set the upper nibble to input and the lower nibble to output.


    You can also set a single port pin with the CONFIG PIN = state, statement.

    Again, you can use INPUT, OUTPUT or a number. In this case the number can be only zero or one.


    The best way to set the data direction for more than 1 pin, is to use the CONFIG PORT, statement and not multiple lines with CONFIG PIN statements.


    Więc idź ty lepiej do tego swojego kolegi zamiast nas tu uczyć jak się programuje w Bascomie..... bo widać wpadłeś tu nie po to żeby zadać pytania ale żeby przekonać nas, że:

    1. procesory ATmega8 kupione w sklepiku gdzieś tam u ciebie są popsute !!!
    2. poprawne połączenia są wtedy gdy nie podłącza się wszystkich pinów zasilania procka !!!
    3. że polecenie Bascomowskie Config PinX.Y nie działa !!!!!!! bo ty wiesz lepiej.

    No dawno już na elektrodzie nie widziałem takiego pieniacza ;) ..... nie dość, że startuje , nic nie wie (co można zrozumieć oczywiście) to jeszcze wciska wszystkim za przeproszeniem "kity" i niewiedzę. Może zarzyj waleriany albo pomyśl o jakimś leczeniu nerwicy czy co?

    Aha i naucz się zadawać pytań, albo poczytaj w ogóle regulamin, bo nie dość, że dostałeś uwagę od moderatora za temat i nawoływania pomocy to w zasadzie całość powinna wylądować w koszu gdyż nie poparłeś nawet swoich dzikich nawoływań o pomoc schematami, zdjeciami, kodem czy precyzyjnym opisem problemu - a o tym mówi wręcz regulamin tego forum.
  • #23 8688963
    Widmo2006
    Poziom 11  
    Kolego mirku, śmiem twierdzić że również nie należysz do najspokojniejszych ludzi.

    Co do tego że bredze to może i tak jest ale po co każesz mi kombinować z jakimiś pinami jak program mam dobrze napisany i DZIAŁA ale na attiny2313. z małą przeróbką oczywiście powinien działać też na atmega8.
REKLAMA