logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jaki język wybrać do pierwszego projektu na Atmedze: Bascom czy C? Szukam materiałów

Vein 18 Mar 2006 23:12 1605 10
REKLAMA
  • #1 2430701
    Vein
    Poziom 22  
    Posty: 742
    Pomógł: 1
    Ocena: 51
    Witam !!


    Robie pewien projekt na atmedze, jeest to ogólnie mój pierwszy projekt związany z miikrokontrolerami i ogólnie elektroniką, jak narazie mam schemat i... tyle, musze zająć się oprogramowaniem cuda, ale zaczely się problemy ze znalezienim materiałów, nigdzie w necie nei ma "łopatologicznie" opisanego "zapalania" i "gaszenia" konkretnych piinów na portach, inicjalizacji itp w jęcyku "C", na forum widze same "bascomy" i się na powaznie zaczynam zastanawiiać nad nauką bascoma. Jak przyuważyłem, bascom jest bardzo podobny do pascala, ale z drugiej strony na politechnice ucze się c++ (pascala przerobiliśmy od a do z) i neiweim czy warto sięuczyć kolejnego języka programowania, czy pozostać przy tym co umiem.

    Może WY mi cos doradzicie ?
  • REKLAMA
  • #2 2430723
    Pituś Bajtuś
    Poziom 28  
    Posty: 934
    Pomógł: 137
    Ocena: 10
    Tylko C. O Bascomie zapomnij, zwłaszcza że znasz podstawy języka C(++). Co innego gdybyś nie znał żadnego języka, to Bascom byłby na początek OK.
  • REKLAMA
  • #3 2430802
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Potwierdzam opinię przedmówcy, nie ma sensu się cofać, zostań przy C.
  • #4 2430828
    Vein
    Poziom 22  
    Posty: 742
    Pomógł: 1
    Ocena: 51
    co ne mziienai faktu, że mam małe problemy z "przemigrowaniem" z pc na miikrokontrolery, bo jak dotychczas, spotkałem się z 2 rodzajami "kursów", jeden zakłada że nic nie umiem z c, i uczy c pctowego, a drugi zakłada że umiem c mikrokontrolerowe i poprostu pokazuje metody, nie licze trzeciego ktory nic nie tłumaczy tylko daje przykłady :P
  • #5 2430926
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    W pewnym momencie nie unikniesz liźnięcia asemblera, chociażby po to, aby w krytycznych czasowo miejscach poratować się wstawką, czy też ze względu na niewielki obszar pamięci na program. Jeśli chodzi o AVR, to jest on (asm) dobrze wspierany, spis rozkazów z drobnymi przykładami jest w każdej nocie katalogowej, IDE (AVRStudio) jest darmowe.
  • REKLAMA
  • #6 2430965
    Vein
    Poziom 22  
    Posty: 742
    Pomógł: 1
    Ocena: 51
    jak naraziie ASM to "za wysokie progi na moje nogi", jak ja widze te 2 literowe komendy, i wszystko w języku niskopoziomowym, od odwoływania sie do pamieci, poprzez operacjie w stylu mnożenia czy dzielenia... nie mówiąc o dzieleniu modulo...
  • #7 2431003
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Nauka "C" na uC to w rzeczy samej nauka uC. (Czasem żartuję, że zacząłem programować w "C" kiedy dowiedziałem się co oznacza void). Z możliwości jakie daje "C" do programowania mikrokontrolerów nie wykorzystuje się na codzień zbyt dużo (przeważnie pętle, warunki i obliczenia). Żeby zaprogramować uC trzeba wiedzieć sporo o jego budowie, a co za tym idzie znać rejestry gdzie ustawia się porządane właściwości uC dla danego projektu, a także o sposobach sterowania urządzeniami dołączonymi do uC - np. wyświetlacz, szyna 1wire, I2C itd. Jeżeli znasz "C" to zacznij od poznania mikrokontrolera i urządzeń peryferyjnych. Później (albo równolegle) zanalizuj kilka programów napisanych na uC i wszystko powinno się rozjaśnić. Dla porównania w Bascomie wiedza o uC i innych urządzeniach jest zaszyta w tym języku. Tu w zasadzie nie musisz wiedzieć nic o uC, szynach, wyświetlaczach (wystarczy wiedzieć, że są). Na szczęście w sieci można znaleźć gotowe procedury do obsługi różnych urządzeń (układów), szyn itp. napisanych w "C", ale jak z praktyki wynika szybciej czasem napisze się własne programy niż połapie się w cudzych (szczególnie, że "C" jest dość rozczochrany). I jeszcze jedna kwestia (moralna). Jeżeli chcesz aby mówili o tobie, że jesteś porządnym programistą to naucz się "C" (albo jeszcze lepiej asemblera). Jeśli chcesz zostać niewiele wartym amatorem to Bascom ci w tym pomoże.
  • #8 2431082
    Vein
    Poziom 22  
    Posty: 742
    Pomógł: 1
    Ocena: 51
    raczej wyjscia ne mam, i musze sie naumieć C, z prostego powodu, studiuje kierunek gdzie "C" jest jednym z rpzedmiotów :D, widzisz, narazie mam jeden porblem, i jakoś nikt nie pomogl mi go rozwiazać, przyrównam to do najprostrzego przykładu:
    mam baterie i LED, nieweim jak je podłączyc by świeciła LED, poprosiłem kogoś o pomoc, a on zaczal mi dawać wykład o budowie i funkcjach diód LED, o budowie baterii, zasadach dizłania i podstawach zjawisk wizycznych tyczących się zjawiska elektroluminescencji

    Jednym słowem ktoś mi mówi "znajdziesz w notach katalogowych"", jak zaczelem czytać pdf n.t mikrokontrolerow avera (znalazlem w winavr) to myslalem ze sie pochlastam, bo musialbym przeczytac drobne 300 stron by znalezc to_co_chce
    :P, ale rozumiem tych ludzi, i widocznie faktyczne musze grzebac w necie i szukac stron po angielsku, bo w polsce wszyscy jadą na bascomie i niigdzie nei ma porzadnych informacji n.t avr i programowania w c pod avr..
  • #9 2431594
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Gorzej niż myślałem. Mikrokontrolery to nie tylko programowanie. Jest to też elektronika ze wszystkimi konsekwencjami tego faktu. To konieczność realizowania układów elektronicznych czyli wykonywania płytek, posługiwania się lutownicą, dostosowywania obudów, znajomości podzespołów współpracujących, zasilających itd. No chyba, że ktoś będzie to robił za ciebie, lub znajdziesz gotowe urządzenia do oprogramowania. Jeżeli nie to polecam literaturę z zakresu elektroniki.
    Co do znajomości uC to niestety zostają noty katalogowe i książki opisujące mikrokontrolery np. wydawnictwa BTC.
    Co do "C" nieliczne fragmentaryczne kursy i analiza gotowych programów.

    Wbrew pozorom pomocna może być książka p. Wiązani o programowaniu w Bascomie z uwagi na zawarte w niej przykładowe schematy połączeń w różnych zastosowaniach.
    Reasumując nauka programowania to ok. 10% wiedzy, którą potrzebujesz.
  • REKLAMA
  • #10 2432384
    Vein
    Poziom 22  
    Posty: 742
    Pomógł: 1
    Ocena: 51
    co do elektroniki, mówiłem że to pierwszy poważny projekt :P, lutownicą bawie się od kilku lat, ale robiłem głównie małe pierdóły ze schematów znalezionych w necie. Co do reszty, to ja traktuje ten projekt jak klocki lego, znajduje w necie schematy gdzie jakaś część tego wykonuje potrzebną mi funkcje, wycinam i składam z tego swój schemat :D, a google ma obszerną baze, i zazwyczaj znajde co chce, bo co nagle ja potrzebuje ? Obsługa wyświetlaczy 7 segmentowych, 3 przycisków i 1 układ dopasowujący sygnał o impulsach i 1 do obsługi hallotronu, 2 pierwsze już mam , zostały jeszcze te 2, i najtrudniejsza czesc, czyli napisianie oprogramowania.
  • #11 2432900
    sawitar
    Poziom 18  
    Posty: 226
    Pomógł: 20
    Ocena: 19
    Programowanie uC prawie niczym nie rózni sie od programowania komputera klasy PC ( w uP ZAZWYCZAJ nie ma systemu operacyjnego ). Większośc kompilatorów C dla uC jest kompatybilna ze standardem ANSI C.

    Kompilatory C są zazwyczaj rozszerzone o obsługe typów bitowych i funkcji przerwań.

    Problem pojawia sie przy obsłudze urządzeń zewnętrznych ( wyświetlacze, klawiatury, magistrale ). W PC sterowniki do tych urządzeń są dostarczane przez system operacyjny. I ciebie jako programiste nie interesują. W przypadku uC niestety musisz sam zadbać o te rzeczy.

    Programy pisz w ANSI C w taki sposób jakbyś pisał na PC, a niskopoziomową obsługe urządzeń rób w osobnych plikach i przechowuj je w innym katalogu, mogą one byc w dowolnym języku. Gdy zbierzesz odpowiedni dużo tych bibliotek to okaże sie ze pisanie programów na uC naprawde niczym nie rózni sie od pisania na PC.

    Polecam ksiązke "ANSI C". Jedyna ksiązka z której korzystałem podczas mojej nauki C.

    Pozdrawiam i życze sukcesów.

