Kurs C czy Assemblera

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
miar
-
Posty: 3
Rejestracja: 02 wrz 2009, 16:35
Lokalizacja: z internetu

Kurs C czy Assemblera

Post autor: miar » 05 mar 2010, 18:16

Skończyłem Mikroprocesorową Oślą Łączkę.
Chcę się teraz zająć jakimś lepszym językiem programowania niż Bascom.
Znalazłem 2 kursy:
Kurs C z EdW
Kurs Assemblera z książki Mikrokontrolery AVR Atmega w praktyce
Który bardziej się opłaca?
Może jakiś inny?

Awatar użytkownika
timo66
Moderator
Posty: 1807
Rejestracja: 20 maja 2006, 19:15
Lokalizacja: 66'15" M.a.R.s.
Kontakt:

Post autor: timo66 » 05 mar 2010, 18:26

Witam
C jest na pewno bardziej uniwersalny niż asembler , gdyż asembler w istocie jest zawsze taki sam , ale część komend do różnych uP są różne.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 05 mar 2010, 18:58

Pisząc w asemblerze lepiej zrozumiesz działanie i budowę mikroprocesorów czy mikrokontrolerów, a pisząc w C poznasz bardziej takie programowanie jakiego używa się w praktyce. Poza tym, w takim samym C możesz pisać potem programy na komputer, a w asemblerze to nie bardzo. Ja bym zdecydowanie wybrał C bo na pewno bardziej się potem przyda w praktyce (w praktyce, czyli jak będziesz musiał lub chciał napisać coś co spełnia daną funkcję, a nie pisał programy w imię nauki).

keruseykaryu

Post autor: keruseykaryu » 05 mar 2010, 19:52

Pisując w C i tak asembler Ci nie popuści. AVR Studio Cię zaskoczy nie raz i nie dwa jak doświadczysz wiecznego głodu optymalizacji i lodówka z napisem Dissasembler będzie jedynym ratunkiem.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 06 mar 2010, 12:15

C jest bardziej uniwersalny i napewno lepiej pisać w C. Mówi się, że pisanie w asemblerze to na każdym mikroprocesorze pisanie w innym języku. Z drugiej strony słyszałem, że assembler AVR jest tak prosty ze i tak warto go umieć.
Naucz się więc C, który pozwoli Ci później i na ARM, ale przy AVR zainteresuj się też asemblerem :mrgreen:

Kuna
Użytkownik
Posty: 130
Rejestracja: 26 lip 2008, 11:03
Lokalizacja: w-wa

Post autor: Kuna » 12 mar 2010, 11:11

Assembler jest zdecydowanie łatwiejszy do nauczenia się, dla kogoś, kto nie miał styczności z programowaniem.

To prawda, że każdy procesor działa w określony sposób i ma swoje rozkazy assemblera. Jednak podstawowe rozkazy są takie same, a różnice polegają na różnych rejestrach, sposobie obsługi peryferiów itp.

Reasumując, Assembler to dobry wstęp do napisania kilku pierwszych aplikacji, później jak się poczujesz pewnie w programowaniu mikrokontrolerów, będziesz czuł ich sposób działania, możesz przerzucić się na inny poziom abstrakcji, którym jest język wysokiego poziomu taki jak C. Assembler jest wygodny, ale do małych aplikacji. W C ładnie możesz pisac skomplikowane projekty.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 12 mar 2010, 12:31

