dejmos napisał(a):
Chociaż wg mnie styl pisania dla programisty jest jak jego "odcisk palca"
Oj masz rację, w 100% masz rację i od razu widać np kto jak źle pisze i nie trzyma się dobrego stylu programowania
dejmos napisał(a):
i każdy pisze jak mu jest wygodnie
Masz rację i NIKT ci tego nie zabroni - rób jak chcesz ... ale ... ale sobie zapamiętaj, że:
1. Ja poprzez swoje wszystkie książki i poradniki UCZĘ jak pisać w tzw "dobrym stylu programowania" w języku C (to jest pewien zbiór prostych w sumie zasad, które ułatwiają życie nie tylko gdy pracujemy w zespole ale również nam samym - początkującym szczególnie. I szczególnie gdy po jakimś czasie wracamy do własnego kodu - żeby go szybciej sobie przypomnieć i zrozumieć) ... Ty sobie nawet trudu nie zadałeś żeby poszukać co to jest "dobry styl pisania kodu" albo żeby podpytać i nawet jak widzę tego kompletnie nie rozumiesz a co gorsze nawet nie chcesz się dowiedzieć - nauczyć - trudno twoja sprawa NIKT ci nie zabroni
2. To jest forum które pomaga wielu ludziom, w tym początkującym, którzy się uczą a zatem to nie dziwne że wskazuję kody na forum, które są niestety paskudnie napisane pod tym względem
3. To jest forum na którym się UCZYMY i kody przeglądają początkujące osoby i muszą wiedzieć co i jak
4. U nas na forum jest taka ZASADA - że jak wstawiamy kod to warto go pokazać właśnie żeby był napisany w dobrym stylu - żeby inni mogli szybko zrozumieć w czym rzecz. Ja np, gdy widzę, że ktoś nie stosuje w ogóle zasad dobrego stylu to nawet nie zagłębiam się w kod i nie pomagam ponieważ TU WŁAŚNIE WYCHODZI - widzisz pan - że nie piszesz sam dla siebie - tylko ZADAJESZ pytania innym i jeśli piszesz kod byle jak to nie dziw się, że mało osób w ogóle zainteresuje się twoim problemem - większość osób oczekuje szacunku, tak tak - gdy zadajesz pytanie to mógłbyś postarać się przynajmniej nauczyć się podstaw tego dobrego stylu pisania albo ....
albo wykazać chęć nauki - nie zaś pisać bajek o swoich odciskach palców ...
dejmos napisał(a):
bo dla kompilatora chyba nie ma różnicy czy ktoś sobie zdefiniuje takie czy inne makra
żebyś się nie zdziwił czasem

... Nawet nie wiesz ile błędów można uniknąć stosują dobry styl programowania - nie zdajesz sobie z tego sprawy bo NIGDY tego nie robiłeś - więc proszę cię nie dziw się
dejmos napisał(a):
Dlatego krytyka za pisanie kodu nie zgodnie z zasadami trochę mnie zdziwiła.
Nie dziw się - bo to jest PODSTAWA - i przypominam po raz kolejny - nie piszesz sam dla siebie skoro zadajesz pytanie na forum i pokazujesz tak napisany kod a piszesz do tego że:
dejmos napisał(a):
Każdy powinien pisać tak jak uważa jeżeli tylko się w tym odnajduje.
Bo to jest jedna z najgorszych bzdur ...
ale UWAGA! na koniec - bo pewnie nawet nie wiesz o czym mówię odnośnie stylu dobrego programowania bo pewnie ani nie masz żadnej mojej książki ani pewnie nie oglądałeś moich poradników - to podam ci kilka przykładów, żebyś nie myślał że styl dobrego pisania kodu oznacza, że chodzi o to że ktoś ZAWSZE napisze od razu sprawdzony i działający KOD - to byłaby bzdura

1. to może najmniejszy problem ale na tym forum nie używamy kocich makr _BV() więc zamiast pisać
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
pisz np:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
nie bój się przesunięć bitowych