Podsumowanie tematu

✨ Dyskusja dotyczy wyboru języka programowania do pierwszego projektu na mikrokontrolerze Atmega, z pytaniem czy lepiej zacząć od Bascoma czy C. Zalecane jest pozostanie przy języku C, zwłaszcza jeśli użytkownik zna już podstawy C lub C++. Bascom jest prostszy i bardziej zbliżony do Pascala, ale ogranicza wiedzę o mikrokontrolerze i jego peryferiach, gdyż wiele funkcji jest w nim ukrytych. Programowanie w C wymaga znajomości architektury mikrokontrolera, rejestrów i obsługi urządzeń zewnętrznych, co jest kluczowe dla efektywnego tworzenia oprogramowania. Warto analizować przykładowe programy i dokumentację techniczną (noty katalogowe), mimo że są obszerne i trudne do przyswojenia. W pewnym momencie przyda się także znajomość asemblera dla optymalizacji krytycznych fragmentów kodu. Programowanie mikrokontrolerów różni się od programowania PC głównie koniecznością samodzielnej obsługi urządzeń peryferyjnych, gdyż nie ma systemu operacyjnego. Zalecane jest pisanie kodu w standardzie ANSI C z modularnym podejściem do obsługi sprzętu. W dyskusji podkreślono również, że nauka elektroniki i praktyczne umiejętności lutowania są niezbędne do realizacji projektów z mikrokontrolerami. Polecono literaturę dotyczącą elektroniki i programowania w C oraz Bascomie jako pomocne źródło przykładów schematów połączeń.
Wygenerowane przez model językowy.
REKLAMA