Kuna pisze:Assembler jest zdecydowanie łatwiejszy do nauczenia się, dla kogoś, kto nie miał styczności z programowaniem.
[...]
Reasumując, Assembler to dobry wstęp do napisania kilku pierwszych aplikacji, później jak się poczujesz pewnie w programowaniu mikrokontrolerów, będziesz czuł ich sposób działania, możesz przerzucić się na inny poziom abstrakcji, którym jest język wysokiego poziomu taki jak C.
Prawda, ale większość ludzi którzy chcą zacząć programować zaczyna od pisania programów na komputer (albo przynajmniej tak mi się wydaje), a tutaj z asemblerem jest ciężko. Dlatego wiele ludzi ma w miarę opanowane np. C a od asemblera trzyma się z daleka bo to czarna magia. W takiej sytuacji proponowałbym jednak rozwijać C, a za asemblera zabrać się dopiero jak na horyzoncie będzie widać potrzebę zastosowania go. W ogóle myślę że jeśli ktoś programował coś wcześniej na kompa a chce się pobawić mikrokontrolerami to powinien na początek pisać w tym języku, w którym pisał na kompa.
... tak właściwie to chyba mało to jest związane z pytaniem zadanym przez autora tematu :P

vanderbirk
-
Posty: 1
Rejestracja: 13 mar 2010, 20:42
Lokalizacja: Wlkp

Post autor: vanderbirk » 13 mar 2010, 21:02

No właśnie szukam kursu programowania w Asemblerze. Na kilku stronach w necie coś tam znalazłem ale to dla mnie nadal abstrakcja. A nie znalazłem osoby co by miała chęć wytłumaczyć mi to łopatologicznie. Niby jest jakiś kurs "podstawowy" ale niema w nim skąd się wziął dany rozkaz. Jak by wiadomo było co on oznacza. Jakieś kreski i znaczki a nie wiadomo dlaczego tak to jest. Kod źródłowy składa się z kilku plików i jak to kompilować?

Kuna
Użytkownik
Posty: 130
Rejestracja: 26 lip 2008, 11:03
Lokalizacja: w-wa

Post autor: Kuna » 13 mar 2010, 21:06

Jaka abstrakcja? Nie szukaj kursu, tylko architektury tego procesora, który Cię interesuje. Piszesz w assemblerze A i procesor robi A. Piszesz B, robi B.

piotrek7700
Użytkownik
Posty: 105
Rejestracja: 09 mar 2006, 8:15
Lokalizacja: Leszczyna
Kontakt:

Post autor: piotrek7700 » 15 mar 2010, 9:12

Ja zaczynalem od bascoma. Jednak po kilku porazkach i przekonaniu sie ze jest wielki i powolny, przenioslem sie do C. Troszke trudniej bylo sie przestawic, brakowalo na poczatku mi wszystkiego od konfiguratorow, wbudowanej obslugi peryferii, To po czasie gdy sam napisalem obsluge lcd, i2c, eeproma, moje programy dostaly kopa, sa znacznie mniej obszerne, plynniej dzialaja, w koncu wiem mniej wiecej co robi uC. Ale to i tak zamalo jest, fft w C troche trudne jest i zajmuje duzo mijesca i czasu CPU< a atmegi88 nie da sie w nieskonczonosc przetaktowywac. Dlatego z racji ze na politechnice mam podstawy uC na ST7 w ASMeblerze, to i sam zaczynam pisac wstawki asemblerowe, i dopiero teaz widac jak uC potrafi szybko wspolpracowacowa. praktycznie watchdog jest zbedny, bo nie ma opcji zwiech, ktore w basomie czesto sie zdarzaly. idzie przywyknac i polubic zarowno C jak i asmeblera. Jesli zaczynasz programowanie, nie programowales niczego wczesniej, nie sluchaj inych i zacznij od Asemblera. Jesli opanujesz go, zaden inny jezyk nie bedzie dla Ciebie wyzwaniem. Wg mnie w kazdym innym jezyku bedzie sie skaldniowo prosciej pisalo;;;p
pozdrawiam

miar
-
Posty: 3
Rejestracja: 02 wrz 2009, 16:35
Lokalizacja: z internetu

Post autor: miar » 25 mar 2010, 20:25

Dziękuję za wszystkie odpowiedzi!
Chyba raczej przesiądę się z Bascoma na C. W dodatku ten kurs na początku wymaga płytki AVT-3500 a taką mam. Co do Assemblera to porty AVR'a w nim umiem ustawić :grin:. Do skomplikowanych to on nie należy ale C jest bardziej uniwersalne.

ODPOWIEDZ