Początkujący po Tutorialu: Zestaw podstawowych pytań.

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
pocketer
-
Posty: 1
Rejestracja: 28 lis 2006, 17:12

Początkujący po Tutorialu: Zestaw podstawowych pytań.

Post autor: pocketer » 28 lis 2006, 17:34

Witam

Przeczytałem tutorial ze strony :http://www.patron.net.pl/artykuly/AVR_tutorial.htm i wykonanałem przykłady. Ten tutorial dotyczy programowania w języku C.

I mam pare pytań co do języków programowania, a mianowicie:
Czy każdy język stwarza te same możliwości programiście? Bo patrzyłem na przykłady z innych stron i tam tylko Bascom i assembler stwarza możliwości np. sterowania wyświetlaczem LCD. I czy programator mikrokontroler->LPT (bezpośrednie połączenie bez dodatkowych części) będzie użyteczny także dla kompilatorów języka Bascom? Czy też trzeba będzie zbudować nowy, specjalny dla tego języka? Jaki programator/kompilator języka Bascom ( w formie programu na komputer) będzie działał z tym programatorem ( dla przypomnienia: bezpośrednie połączenie uC->LPT )?
Czy instnieje taki sam tutorial dotyczący języka Bascom?
Który język jest bardziej intuicyjny ( przypomina tekst po angielsku)? Podobno bascom jest dobry dla poczatkujących.
Jaką książkę kupić by nauczyła na przykładach (tak jak powyższy tutorial) programowania w języku C lub Bascom?

A co się tyczy języka C:
Powiedzmy, że podłączam 2 silniczki do pinów mikrokontrolera (każdy z osobna) i chce to co podłączyłem włączyć [ ustawiam piny jako wyjścia i a potem ustawiam na stan wysoki (przepuszczam prąd)]. Później chciałbym by tylko 1 silniczek był włączony. Jak te instrukcje napisać w języku C (czy się da) by nie były wykonywane jednocześnie, a wykonywanie jednej by następowało po drugiej? jaka instrukcja (jeżeli taka istnieje w języku C) określa czas wykonywania instrukcji np. podaj prąd na lewy silniczek przez 4 sek?

Pozdrawiam

_Brutus
-
Posty: 26
Rejestracja: 01 gru 2006, 16:08
Lokalizacja: Złotopole / Łódź
Kontakt:

Post autor: _Brutus » 02 gru 2006, 11:27

czy każdy język stwarza te same możliwości programiście?
każdy język stwarza takie same możliwości. tylko od programisty zależy jak to wszystko wykorzysta. ogólnie rzecz biorąć, to assembler to najprostszy-najtrudniejszy język, ale daje takie same możliwości, co np. bascom, czy c. chodzi tylko o to, ze powiedzmy wykonanie jakiegoś polecenia w c będzie mialo formę "zrób coś();", a w assemblerze będzie to rozpisane na poszczególne komendy dla proca. ogólnie assembler daje większą kontrolę nad programem, ale trzeba więcej, dużo więcej pisać.

Osobiście preferuje C, bo to byl pierwszy język jakiego się nauczyłem, nie tylko na AVR, ale generalnie, szczególnie na PC. Dlatego jestem z nim najbardziej zaprzyjaźniony.
Bo patrzyłem na przykłady z innych stron i tam tylko Bascom i assembler stwarza możliwości np. sterowania wyświetlaczem LCD
Każdy język stwarza możliwości sterowania wyświetlaczem i nie tylko tym urządzeniem. To, czy uda nam się to wykonać, zależy już tylko od wiedzy i w dużej mierze intuicji/sprytowi/inteligencji programisty. W niektórych językach niektóre funkcje są już standardowo zaimplementowane i tylko je "wywołujemy", a w assemblerze będziemy je musieli napisać od początku sami.
I czy programator mikrokontroler->LPT (bezpośrednie połączenie bez dodatkowych części) będzie użyteczny także dla kompilatorów języka Bascom?
Programator nie ma nic, do kompilatora. Jest to urządzenie, dzięki któremu wgramy plik wynikowy do naszego mikrokontrolera. Zazwyczaj jest to plik *.hex.

Chciałbym powiedzieć po drodze, że kompilator każdego języka zamienia instrukcje na assemblera, czyli w końcu i tak w tym języku "programujemy procek". Dzięki temu, przy wykorzystaniu czystego języka assemblera programy stają się krótsze. Ale trudniejsze do napisania.
Czy też trzeba będzie zbudować nowy, specjalny dla tego języka?
Tak jak wyżej. Programator nie ma nic do kompilatora, ani języka programowania. Programujemy kostkę plikiem *.hex, który zawiera hexowy zapis assemblera.
Czy instnieje taki sam tutorial dotyczący języka Bascom?
A to nie łąska poszukać? www.google.pl -> i jazda ;P
Który język jest bardziej intuicyjny ( przypomina tekst po angielsku)?
Jak dla mnie, to najbardziej intuicyjny jest właśnie C. Osobiście nie lubię wogóle bascom'a, nic a nic, ale jest to tylko MOJA opinia. Tobie może się właśnie on spodobać, to zależy tylko od gustu.
Powiedzmy, że podłączam 2 silniczki do pinów mikrokontrolera (każdy z osobna) i chce to co podłączyłem włączyć [ ustawiam piny jako wyjścia i a potem ustawiam na stan wysoki (przepuszczam prąd)]. Później chciałbym by tylko 1 silniczek był włączony. Jak te instrukcje napisać w języku C (czy się da) by nie były wykonywane jednocześnie, a wykonywanie jednej by następowało po drugiej? jaka instrukcja (jeżeli taka istnieje w języku C) określa czas wykonywania instrukcji np. podaj prąd na lewy silniczek przez 4 sek?
Powiem tak: nie da się napisać instrukcji, które wykonywały by się naraz. Każda instrukcja wykonuje się po poprzedniej. Co do oczekiwania 4s, nie ma czegoś takiego, jak instrukcja określająca czas wykonywania. Jeśli wpiszesz stan wysoki na jakiś port ukontrolera, to będzie on wysoki, dopóki nie zmienisz go na niski.
Możesz np. zastosować pętlę for() dla powtarzania czego iles razy, albo funkcji opóźniających działanie procesora (tak jakby jego chwilowe zawieszenie) przez okreslony czas.

ODPOWIEDZ