Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 11 cze 2025, o 20:06


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 
    Autor Wiadomość
     Tytuł: ATmega8
    PostNapisane: 11 sty 2015, o 05:47 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    Witam,

    Buduje układ z mikrokontrolerem ATmega8. Po podłączeniu uC do VCC i GND, a także programatora, testuje wszystko podłączając diodę i mikro przełącznik do jakiś linii i wgrywając program. Wszystko działa. Następnie buduje docelowy układ z czterema diodami i mikro przełącznikiem i wgrywam zmieniony program, który najwyraźniej został źle napisany, bo nic się nie dzieje.
    I ponownie zmieniam program na najprostszy możliwy, chcę żeby jedna dioda świeciła. I teraz ku mojemu zdziwieniu nic się nie dzieje, tak jakby mikrokontroler nie odpowiadał. Dopiero po kilku godzinach, uC zaczął reagować na moje polecenia. W tej chwili sytuacja znowu się powtórzyła i nie mam kontroli nad ATmegą.
    Czy jest ktoś w stanie wyjaśnić tę sytuację?
    Dziękuję, pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 06:23 

    Pomógł: 0

    A czy jesteś pewien że po zmianach zapisujesz projekt zanim go wgrasz do procesora? Czy działasz na stykówce?



    Góra
      
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 09:42 
    Offline
    Użytkownik

    Dołączył(a): 05 lis 2014
    Posty: 237
    Pomógł: 6

    M__ wstaw schemat, kod, napisz w czym programujesz (Atmel Studio, Eclipse), itd. Bo tak, to jest "wróżenie z fusów". ;)

    _________________
    Szukasz książek o elektronice i programowaniu?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 10:42 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    Programuje w Eclipse, programator mam Atnela, taktowanie jest ustawione na 1Mhz ( w eclipse muszę dodać parametr -B 8).

    Obrazek

    Acha i teraz wyskakuje mi jeszcze



    avrdude.exe:
    set SCK frequency to 187500 Hz
    avrdude.exe: error: programm enable: target doesn't answer. 1
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions
    avrdude.exe: Device signature = 0x000000
    avrdude.exe: Yikes! Invalid device signature.
    avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07

    avrdude.exe done. Thank you.

    Tak, działam na płytce stykowej.
    No i wcześniej, przed pojawieniem się tego błedu w czasie programowania ATmegi w eclipse nie wyskakiwały żadne błędy, a w konsoli widać było, że proces się udał.



    Ostatnio edytowano 11 sty 2015, o 10:47 przez M__, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 10:47 
    Offline
    Nowy

    Dołączył(a): 07 sty 2015
    Posty: 20
    Pomógł: 1

    Skonfiguruj jeszcze raz spowolnienie - zamień -B 8 na -B8 (bez spacji) i ruszy ;-)

    PS. Windows czy Linux??



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 11:00 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    W obu przypadkach pojawia się błąd

    avrdude.exe: initialization failed, rc=-1,

    czy jest jakiś sposób, żeby coś z tym zrobić, np przy pomocy mkAVrCalculatora?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 11:10 
    Offline
    Nowy

    Dołączył(a): 07 sty 2015
    Posty: 20
    Pomógł: 1

    Spróbuj zmienić za pomocą mkAvrCalculatora w fusach uproszczonych taktowanie na 8MHz



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 12:23 
    Offline
    Użytkownik

    Dołączył(a): 05 lis 2014
    Posty: 237
    Pomógł: 6

    Zajrzyj tu: "Krótki guide dla początkujących (rc=-1, Fusy, MkAvrCalc)"

    Podłączenie linii programatora sprawdziłeś? Na pewno jest to ATmega8, a nie ATmega88?

    _________________
    Szukasz książek o elektronice i programowaniu?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 13:22 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27408
    Lokalizacja: Szczecin
    Pomógł: 1043

    M__ napisał(a):
    Obrazek


    Mam nadzieję, że to pierwszy i OSTATNI taki "ala schemat laurka" który kolega zamieścił na tym forum. Bardzo proszę się zapoznać z tym:
    http://atnel.pl/kurs-cadsoft-eagle.html

    i w ten sposób tu prezentować schematy ok?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 14:19 

    Pomógł: 0

    M__ napisał(a):
    Tak, działam na płytce stykowej.

    To coś mi się wydaje że problemy masz w pewności połączeń na stykach - częsty problem.



    Góra
      
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 14:37 
    Offline
    Nowy

    Dołączył(a): 14 gru 2014
    Posty: 3
    Pomógł: 0

    wojtek napisał(a):
    M__ napisał(a):
    Tak, działam na płytce stykowej.

    To coś mi się wydaje że problemy masz w pewności połączeń na stykach - częsty problem.


    Jeśli tak, to wystarczy przepiąć uC w inne miejsce na stykówce. To najprostsze co można zrobić, żeby wyeliminować problem złego połączenia.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 14:41 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    Przepraszam za to całe zamieszanie. Przedstawię teraz jasno problem. Zainstalowalam na innym komputerze eclipse, atmel toolbar, avr plugin, oraz mkavrcalculator. Montuje układ tak jak na rysunku powyżej (za który przepraszam). Podłączam programator Pana Mirka i odpalam mkavrcalculator. Atmega 8 odczytana, brak błędów. Zakładka fusebity, zmieniam na 8mega hz, zapis, fusebity, okej.
    Włączam eclipse, projekt C, atmega 8, 8M hz, programator USBasp. Piszę program:

    #include <avr/io.h>
    #include <util/delay.h>

    int main (void) {

    DDRC = (1<<PC5);

    while (1){

    PORTC |= (1<<PC5);
    _delay_ms(500)(

    }
    }

    Kompiluje i wgrywam. W konsoli żadne błędy się nie pojawiają, ale dioda nie miga. Tak jakby mikrokontroler się zawiesił. Dodam jeszcze, że wczoraj programator przez chwilę działał tak, że gdy podłączałem zworkę zasilania dioda niebieska przestawała świecić i świeciła tylko zielona (system odczytywał to jako awarię urządzenia). W tej chwili programator działa okej. Jedyny problem jest taki, ze nie wiem czemu mój uC nie chce działać, mimo że żadnych błędów nie ma. Panie Mirku proszę o pomoc!!

    Spróbuję przestawić mikrokontroler w inne miejsce na płytce tak jak kolega mówi, może te pomoże
    .

    ------------------------ [ Dodano po: 4 minutach ]

    zamiast |= powinno być ^=



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 14:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    Masz wpisane DDRC = a powinno być DDRC |=

    Pokaż fotkę stykówki jak to masz tam połączone.

    Namazane ze smarta.

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 15:02 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27408
    Lokalizacja: Szczecin
    Pomógł: 1043

    majster napisał(a):
    Masz wpisane DDRC = a powinno być DDRC |=


    eeeh ;) .... ani to ani to .... a przecież w poradniku wideo już nie wspomnę o Bluebooku jest to jasno napisane i pokazane ;)

    tu chodzi o XOR

    ^=

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 15:40 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    Czytałem pański poradnik, poprawiłem się na dole pod głównym postem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 15:44 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2014
    Posty: 69
    Pomógł: 6

    Błąd w przepisywaniu:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    ?
    Bo jeżeli nie, to zamiast ( daj ;



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 16:08 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    Błąd w przepisywaniu, na telefonie to pisałem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 16:20 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2014
    Posty: 69
    Pomógł: 6

    To podeślij jeszcze zdjęcie tego układu ze stykówki, może tam coś masz źle



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 16:33 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    ObrazekObrazek

    Jak coś jest bardzo źle podłączone to proszę nie krzyczeć :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 16:39 
    Offline
    Użytkownik

    Dołączył(a): 01 paź 2013
    Posty: 305
    Lokalizacja: Olsztyn
    Zbananowany użytkownik

    Pomógł: 20

    Witam
    dioda cały czas się świeci ? ponieważ jest tak jak napisał Mirek , non sto wysyłasz to samo :
    PORTC |= (1<<PC5);
    zamiast
    PORTC ^=(1<<PC5);
    i będzie grało
    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 16:45 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    Pod moim wcześniejszym postem jest poprawka do kodu programu, gdyż z pośpiechu źle go przepisałem na forum. Dioda wcale się nie świeci.
    Nawet przy takim programie nic się nie dzieje,

    #include <avr/io.h>
    #include <util/delay.h>

    int main (void) {

    DDRC = (1<<PC5);
    PORTC |= (1<<PC5);
    }



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 16:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 10 sty 2014
    Posty: 448
    Lokalizacja: DKL
    Pomógł: 53

    @M__, złe podłączenie, wiesz jak przebiegają połączenia na płytce stykowej?

    Obrazek

    Teraz na linii procesora + dioda + jeden koniec rezystora ma po prostu zwarcie, diody musisz obrócić o 90st.

    Np tak jak na tym rysunku.
    Obrazek


    Edit:
    Podaję jeszcze prawidłowy i sprawdzony kod programu do migania diodą LED.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Migracja z punktu B do punktu C
    Pozdrawiam



    Ostatnio edytowano 11 sty 2015, o 17:02 przez matw, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 16:55 
    Offline
    Użytkownik

    Dołączył(a): 05 lis 2014
    Posty: 237
    Pomógł: 6

    Kolego M__ tu masz bardzo fajne krótkie podsumowanie: "AVR - porty - we/wy - dir - PODSTAWY" :)

    Spróbuj taki kod:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    O, widzę, że o samym podłączeniu już ktoś napisał.

    _________________
    Szukasz książek o elektronice i programowaniu?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 17:19 
    Offline
    Nowy

    Dołączył(a): 11 sty 2015
    Posty: 9
    Pomógł: 0

    Ehh, przepraszam wszystkich, coś mi się w głowie pomieszało. Dziękuje za pomoc.

    ------------------------ [ Dodano po: 36 minutach ]

    Wszystko działa :))
    Obrazek

    Mogę teraz spokojnie programować, jeszcze raz dziękuje wszystkim za pomoc i przepraszam za brak myślenia.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ATmega8
    PostNapisane: 11 sty 2015, o 18:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    mirekk36 napisał(a):
    majster napisał(a):
    Masz wpisane DDRC = a powinno być DDRC |=


    eeeh ;) .... ani to ani to .... a przecież w poradniku wideo już nie wspomnę o Bluebooku jest to jasno napisane i pokazane ;)

    tu chodzi o XOR

    ^=

    W init main kolega ma tylko = jak zacznie bawić się pozostałymi pinami z tego portu to bedzie zonk.

    Dlatego proponowałem zapis |= zamiast samego = ale w int main(void)



    M__ napisał(a):

    #include <avr/io.h>
    #include <util/delay.h>

    int main (void) {

    DDRC = (1<<PC5);

    while (1){

    PORTC |= (1<<PC5);
    _delay_ms(500)(

    }
    }



    ------------------------ [ Dodano po: 4 minutach ]

    zamiast |= powinno być ^=



    A ze kolega sam już pisał o xor to błąd w petli while pominąłem.

    Namazane ze smarta.

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO