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 3 kwi 2025, o 19:38


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 24 kwi 2018, o 10:50 
    Offline
    Użytkownik

    Dołączył(a): 18 sty 2015
    Posty: 170
    Pomógł: 0

    Witam.

    Ćwiczę sobie podstawy boodloadera (selfprograming) na mikrokontrolerze ATmega644P.

    Dla jasności:

    ATmega644P to:

    256 stron pamięci po 128 dwu bajtowych słów maszynowych na każdej (czyli 64KB flash).
    R0 - składowanie pierwszej połówki słowa maszynowego
    R1 - składowanie drugiej połówki słowa maszynowego
    R30 - składowanie numeru słowa na stronie (pamiętamy o przesunięciu o jedną pozycję w lewo)
    R31 - składowanie numeru strony

    Popełniłem sobie taki kod:

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


    Zasada działania jest prosta:

    1. Migaj sobie diodą na porcie B1
    2. Jeśli na pinie B0 pojawi się stan niski olej diodę i zaprogramuj komórki pamięci flash numerem strony, na której leży dana komórka.

    Prawie działa.

    Po zainicjowaniu selfprogramingu (podanie na B0 na chwilę stanu "0", potem znów "1") sczytuję pamięć flash, i co widzę?

    Początek jest niezły. Widać, że kolejne strony zostają zapisywane kolejnymi numerami stron (począwszy od wartości 0).

    Poniżej widzimy dwie strony i kawałek trzeciej:

    Obrazek

    Z jakiegoś powodu zapisuje się 17 stron, a później widać niezaprogramowane komórki (255 dec, czyli FF hex):

    Obrazek

    Gdzieś musi być bug, którego nie potrafię wyłapać.

    Pomogą?

    :-)



    Ostatnio edytowano 24 kwi 2018, o 12:07 przez mes mariusz, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 kwi 2018, o 11:27 
    Offline
    Użytkownik

    Dołączył(a): 18 sty 2015
    Posty: 170
    Pomógł: 0

    Dobra, Panowie (i Panie?).

    Nie wiem czemu wcześniej nie działało (może za szybko odczytywałem zawartość flash z uC, zanim zakończył się selfprograming) w każdym razie teraz już wszystko działa elegancko, czyli wszystkie strony począwszy od strony 0 do strony 247 (czyli pierwsze 248 stron) zapisuje się wartością numeru strony, a na stronie kolejnej zaczyna się kod bootloadera.

    Jest cacy!

    Obrazek

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



    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 0 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