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 13 cze 2025, o 09:44


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
    Autor Wiadomość
    PostNapisane: 19 lut 2012, o 13:41 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Witam.
    Chcąc ustawić przerwania dla mojego procesora (ATM.644p) aby móc "zapanować" nad wyświetlaczem LED natrafiłem na kłopot ponieważ mój procesor (jak się dowiedziałem z postu niżej i czytając notę pdf) jest nieco rozbudowany (posiada timer0A i B) i jego funkcje są podzielone.
    Zaglądając do linku, który podał autor postu pode mną zastosowałem się do rad zastosowanych w tamtym wątku jednak w moim kodzie jest gdzieś błąd ponieważ generuje mi się error związanyz d_led_init.
    Proszę o pomoc w rozwiązaniu tego problemu.




    d_led_.c

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



    Ostatnio edytowano 19 lut 2012, o 15:32 przez infa08, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2012, o 14:20 
    Offline
    Moderator
    Avatar użytkownika

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

    Po pierwsze to bardzo proszę o to aby nie umieszczać kodów źródłowych całych bibliotek z książki / z płyty DVD

    Pytanie powinno być bardziej skonkretyzowane że tak brzydko powiem a nie - wklejone całe kody i co ? oczekiwanie, że ktoś przerobi to tutaj pod m644p i udostępni ? Oj - nieładnie.

    Pewnie, że m644p ma inne nazwy rejestrów oraz także nazwy bitów w tych rejestrach. Z czego to wynika ? Z tego panie kolego, że tu każdy Timer sprzętowy (zresztą nie tylko timer) ma o wiele więcej opcji niż w m32 a co za tym idzie producent nie zmieściłby się z bitami odpowiadającymi za te wszystkie dodatkowe opcje w tych kilku rejestrach jakie ma m38.

    Stąd wprowadzono dodatkowe rejestry. Ale co za problem otworzyć sobie dwie noty PDF czyli od m32 i obok od m644p

    wtedy wystarczy wykonywać z pełnym zrozumieniem ćwiczenie i porównywać gdzie znajdują się jakie rejestry. Np chcemy ustawić preskaler dla Timer0 - zaglądamy do PDF od m32 i widzimy, że bity preskalera CS02, CS01, CS00 znajdują się w rejestrze TCCR0A - więc jeśli mamy ustawić preskaler = 8 to wpisujemy dla m32 taką linię:

    Kod:
    TCCR0A |= (1<<CS01);


    a teraz to samo czyli preskaler =8 chcemy ustawić a tu ? - O!!! zaglądamy do noty PDF a tam nie ma tych bitów w rejestrze TCCR0A - no to co mamy się poddać ? - dlaczego - patrzymy na kolejny rejestr O! teraz jest dodatkowo TCCR0B a w nim!!!! nasze ukochane bity CS02, CS01 oraz CS00 ... więc co za problem żeby wg tego co też pisałem w książce ustawić teraz preskaler dla tego procka tak:

    Kod:
    TCCR0B |= (1<<CS01);


    Taka duża różnica ?

    I analogicznie działamy z innymi bitami mając na uwadze to, że procku m32 gdy wybieraliśmy tryb to bity WGMxx którymi to robiliśmy były tylko w TCCR0A a w procku m644p są ale rozrzucone po dwóch rejestrach TCCR0A i TCCR01 więc co za problem w razie czego ustawić daną kombinację bitów w jednym albo w dwóch rejestrach ?

    Podobnie z rejestrem przerwań, w m32 był tylko jeden TIMSK w którym były tak na prawdę opisane wszystkie przerwania wszystkich timerów a że większy procek m644p ma więcej opcji to by się nie zmieściły więc został utworzony dla każdego timera oddzielny rejestr TIMSKx, np TIMSK0 - tylko trzeba jeszcze zwrócić uwagę czy przypadkiem o jedną literkę nie zmieniły się nazwy samych bitów.....

    to nie jest trudne, warto to robić i trenować - bo różnice programowania pomiędzy prockami polegają głównie na tym i tylko na tym. Więc chwila treningu i po kłopocie

    No a jak nie możemy sobie poradzić nadal z jakąś drobnostką to proszę bardzo można tu zapytać ale o konkretny szczegół ? komunikat błędu ? o konkretne ustawienie? o konkretny rejestr ?

    a nie wklejanie całych bibliotek OK ?

    Nie wspomnę już o tym, że czasem warto przeszukać to może jeszcze niewielkie forum ale okazuje się, że już takie pytania dokładnie były - więc odpowiedź można było już znaleźć...

    http://forum.atnel.pl/topic19.html

    Ale proszę zobaczyć jak było w ogóle pytanie zadane itd

    _________________
    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  
    PostNapisane: 19 lut 2012, o 15:17 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Zmodyfikowałem mój post i pozmieniałem linijki kodu dotyczące rejestrów jednak nadal kompilacja programu jest nie możliwa. Myślę, że chodzi o ten fragment programu ponieważ wyświetla mi się komunikat o błędzie "main.c: undefined reference to 'd_led_init'



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2012, o 15:31 
    Offline
    Moderator
    Avatar użytkownika

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

    A zaraz zaraz - zapytam - czy korzystasz z Eclipse i przykładów z płyty DVD ? bo przecież tu w tym zakresie nic cię nie ogranicza

    _________________
    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  
    PostNapisane: 19 lut 2012, o 15:33 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Tak korzystam z Eclipse i mam przykłady z DVD na DVD ponieważ nie kopiowałem je do mojego projektu (mam na PC twoje środowisko "workspace" oraz moje, w którym piszę samemu kody korzystając z książki)



    Ostatnio edytowano 19 lut 2012, o 15:38 przez infa08, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2012, o 15:38 
    Offline
    Moderator
    Avatar użytkownika

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

    No to:

    ""main.c: undefined reference to 'd_led_init'"

    oznacza, że kompilator nie widzi definicji funkcji d_led_init

    I jeśli odpaliłeś kod z DVD to niemożliwe żeby się taki błąd pojawiał - bo on może wystąpić:

    1. albo jeśli nie masz pliku *.c z tą definicją funkcji w ramach projektu
    2. albo nie masz zainkludowanego pliku *.h

    a te dwa pliki jak widzisz w projekcie na DVD leżą obok main.c i stanową taką jakby mini bibliotekę

    więc coś tu pomieszałeś - tylko nie mam pojęcia co.

    _________________
    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  
    PostNapisane: 19 lut 2012, o 15:44 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Teraz otworzyłem workspace i zauważyłem, że kody są bardziej rozbudowane. Dopiszę do mojego kodu to czego nie mam i napiszę jaki wyszedł rezultat.



    Ostatnio edytowano 19 lut 2012, o 16:03 przez infa08, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2012, o 15:53 
    Offline
    Moderator
    Avatar użytkownika

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

    Dlatego wspominałem nie raz w książce chyba, że kody które omawiam na łamach książki przedstawione są tylko w sposób ułatwiający dydaktykę czyli lepsze wyjaśnienia i opisy. Zamiast przepisywać je z książki, lepiej zawsze sprawdzać jak to jest we wzorcach na DVD bo tam musiałem zadać sobie o wiele więcej trudu żeby wszystko ładnie i dobrze działało i działa.... No tylko, że do niektórych trzeba sobie pobrać uaktualnienia - a są one na forum - zrobiłeś to ?

    _________________
    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  
    PostNapisane: 19 lut 2012, o 16:03 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Uzupełniłem program, jego struktura jest praktycznie tak sama jak pierwowzór z workspace, "drzewko programu" jest również podobne z tym, że ja po kompilacji programu nie posiadam gałęzi "Binaries" i nadal mam błąd z d_led_init



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2012, o 16:05 
    Offline
    Moderator
    Avatar użytkownika

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

    A posiadasz gałąź RELEASE ?

    _________________
    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  
    PostNapisane: 19 lut 2012, o 16:07 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Tak ale bez pliku z rozszerzeniem .hex, .elf, .eep, .lss



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2012, o 16:11 
    Offline
    Moderator
    Avatar użytkownika

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

    Wiesz co ? spakuj mi ten projekt do ZIP'a i podeślij na maila - aż z ciekawości chciałbym zobaczyć co ty tam wyprawiasz ? ;) biuro@atnel.pl

    czy lekcje VIDEO na DVD też oglądałeś ?

    _________________
    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  
    PostNapisane: 19 lut 2012, o 16:21 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Tak pozwoliły mi zaznajomić się ze środowiskiem Eclipse



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lut 2012, o 16:35 
    Offline
    Moderator
    Avatar użytkownika

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

    Dobra - posłuchaj - już widzę błąd .... no ale na prawdę tego się nie spodziewałem.

    Najlepiej będzie jak ci nie powiem gdzie jest błąd (ale spokojnie nie po złości) ..... tylko dla ciebie lepiej będzie jeśli sam go znajdziesz bo sam jesteś jego stwórcą - chociaż to już i tak za duża podpowiedź.

    A błąd jest tak banalny, że aż strach .... no i wynika jak zwykle z tego, że piszesz że coś robisz (tu na forum) a tak na prawdę czegoś nie robisz .... wiem że to brzmi enigmatycznie no ale już i tak za dużo ci podpowiedziałem....

    Popróbuj więc sam go znaleźć bo nie wiąże się on z niczym o czym ty byś jeszcze nie wiedział. Nie wynika też z tego że zobaczyć go może tylko osoba, która ma doświadczenie ......

    no okropny błąd ;)

    ....... pogłówkuj sam .... do czego cię bardzo zachęcam, bo rozwiązanie we własnym zakresie da tobie dużą praktykę na przyszłość

    a jeśli sobie nie dasz rady to napisz - udzielę wskazówki 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  
    PostNapisane: 19 lut 2012, o 16:49 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    OK! biorę się do szukania

    ZNALAZŁEM! i nauczyłem się żeby uważnie przepisywać nazwy funkcji - już wiem na co mam uważać pisząc kolejny program
    DZIĘKI za pomoc



    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: 15 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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