... ale ok to pikuś
--------------------------
2. NA POCZĄTKU kodu piszemy ZAWSZE ciało funkcji main() a dopiero dalej pod nią definicje innych funkcji. Za to na górze nad main() piszemy tylko deklaracje (nagłówki) tych funkcji poniżej main() - chodzi o to żeby ZAWSZE SZYBKO i najłatwiej było znaleźć GŁÓWNĄ funkcję programu - jego miejsce STARTOWE zamiast się przedzierać w kodzie przez szereg funkcji i to jeszcze bez BEZ ŻADNYCH KOMENTARZY jak u ciebie
-----------------------------------
3. piszemy komentarze w kodzie to PODSTAWA - PODSTAW - chociażby minimalne ale kod bez komentarzy jest kodem od razu do śmietnika
---------------------------------
4. Jeśli piszesz kod w języku AVR GCC to stosuj typy przewidziane w tym języku a zatem uint16_t a nie unsigned int
-------------------------------------------------
5. Widać że nie znasz też do końca jeszcze podstaw C dlatego polecałem ci książkę ... a z tego wynika kolejny babol który robisz czyli
dejmos napisał(a):
volatile unsigned int opoznienie_1ms=0;
po co inicjalizujesz ZEREM zmienne globalne ? jeśli wiadomo ze standardu języka C że one są inicjalizowane ZEREM domyślnie ? a więc kolejne zamieszanie w twoim kodzie
--------------------------
6. nazwy MAKR w C pisz DUŻYMI literami - bo lepiej później odróżniają się w kodzie pomiędzy nazwami różnych funkcji i zmiennych, które warto z kolei pisać małymi literami. Albo tzw stylem wielbłądzim - jeśli wiesz co to jest a jeśli nie - to zajrzyj do wikipedii co to jest styl wielbłądzi i dlaczego się go stosuje do nazw. Ty natomiast robisz jeszcze gorzej bo jedne makra piszesz małymi literami a inne dużymi a więc już w ogóle wprowadzasz totalny MISZ-MASZ
-------------------------------
7. gdy piszesz funkcję bez argumentów stosuj dla porządku void czyli np
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i robisz tak nawet w swojej funkcji main( void ) w kodzie ale już dalej znowu niekonsekwencja bo w pozostałych nie ma tego void w miejscu argumentów
-----------------------------------------------
8. stosuj przerwy chociaż JEDNĄ kurczę linię pomiędzy sekcjami programu a już szczególnie pomiędzy definicjami funkcji a nie wszystko ciurkiem się ciągnie jak rozgotowany makaron
-------------------------------------------
9. kompletnie nie zwracasz uwagi na ważne w sumie szczegóły np:
Cytuj:
#include<avr\io.h>
#include <avr/interrupt.h>
mów sobie co chcesz ale to to już jest MASAKRA ... i co więcej nawet jakby ktoś z forum chciał szybko skopiować i wkleić do siebie twój kod żeby coś sprawdzić to to może raz działać a raz nie działać. A i tobie po roku czy dwóch np gdy weźmiesz inny kompilator to nagle to przestanie działać i co ? Nie dość że różne ukośniki to jeszcze tu spacja, tam bez spacji ... całość wtedy wygląda TRAGICZNIE ... no tragicznie
-------------------------
10. UNIKAJ JAK OGNIA wywoływania funkcji z procedur obsługi przerwań bo sobie sam robisz masakrę amerykańską piłą tarczową na przyszłość - czy wiesz jaki to ma wpływ na stos czy nie za bardzo się orientujesz ? .... Być może nie orientujesz się w ogóle jak wygląda cykl życia funkcji - i wtedy może to doprowadzać do tragicznych baboli w kodzie w przyszłości ....
----------------------
11. nie stosuj takich zapisów
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
tylko takie żeby było jaśniej
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
---
mógłbym tak jeszcze dalej pisać o twoim kodzie ale myślę, że tych kilka przykładów być może natchnie cię do tego żebyś w końcu zastanowił się co to znaczy styl dobrego pisania kodu i że warto się go uczyć chłopie
na koniec żeby nie być gołosłownym - i żeby ci pokazać, że ja nie krytykuję - bo krytykiem nie jestem - tylko zwracam uwagę na WAŻNE aspekty uczenia się programowania, że nie mam zamiaru ci dogryzać albo przygadywać - to poświęcę się i proszę pokażę ci jak powinien wyglądać ten twój kod z pierwszego postu (NIE WAŻNE CZY ŹLE DZIAŁA CZY DOBRZE!!!) ważne żebyś sobie porównał i chociaż spróbował zrozumieć o czym mówię i na co ci zwracam uwagę - czego warto się uczyć - zamiast dziwić i focha strzelać
troszkę dla przykładu dodałem komentarzy ale ty ZOBACZ JAK POPRAWIŁEM inicjalizację timera i jak podzieliłem kod
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i jak mi powiesz, że to nie jest po 1000-kroć czytelniejsze od tego co ty pokazałeś - to .... to szkoda gadać