Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom , C , ASM , który lepszy ?

06 Lip 2009 19:20 2563 27
  • Poziom 15  
    Witam. Często spotykam się w necie za zdaniem że bascom nie nadaje sie do zastosowań profesjonalnych , że jest za wolny itp.
    Mam prośbę czy ktoś mógłby mi sensownie odpowiedzieć dlaczego bascom jest "gorszy" od innych . Bo jak na razie moje zdanie na temat tego języka jest jak najlepsze .

    Pozdrawiam.
  • Poziom 32  
    Bascom jest po prostu prosty i robi za Ciebie całą robotę. W C czy asm musisz pisać własne funkcje co niekiedy przyczynia się do tego że program działa szybciej. To od Ciebie zależy w jakim jezyku chcesz pisać jeżeli lubisz Bascoma i nie wykonujesz na tyle profesjonalnych urzadzen to jest on jezykiem dla ciebie. Anyway pisząc w Bascomie nie dowiesz się jak działa uc i będzie lekko z tyłu.
  • Poziom 38  
    janwinnicki napisał:
    Witam. Często spotykam się w necie za zdaniem że bascom nie nadaje sie do zastosowań profesjonalnych , że jest za wolny itp.

    Nie za wolny, tylko niezbyt optymalny. Przecież kompilacja tworzy kod maszynowy, który działa z prędkością procesora, tak samo jak inne kompilatory.
    Tak się składa, że jeden z Moich komercyjnych projektów w całości powstał w BASCOMie - bo było łatwiej i szybciej napisać program sterujący - a szybkość realizacji liczyła się najbardziej. Zatem teza o nieprofesjonalności jest - Moim zdaniem - mocno naciągana. BASCOM to narzędzie, tak samo jak np. zwykły multimetr. Nim też dokonasz pomiarów i dojdziesz gdzie tkwi problem, i wcale nie będziesz potrzebował super miernika f-my Fluke...

    janwinnicki napisał:
    Mam prośbę czy ktoś mógłby mi sensownie odpowiedzieć dlaczego bascom jest "gorszy" od innych . Bo jak na razie moje zdanie na temat tego języka jest jak najlepsze.

    Bascom jest prosty. Większość robi się sama i to nakłada pewne ograniczenia. Dlatego jest on mało elastyczny. To jest właśnie jego podstawowa wada. Jednak wada ta pozwala na dość szybkie wdrożenie się w to coś co nazywamy "programowaniem". Wiadomo złe nawyki przy dłuższym używaniu Bascom Basic-a zostaną utrwalone i ciężko będzie się przerzucić na inny język. Jeśli jednak w odpowiednim momencie, gdy poczujesz, że ta podstawowa wada Cię ogranicza, warto spróbować zmienić język - w kierunku C. Podstawy będziesz już miał: umiejętność tworzenia algorytmów, myślenie przyczynowo-skutkowe; zmieni się tylko "pisownia i gramatyka". A, że C na małe mikrokontrolery wymagać będzie większej znajomości sprzętu to bardzo szybko będziesz mógł także poznać asembler, bo połączenie C+ASM daje już spore możliwości.
  • Poziom 15  
    Czy to oznacza jeżeli dobrze rozumiem że w C trzeba samemu tworzyć biblioteki obsługujące wbudowane peryferia , na przykład nie wystarczy napisać : config timer1 = pwm , config rc5 , itp ?

    Ps. Czy bascom basic jaest rozwojowym językiem czy raczej chyli się ku upadkowi , bo może nowsze kompilatory rozwiążą kwestie optymalizacji kodu ?
  • Specjalista - Mikrokontrolery
    Jeśli oczekujesz, że ktoś napisze "BASCOM jest super, nowoczesny, rozwojowy, wpaja dobre nawyki, tworzysz super kod i w przyszłości będzie tylko lepiej" to raczej się nie doczekasz. Skoro już masz swoją teorię, to po co szukasz jej potwierdzenia na forum?

    4\/3!!
  • Poziom 25  
    RC5 to nie wbudowane peryferia ;) Ale tak, większość trzeba samemu napisać, chociaż jest dostępnych wiele gotowców, tylko trzeba poszukać.
  • Poziom 38  
    A nie zapomnieliście przypadkiem o podstawowym "języku" mikrokontrolerów?
    Bez niego nic nie da się zrobić.
    Nie wiadomo jak napisać w C, w asm albo dlaczego wszystkie języki wpuszczają w "maliny"?
  • Poziom 25  
    janbernat, możesz jakoś bardziej zrozumiale?
  • Poziom 38  
    Datasheet procesora.
    A stronę (strony) z rejestrami wydrukować i przykleić na ścianie.
    Resztę CZYTAĆ.
    A języki- wszystkie.
    W każdym języku można napisać głupoty albo przedstawić genialne pomysły.
  • Poziom 25  
    To nie jest podstawowy język procesora. To po prostu adresy rejestrów.
  • Poziom 38  
    Bo znowu się rozwinie temat o wyższości asm nad świętami Bożego Narodzenia albo Bascoma nad świętami Wielkiej Nocy.

    Dodano po 2 [minuty]:

    Dlatego napisałem "język"- a nie język.
    Ale wydaje mi się że jest on najważniejszy.
  • Poziom 38  
    janbernat napisał:
    A języki- wszystkie.
    W każdym języku można napisać głupoty albo przedstawić genialne pomysły.

    Hmmm... Mimo usilnych prób nie potrafiłem przekonać Mojego ATTiny45 by ten banalny program w języku polskim posłusznie wykonał:
    Code:
    Zrób ładną migającą lampkę RGB.
    
    Wykorzystaj do tego programowy PWM.
    I niech się to zapętli.
    Koniec.

    :D
  • Poziom 38  
    To nie tylko adresy- ale co tam wpisać- żeby mikrokonroler robił to co ma robić.
  • Specjalista - Mikrokontrolery
    Jeśli dałoby się zmusić rejestrami mikrokontroler do liczenia sinusów na liczbach zmiennoprzecinkowych o podwójnej precyzji to faktycznie - same rejestry by wystarczyły...

    4\/3!!
  • Poziom 38  
    No tak.
    Po mandaryńsku byłoby jeszcze ładniej.
    Poprawiam się:
    Wszystkie z wymienionych w pierwszym poście.
  • Poziom 38  
    Freddie Chopin napisał:
    Jeśli dałoby się zmusić rejestrami mikrokontroler do liczenia sinusów na liczbach zmiennoprzecinkowych o podwójnej precyzji to faktycznie - same rejestry by wystarczyły...

    Niedokładnie określiłeś o jakie rejestry chodzi. Bo zestaw R0-R31 pewnie by wystarczył... :D
  • Poziom 38  
    Freddie Chopin- chodziło mi o podstawowy "język".
    A ile razy Ty sam odsyłałeś do Datasheet procesora?
    Zresztą słusznie.
  • Specjalista - Mikrokontrolery
    Mówimy tutaj o użyciu typu:
    REGISTER_1=cośtam;
    wynik=REGISTER_2;

    [;

    Niemniej jednak tutaj janbernat ma rację - jeśliby nie używać Bascomowych "helperów" tylko operować bezpośrednio na rejestrach, to w sumie nie różniłby się bardzo od C czy assemblera. Tylko kto go tak używa <:

    4\/3!!
  • Poziom 25  
    No ale to logiczne, że czytać trzeba dokumentację. Tak samo jak czyta się intrukcję obsługi nowej pralki, czy mikrofalówki a nie włącza funkcje "na pałę". Chociaż wielu bascomowców tego nie robi... Właśnie przez to, że ten język tego nie wymaga... niestety... Nie uczy działania procesora. Jest łatwy, aż za bardzo.

    Ale prawda jest taka, ze trzeba liznąć każdego języka, szczególnie asm. Bo on pozwala dokładnie kontrolować przebieg programu krok po kroku.
  • Poziom 38  
    Freddie Chopin napisał:
    (...) jeśliby nie używać Bascomowych "helperów" tylko operować bezpośrednio na rejestrach, to w sumie nie różniłby się bardzo od C czy assemblera. Tylko kto go tak używa <:

    Wystarczy ubzdurać sobie coś na ATTiny12 i już wszelkie "helpery" odpadają. Zatem:
    Code:
    $regfile = "attiny12.dat"
    
    $crystal = 1200000
    $asm
      ' tu kod w asm
    $end asm

    Wspaniałe małżeństwo asemblera i Bascom-a.
  • Specjalista - Mikrokontrolery
    Brutus_gsm napisał:
    on pozwala dokładnie kontrolować przebieg programu krok po kroku.

    Może na AVRach <; Kosmosy typu MMU, pipeline'y, prefetching, cache i tym podobne skutecznie uniemożliwiają dokładne kontrolowanie czegokolwiek [;

    Tak chciałem tylko odbiec od "default chip" które na elektrodzie jest zakorzenione mocno.

    4\/3!!
  • Poziom 25  
    Freddie Chopin w każdym bądź razie assembler bardziej to umożliwia niż np BASCOM ;)
  • Poziom 43  
    Freddie Chopin napisał:

    Niemniej jednak tutaj janbernat ma rację - jeśliby nie używać Bascomowych "helperów" tylko operować bezpośrednio na rejestrach, to w sumie nie różniłby się bardzo od C czy assemblera.


    Miałem to samo napisać. Nikt nie zmusza do stosowania tych wszystkich bajerów. Do C też jest dostępne mnóstwo bibliotek i też nie wszystkie działają. Ale nikt się nie żali.


    Freddie Chopin napisał:

    Tylko kto go tak używa <:

    4\/3!!


    Ja.

    Dlatego mimo że sam używam BASCOMa, to polecam C i wstawki assemblerowe. Sam już się na to przerzucam, ale opornie.
  • Poziom 38  
    Tylko janwinnicki już pewnie nic z tej dyskusji nie rozumie.
    Jak jeszcze raz się w tym temacie wypowiem- proszę moda o zbanowanie mnie na jakiś czas.
    Rodzina się ucieszy.
    A niektóre wypowiedzi chyba wydrukuję i przykleję na ścianie.
  • Poziom 34  
    W sumie temat tabu...
    Freddie woli C, ja wolę ASM a ktoś inny Bascoma.
    Ja wole ASM bo jego działanie jest najszybsze, niezawodne i kod wynikowy najmniejszy. Przy tym wszystkim mam pełną kontrlę nad każdym taktem zegara rejestrem i komórką ram. Wadą ASM jest czasochłonność pisania.
  • Poziom 17  
    Witam

    Myślę że Bascom jest dobry na początek, łatwo jest w nim zrealizować działający program i nie trzeba się prawie niczym przejmować, co daje kopa do dalszego działania. Zdobyta wiedza z czasem pozwoli przejść na coś wydajniejszego (włsśnie C lub ASM (najwyższa szkoła jazdy))

    -----

    Nie twierdzę przy tym że Bascom jest zły bo sam realizuje w nim dość skomplikowane programy
  • Poziom 43  
    kamyczek napisał:
    W sumie temat tabu...
    Freddie woli C, ja wolę ASM a ktoś inny Bascoma.
    Ja wole ASM bo jego działanie jest najszybsze, niezawodne i kod wynikowy najmniejszy. Przy tym wszystkim mam pełną kontrlę nad każdym taktem zegara rejestrem i komórką ram. Wadą ASM jest czasochłonność pisania.


    Cytat:
    Myślę że Bascom jest dobry na początek, łatwo jest w nim zrealizować działający program i nie trzeba się prawie niczym przejmować, co daje kopa do dalszego działania. Zdobyta wiedza z czasem pozwoli przejść na coś wydajniejszego (włsśnie C lub ASM (najwyższa szkoła jazdy))


    Panowie, najlepszy jest język ten który znasz.
    Jeśli chcesz sie uczyć, a znasz np. zasady C z PC, to ucz się C. (sic!)
  • VIP Zasłużony dla elektroda
    Raportów już kilka się pojawiło związanych z tym tematem - pozwolę sobie go zamknąć i "dołożyć" do kolekcji już istniejących ;). Ile głosów tyle rad - problem języka programowania nie zostanie chyba nigdy rozstrzygnięty.