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



Teraz jest 12 lis 2024, o 17:04


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 ]
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 ]
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 ]
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: 27308
Lokalizacja: Szczecin
Pomógł: 1041

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: 27308
Lokalizacja: Szczecin
Pomógł: 1041

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