Witam szanowne forum.
Borykając się z trudnym początkiem, jeśli chodzi o programowanie mikrokontrolerów w C, postanowiłem założyć niniejszy temat. Myślę, że przyda się nie tylko mnie, ale i innym osobom stawiającym pierwsze kroki w tym temacie.
Jak zawsze na początku, jest wiele pytań wymagających wyjaśnienia.Oczywiścię w internecie jest wiele pomocnych artykułów, ale są one nie zawsze napisane w sposób łatwy do zrozumienia dla nas laików.
Ponadto korzystanie z metody "copy and past" czyjegoś fragmentu kodu i uciecha z tego, że zadziałało (ale dlaczego zadziałało, to już nie wiem), chyba nie jest właściwą drogą do osiągnięcia czegokolwiek. Jeśli ktoś ma podobne problemy, to proponuję podpiąć się pod temat.
Prosiłbym o wyjaśnienie, jak prawidłowo podejść do pisania programu na samym początku.Zastanawiam się, czy ma to znaczenie.
Zamieszczam kawałek nic nie znaczącego kodu, a żeby łatwiej mi było wyjaśnić, o co mi chodzi.Przepraszam za ten kod, ale myślę, że doświadczeni koledzy mi wybaczą.Chodzi tylko o przekaz.
Jak czytałem, program zaczyna się wykonywać jakby od góry.
Są definicje preprocesora,inicjalizacja np. wyświetlacza,przerwań, modułu ADC itd...To wszystko wykonuje się tylko raz przy starcie programu.
Następnie istnieją sekcje typu void cos_tam(void) i następnie uruchamia się pętla główna, jeśli taka istnieje. Według mojego myślę błędnego myślenia po pętli jest koniec programu. Pętla nieskończona wykonuje, co ma wykonywać.
To, czego nie rozumiem, to fakt, że często po pętli są kolejne sekcje programu, które np, mówią o starcie konwersji modułu adc(zacznij pomiar,odczekaj itd...). Jeśli wcześniej w pętli jest wysyłany wynik pomiaru do wyświetlacza, a dopiero po pętli rozkaz rozpoczęcia pomiaru, to co ma wyświetlić lcd ?.
Czy zapis np. void cos_tam(void) mogę zapisać w sekcji int main(void), ale przed pętlą, czy mogę za pisać pod pętlą i czy ma to wogóle znaczenie. Pytam dlatego, ponieważ mamy nieraz dwa, trzy projekty, które trzeba ze sobą powiązać i tak na prawde nie wiem do końca, co gdzie "wcisnąć", a żeby było dobrze.
Pytania może durne, ale myślę, że nie tylko ja mam podobny dylemat.
Proszę o jakieś wyjaśnienia w sposób, jak dla "opornych"
.
Z góry dziękuję i pozdrawiam.szegerege1
Borykając się z trudnym początkiem, jeśli chodzi o programowanie mikrokontrolerów w C, postanowiłem założyć niniejszy temat. Myślę, że przyda się nie tylko mnie, ale i innym osobom stawiającym pierwsze kroki w tym temacie.
Jak zawsze na początku, jest wiele pytań wymagających wyjaśnienia.Oczywiścię w internecie jest wiele pomocnych artykułów, ale są one nie zawsze napisane w sposób łatwy do zrozumienia dla nas laików.
Ponadto korzystanie z metody "copy and past" czyjegoś fragmentu kodu i uciecha z tego, że zadziałało (ale dlaczego zadziałało, to już nie wiem), chyba nie jest właściwą drogą do osiągnięcia czegokolwiek. Jeśli ktoś ma podobne problemy, to proponuję podpiąć się pod temat.
Prosiłbym o wyjaśnienie, jak prawidłowo podejść do pisania programu na samym początku.Zastanawiam się, czy ma to znaczenie.
Zamieszczam kawałek nic nie znaczącego kodu, a żeby łatwiej mi było wyjaśnić, o co mi chodzi.Przepraszam za ten kod, ale myślę, że doświadczeni koledzy mi wybaczą.Chodzi tylko o przekaz.
Kod: C / C++
Jak czytałem, program zaczyna się wykonywać jakby od góry.
Są definicje preprocesora,inicjalizacja np. wyświetlacza,przerwań, modułu ADC itd...To wszystko wykonuje się tylko raz przy starcie programu.
Następnie istnieją sekcje typu void cos_tam(void) i następnie uruchamia się pętla główna, jeśli taka istnieje. Według mojego myślę błędnego myślenia po pętli jest koniec programu. Pętla nieskończona wykonuje, co ma wykonywać.
To, czego nie rozumiem, to fakt, że często po pętli są kolejne sekcje programu, które np, mówią o starcie konwersji modułu adc(zacznij pomiar,odczekaj itd...). Jeśli wcześniej w pętli jest wysyłany wynik pomiaru do wyświetlacza, a dopiero po pętli rozkaz rozpoczęcia pomiaru, to co ma wyświetlić lcd ?.
Czy zapis np. void cos_tam(void) mogę zapisać w sekcji int main(void), ale przed pętlą, czy mogę za pisać pod pętlą i czy ma to wogóle znaczenie. Pytam dlatego, ponieważ mamy nieraz dwa, trzy projekty, które trzeba ze sobą powiązać i tak na prawde nie wiem do końca, co gdzie "wcisnąć", a żeby było dobrze.
Pytania może durne, ale myślę, że nie tylko ja mam podobny dylemat.
Proszę o jakieś wyjaśnienia w sposób, jak dla "opornych"
Z góry dziękuję i pozdrawiam.szegerege1
