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 24 lip 2025, o 15:17


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 4 sty 2013, o 16:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    Hej, nadszedł czas abym poddał się ocenie Kolegów C-owców.

    Do rzeczy: projekt mikroprocesorowego klasyfikatora kolorów opartego na ATmedze32A i czujniku TCS3200.

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


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


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


    Nieco tabulacja komentarzy się rozwaliła - w Eclipse jest większość optycznie wyrównana, tutaj nierówno, chyba system forum po prostu inaczej wyświetla.

    Jako, że jestem początkujący proszę o ocenę kodu, sugestie co można by było ulepszyć, zmienić.
    Funkcja TCSMeasure jest mocno wzorowana na podobnym projekcie z sieci. Dostosowałem ją nieco do swoich potrzeb.
    Wiem, że dostanie mi się za to i za użycie floatów. Można było się bez nich obyć, no ale używam ich w wielu miejscach a takie przeróbki tego na typ całkowitoliczbowy to chyba mają sens w jednym, dwóch miejscach w kodzie, ale nie co chwila. Łatwiej porównywać przecież 34.1 z 35.2 niż mnożyć to razy 10 czy 100 za każdym razem... Ale może się mylę...
    Pewnie tego delaya w pętli głównej też warto zastąpić timerem programowym (?).

    Będę wdzięczny za wszelkie uwagi i sugestie co do tego kodu. ;)

    Więcej o moim projekcie jakby ktoś był ciekawy:
    https://dl.dropbox.com/u/6082561/_9%20s ... KOLORU.pdf
    https://dl.dropbox.com/u/6082561/_9%20s ... tacja2.pdf
    https://dl.dropbox.com/u/6082561/_9%20s ... 0kons1.pdf

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2013, o 19:55 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Te wszystkie stałe (const) możesz umieścić tylko w pamięci programu i zwolnisz z 300 bajtów pamięci RAM, a to jakieś 15% dla ATMEGA32 co może pozwolić na wykorzystanie ATMEGA16. Wiąże się to oczywiście z dużą ilością modyfikacji, ale sam pytałeś. Co do stringów i wskaźników do stringów w pamięci programu poczytaj tutaj http://www.nongnu.org/avr-libc/user-man ... _rom_array


    Autor postu otrzymał pochwałę

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2013, o 20:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    W tej chwili mam takie staty:

    Program: 7140 bytes (21.8% Full)
    (.text + .data + .bootloader)

    Data: 652 bytes (31.8% Full)
    (.data + .bss + .noinit)

    Procka nie będę zmieniał, bo to działa w dwóch płytkach:
    1) ATB
    2) moje własne PCB które ma już procka ATmega32A wpiętego w podstawkę.

    Ale dzięki za radę, nie wpadłem na to. ;)

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2013, o 20:53 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Dodam jeszcze, że:
    Kod:
    Data: 2048 bytes (100.00% Full)
    (.data + .bss + .noinit)

    spowoduje błędne działanie programu przy wywołaniu typowej funkcji, bo to podsumowanie nie uwzględnia przecież stosu.

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2013, o 21:06 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    Tak, wiem. Dlatego przy 80% już się powinna zapalić lampka. Ale u mnie do 80% daleko... ;)

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2013, o 21:23 
    Offline
    Moderator
    Avatar użytkownika

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

    Ledes - przede wszystkim - to aż miło się czyta taki kod. O tej ważnej rzeczy o której napisał Krauser - nawet ja w swoich kodach często zapominam - a przypominam sobie zwykle dopiero wtedy gdy zaczyna brakować RAM'u i trzeba szybko go zaoszczędzić - zoptymalizować kod. Jak zwykle - kolega Krauser - Sokole OKO ;)

    _________________
    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: 4 sty 2013, o 21:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    Dziękuję Mirek za dobre słowo. Cieszę się, że mój kod jest czytelny. Chociaż jak tak teraz dokładniej patrzę, to jest jeszcze kilka baboli jeśli chodzi o notację czy formatowanie kodu. ;P

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sty 2013, o 21:55 
    Offline
    Moderator
    Avatar użytkownika

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

    Ledes napisał(a):
    Dziękuję Mirek za dobre słowo. Cieszę się, że mój kod jest czytelny. Chociaż jak tak teraz dokładniej patrzę, to jest jeszcze kilka baboli jeśli chodzi o notację czy formatowanie kodu. ;P


    ajtam ajtam ;) ... weź przestań - po tych ostatnich kodach w jednym pliku liczących sobie och-set linii kodu - to to co zaprezentowałeś to miód na moje serce ;) ale - masz rację, że warto po swojemu dopieszczać zawsze kodzik.

    _________________
    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: 4 sty 2013, o 22:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 cze 2012
    Posty: 102
    Pomógł: 2

    Witaj.
    Czy tych stałych z pliku ColorClass.h nie da się zmienić z float na jakiś typ całkowity?

    _________________
    sig off ;(



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 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