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 w 2025? 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 22 maja 2025, o 01:45


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 26 paź 2011, o 20:19 
    Offline
    Nowy

    Dołączył(a): 26 paź 2011
    Posty: 12
    Pomógł: 0

    Chciałbym zaadoptować kod programu z książki, dotyczący multipleksowania, na Atmega 8.
    Po przeczytaniu (tzn. dokładnym przejrzeniu- nie znam j. angielskiego)noty PDF, przerobiłem kod książkowy i nie działa
    mi timer w trybie CTC.Co zrobiłem źle? :?:

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 paź 2011, o 21:50 
    Offline
    Moderator
    Avatar użytkownika

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

    Po pierwsze to zastanawia mnie bardzo dlaczego postanowił Pan w procku
    ATmega8 "zmarnować" na taki cel aż 16-bitowy timer sprzętowy (Timer1)
    ???? Szkoda bo 8-bitowy wystarczyłby w zupełności. No ale jeśli to
    tylko dla testów to rozumiem ;)

    Generalnie zabiera Pan się za przesiadkę na inny procek i na inny
    timer tymczasem, pierwsza linia w prezentowanym kodzie, nadesłanym
    przez Pana to:

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


    a zwracałem w książce uwagę, że prawidłowe komentarze w programie są
    nie mniej ważne niż sam kod, a szczególnie gdy pracujemy w zespole.
    Wprawdzie tu nie pracuje Pan w zespole - jednak .... podsyła Pan kod
    komuś innemu do sprawdzenia (mowa tutaj o mnie) .... czyli poniekąd
    tworzymy mini zespół. No i co ja widzę? komentarz, że jednak dokonuje
    Pan ustawień dla Timer0 a nie Timer1.

    hmmm to że chodziło Panu o Timer1 wywnioskowałem na szybko (ale być
    może błędnie chociażby z nazwy wektora przerwania jakiego Pan użył)

    Kod:
    ISR(TIMER1_COMPA_vect)


    Niestety w inicjalizacji jest już totalny "MISZ-MASZ" jeśli chodzi o
    próbę dotarcia co Pan miał na myśli, bo:

    wprawdzie ustawia Pan tryb CTC dla Timera1 (patrząc na nazwę bitu
    WGM12) ale czy spojrzał Pan w jakim rejestrze Pan ten bit ustawia ????
    dlaczego w TCCR0 ???? przecież nawet nie zaglądając do noty PDF widać
    że to rejestr konfiguracyjny Timer0 a nie Timer1

    Zatem po takiej linijce to ja już do końca nie wiem czy chodziło Panu
    o Timer0 czy Timer1.

    Patrząc jednak na koleją linie - jeszcze bardziej się upewniam, że
    może chodziło Panu o Timer0 gdyż preksaler bity CS02 i CS00 ustawia
    Pan w rejerze TCCR0 znowu od Timera0 i to jeszcze nazwy bitów też
    pochodzą z Timera0. Bo dla Timera1 miałyby one nazwy CS12 i CS10

    Widzi Pan różnicę ???

    Jeśli nie to bardzo jednak proszę otworzyć sobie notę PDF procka
    ATmega8 (ja właśnie to zrobiłem) i zajrzeć w jakich rejestrach są bity
    konfiguracyjne dotyczące Timer1 i jakie tam są nazwy tych bitów.
    Niestety bez noty daleko nie zajedziemy - musi ona być wciąż pod ręką
    o czym wciąż piszę w książce ;)

    Co ciekawe w kolejnej linii już Pan sprawdził że rejestr porównania
    dla Timera1 to OCR1A a nie OCR0 ;) więc tu chyba zajrzał Pan do noty
    PDF ???

    Dobrze to na razie tyle moich podpowiedzi ;) nie chcę od razu podawać
    gotowego rozwiązania a jedynie naprowadzić Pana.

    Jednak jeśli dalej się nie uda to proszę śmiało pisać podpowiem dalej
    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  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 18 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO