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

BASCOM vs ASM: Moje doświadczenia z programowaniem mikrokontrolerów 8051

maziu 22 Mar 2008 19:42 2562 23
REKLAMA
  • #1 4941854
    maziu
    Poziom 18  
    Posty: 363
    Pomógł: 2
    Ocena: 12
    Ciągle widzę tylko BASCOM to BASCOM tamto
    Czy silnik krokowy czy dioda RBG czy irda ... (i tak można jeszcze długo)
    co jakiś czas znajduje piękne projekty w BASCOM-ie ale w czystym ASM to trudno .
    a w EDW ?? programy też są w BASCOM-ie .

    Później czytam wypowiedzi wielkich elektroników co to niby super urządzenie zrobili "a ja tam nie wiem jak to działa" , "po co mi to wiedzieć?","przecież BASCOM jest wysokiego poziomu i robi to za mnie"

    No i prawda są tam gotowe podprogramy czy jak to nazwać ,które robią wilczą część za nas .

    Natomiast ja jako zaczynający zabawę zostałem rzucony na drogę czystego ASM wedle programu szkolnego i puki co z braku czasu chcę nią brnać dalej .

    Następnie chciałbym jeszcze powiedzieć parę słów o tak zachwalanej książce "Podstawy programowania mikro. 8051" panów Piotra i Pawła GAŁKA . Miałem i mam przyjemność pracować na systemie DSM za ciężki szmal 1500zł od sztuki ... i włąśnie ... prosty programator + goła 89s51 z dołączonymi 8 ledami albo 7-segmentówkami dostarcza o wiele więcej frajdy niż ciągła męka i udręka w odwoływaniu się do podprogramów zawartych w systemie DSM ... książka analogicznie używa tych samych procedur przez co nic prócz podstaw i grubej oprawy teoretycznej się nie przydaje . a na pytanie po jaką cholerę szkoła to kupiła nauczyciel załamuje ręce .. i popiera ze wspomniany wcześniej zestaw 89S51+programator ISP + jakieś ledy czy wyświetlacze dają więcej korzyści ...

    Wracając do tematu . W ręce wpadła mi przyjemna strona z przykładami czystego zastosowania ASM www.mikrokontrolery.net czy są jeszcze jakieś tego typu portale gdzie to sie tłumaczy jak krowie na rowie na przykładach ??

    Mam nadieje że nikogo nie uraziłem , Pozdrawiam
  • REKLAMA
  • #3 4941938
    Pituś Bajtuś
    Poziom 28  
    Posty: 934
    Pomógł: 137
    Ocena: 10
    maziu napisał:
    Następnie chciałbym jeszcze powiedzieć parę słów o tak zachwalanej książce "Podstawy programowania mikro. 8051" panów Piotra i Pawła GAŁKA . Miałem i mam przyjemność pracować na systemie DSM za ciężki szmal 1500zł od sztuki ... i włąśnie ... prosty programator + goła 89s51 z dołączonymi 8 ledami albo 7-segmentówkami dostarcza o wiele więcej frajdy niż ciągła męka i udręka w odwoływaniu się do podprogramów zawartych w systemie DSM ... książka analogicznie używa tych samych procedur przez co nic prócz podstaw i grubej oprawy teoretycznej się nie przydaje . a na pytanie po jaką cholerę szkoła to kupiła nauczyciel załamuje ręce .. i popiera ze wspomniany wcześniej zestaw 89S51+programator ISP + jakieś ledy czy wyświetlacze dają więcej korzyści

    1500zł? To i tak taniej niż jest napisane na stronie producenta. Ale wiesz, DSM-51 w zasadzie spotykany jest tylko w placówkach edukacyjnych. Tak więc "Pan za to płaci i Pani też za to płaci i Państwo za to płaci". Producent zrobił niezły biznes na urządzeniu, którego wartość dydaktyczna jest hmmm, lekko mówiąc marna, gdyż wywoływanie gotowych procedur niczego tak na prawdę nie uczy.
  • #4 4941994
    maziu
    Poziom 18  
    Posty: 363
    Pomógł: 2
    Ocena: 12
    No właśnie !! niczego nie uczy !! nie jestem sam :) który tak uważa . a co do tego że tylko w placówkach to niestety są ludzie którzy biorą coś takiego do domu ... a cena wtedy jest większa bo to tylko jedna sztuka.
  • #5 4942006
    antrykot
    Poziom 20  
    Posty: 470
    Pomógł: 27
    Ocena: 27
    Miałem to coś na lekcjach w technikum.
    Uczenie sie na tym ograniczało do uruchamiania gotowych programów, a co bardziej 'ambitne' osoby napisały na wbudowanym edytorze asm program do migania diodą watchdog. Ogóle śmieć za wielkie pieniądze.
    Do tego moduł - np skrzyżowanie z kilkoma diodami na płytce z namalowanymi pasami kosztuje jak pamiętam ~200zł :) Ale jak sie zna kogoś w ministerstwie, to można produkować badziew i powiedzieć, żeby uczyć na nim ludzi.
  • REKLAMA
  • #6 4942033
    maziu
    Poziom 18  
    Posty: 363
    Pomógł: 2
    Ocena: 12
    Apropo ministerstwa !! do tej pory nie wiadomo czy będziemy zdawać praktyczny w praktyce czy też praktyczny w teorii na papieże ... tak jak w ubiegłym roku ;/ i niby po to są te zafajdane DSM-ki bo zekomo to na nich będziemy zdawać ... i znów będzie kopiuj wklej podprogram ;/ ehhh

    tak przypadkiem znalazłem ceny tego całego "wyniku przemiany materii przez ludzki organizm "...


    Dydaktyczny System Mikroprocesorowy DSM-51 + zasilacz TATAREK 6WZS 9/500 1600.00

    -Model skrzyżowania 130.00
    -Tester diod i tranzystorów 65.00
    -Licznik obiektów 80.00
    -Wyjście CENTRONIX do drukarki 60.00
    -Regulator oświetlenia 60.00
    -Interfejs sieci RS485 80.00
    -Czytnik kart magnetycznych 265.00
    -Równia pochyła 170.00
    -Miernik i regulator temperatury 100.00
    -Programator pamięci EEPROM 100.00
    -Zegar czasu rzeczywistego I2C 100.00

    a wierzcie na słowo ze to są takie buble ... (miałem to w rękach )
  • #7 4942164
    MarasK
    Poziom 18  
    Posty: 231
    Pomógł: 19
    Ocena: 4
    Moim zdaniem to nie jest bubel. Sam w tym roku zaliczyłem serię ćwiczeń na takim urządzeniu i jeśli u Was ograniczyło się ono do przepisywania.. .to przykro mi. Gotowe procedurki pozwalają nie bawić się w obsługę peryferiów, a zająć się algorytmami itp.

    Aczkolwiek zgadzam się, że cena za to 'cudo' jest troszkę wygórowana :)
  • #8 4942259
    nsvinc
    Poziom 35  
    Posty: 2870
    Pomógł: 262
    Ocena: 88
    y czekaj, ten wykaz cenowy...powala :D
    Zegarek na I2C, jeden pcf + kwarcyk zegarkowy <lol>....to sie robi za 10zł a nie 100....DRAMAT I MALARIA. Jakby zastosować układzik Dallasa koszt spada do 5zł :/....

    MarasK:
    ale, skoro UCZYSZ SIE BY ZOSTAĆ KONSTRUKTOREM urządzen mikroprocesorowych, to na grzyb ci DSM?
    Gotowe procedurki pozwalają umieć algorytmy, ale zmuszają nie umieć tworzyc interfejsu z uzytkownikiem, obsługi peryferiów, pisania protokołów transmisji danych itp....
  • #9 4942811
    MarasK
    Poziom 18  
    Posty: 231
    Pomógł: 19
    Ocena: 4
    Ja wcale nie twierdzę, że DSM51 jest idealne. Uważam, że nie jest takie straszne jak mówicie.

    A kto powiedział, że SZKOŁA ma uczyć na KONSTRUKTORA? Z tego co wiem, to technik elektronik + audiovideo/automatyk/sieci komputerowe. Gdzie tu słowo o konstruktorze?

    Inna sprawa, że CHCĘ nim zostać. Szkoła ma dać podstawy. Resztę buduj na nich sam :P

    P.S. Nikt Ci nie każe korzystać z wbudowanych procedur. Tak jest po prostu wygodniej. My na pierwszych zajęciach najpierw napisaliśmy sami procedurkę opóźniającą, a na samym końcu użyliśmy tej DELAY_100MS. Liczenia, że głowa bolała (co instrukcja to trzeba sprawdzić ile cykli itp), ale efekt warty zachodu :)
  • #10 4942867
    maziu
    Poziom 18  
    Posty: 363
    Pomógł: 2
    Ocena: 12
    zgodzę się . procedurę opóźniającą napisałem sam ale dalej ? procedura wpisania na LCD itp. ? to już nie opóźniająca :P już nie jest tak łatwo . PS. niestety muszę powiedzieć że miałem gorszy start bo nam nie podsunięto pomysłu że to da sie zastąpić tylko jest i macie używać ... a jak dostaliśmy do ręki coś takiego to kto normalny sie zastanawia czy to co jest już skomplikowane można skomplikować jeszcze bardziej pisząc podprocedury samemu ? :)

    Ok ale wracając do tematu to czekam na jeszcze jakieś przykłady w czystym ASM
  • REKLAMA
  • #11 4943135
    nsvinc
    Poziom 35  
    Posty: 2870
    Pomógł: 262
    Ocena: 88
    Czlowieku po co ci ASM? Jesli chcesz pisać kompaktowy program pod ATTiny to asm potrzebny, ale jesli tworzysz rozbudowany system to nie asm, a C sie stosuje. Sam pisze w C, i na avry potrafie napisac wszystko, od mrygania ledem po system operacyjny. W asmie jest niby kontrola nad tym co robi procesor , ale tak naprawde po co ci ona?
    czy:

    ldi r1, 255
    out PORTA,r1

    nie latwiej zastąpić (w C) PORTA=0xFF?
    [moglem zle napisać asma, słabo znam asma na avry jesli sie walnąłem to sory)

    Obecnie, jesli by myslec przyszłosciowo, od asma czystego sie odchodzi, a pisze w C (albo w Javie, patrz JVM na ARMy), a stosuje asmowe wstawki w kodzie C-owym...
  • #12 4943152
    Balu
    Poziom 38  
    Posty: 4397
    Pomógł: 323
    Ocena: 48
    I właśnie do tych asmowych wstawek trzeba znać asma:)
    PS twój kod się nie skompiluje;)
    instrukcje immediate nie działają na młodszych 16 rejestrach:)
  • REKLAMA
  • #14 4943818
    maziu
    Poziom 18  
    Posty: 363
    Pomógł: 2
    Ocena: 12
    no i mamy właśnie przykład człowieka który nie wie i tłumaczy się brakiem potrzeby ;] ehhh Jeszcze raz ci powiem że ja pracuje w ASM i nie będę w tej chwili mówił o słuszności tego nad tamtym i odwrotnie .

    Jeśli ktoś ma dojścia do procedur w czystym ASMtak jak we wspomnianym linku to proszę a za języki wyższego rzędu to później
  • #16 4956125
    bua
    Poziom 12  
    Posty: 81
    Pomógł: 1
    Witam.
    Generalnie uwazam ze to w czym piszemy program powinno zalezec od tego ile mamy na to czasu, i od stopnia skomplikowania modulu.

    Jezeli chcemy napisac duzy system, uwazam ze nie ma sensu grzebac sie w asm, ale jak mamy napisac jakas procedurke ktora ma przeliczac temperature i wysylac po UART do PC, to moze i warto to zrobic w asm,

    Jesli ktos ma dobrze placone za BASCOMA to niech pisze w BASCOMIE, osobiscie sie tego nie dotykalem... wole C/C++

    Ponadto uwazam ze naprawde duzy system lepiej zoptymalizuje w asemblerze kompilator niz programista.....

    Ale najwazniejsza kwestia to ile czasu mamy na wykonanie projektu, wtedy wybieramy technologie....

    Kwestia wlasnej satyswakcji ze wiem jak to dziala to juz inna sprawa :)

    pzdr
  • #17 4957407
    Ravender
    Poziom 20  
    Posty: 627
    Pomógł: 49
    Ocena: 73
    Na moj gust nauka programowania takich rzeczy powinna wyglądać tak jak u mnie. Płytka stykowa, masa kabelków, worek scalaków i Mb datasheetów. Wszystko łącze sam od podstaw i programuje. Jak działa to się ciesze. Ja nie działa to sie zastanawiam dlaczego. Zupełnie jak w życiu
  • #18 4957913
    Michal19881
    Użytkownik obserwowany
    Posty: 1015
    Pomógł: 57
    Ocena: 62
    Nie zgodzę się z szanownymi przedmówcami apropo DSM-51 jakoby nie miał on dużej wartości dydaktycznej bo ma gotowe procedury (podprogramy).
    Kto wam narzuca obowiązek ich stosowania?
    Przecież można sobie doskonale poradzić bez nich, np LCALL DELAY_100MS można zastąpić prościutką pętlą z dekrementowaniem, obsługę wyświetlaczy można przeprowadzić na przerwaniach i skokach itp...
  • #19 4962131
    maziu
    Poziom 18  
    Posty: 363
    Pomógł: 2
    Ocena: 12
    no właśnie można :P wiec sam sobie odpowiedz po co bulić 1500 zł skoro można bez tego ??
  • #20 4964517
    Zaquadnik
    Poziom 27  
    Posty: 998
    Pomógł: 103
    Ocena: 25
    Prawdę mówiąc aż mnie zamurowało. Zestaw z ARMem kosztował mnie 330 zł, z FPGA - 450 zl, ale 1500 zł za płytkę z 8051 (do tego przestarzałą) to przegięcie. Samemu można złożyć identyczny wręcz zestaw za duuużo mniej (tak około 100 - 150 zł). Nie ma to jak naciąganie szkół. Uważam, że o wiele lepiej do szkoły kupić jakieś zestawy z 8051 Atmela lub AVRkami albo PICami, tańsze, nowocześniejsze i o wiele więcej można się na nich nauczyć. I gdzie tu logika ? :]
    A co do ASM, to sam każdą nową rodzinę mikrokontrolerów poznawałem programując w asemblerze. I choć teraz duże projekty piszę w C to nadal stosuję wstawki asemblerowe tam, gdzie ułatwiają mi one zadanie. BASCOM ma jedną fajną rzecz, programator AVR, a konretnie programowanie fusebitów. Naprawdę trudno się pomylić co do właściwego ustawienia. Mogli jedynie (przy ustawieniu programatora szeregowego) zablokować możliwość edycji bitu SPIEN (takie rozwiązanie jest w PonyProg), byłoby mniej ludzi na elektrodzie jęczących, że zablokowali procka :P
  • #22 4971456
    izipower
    Poziom 11  
    Posty: 6
    Ocena: 6
    Zapraszam cię na moją stronkę: http://izi-creth.w.interia.pl
    Powstała ładnych parę lat temu jako praca zaliczeniowa z informatyki.
    Opisuję tam moje zmagania z '51 od strony Assemblera.
  • #23 4972304
    MarasK
    Poziom 18  
    Posty: 231
    Pomógł: 19
    Ocena: 4
    Zaquadnik, wydaje mi się, że przy programowaniu szeregowym bit SPIEN jest zablokowany sprzętowo.

    Datasheet od ATMEGA8, strona 220:
    Cytat:
    Notes: 1. The SPIEN Fuse is not accessible in Serial Programming mode.
  • #24 4972600
    iwan3000
    Poziom 16  
    Posty: 209
    Pomógł: 9
    Ocena: 3
    Mi się wydaje, że przygodę z programowanie uC powinno się zaczynać od asma, bez względu na to, czy chce się je potem programować w C, czy w innym języku. Tylko asm daje możliwość zrozumienia, w jaki sposób "myśli" procesor i jak go najwydajniej wykorzystać.
    C jest językiem bardziej przejrzystym, bardziej zrozumiałym dla człowieka. Dla tego ja wybrałem dorgę asm a potem C.

Podsumowanie tematu

✨ Dyskusja dotyczy porównania programowania mikrokontrolerów 8051 w języku BASCOM i asemblerze (ASM). Autor wyraża frustrację dominacją BASCOM w projektach edukacyjnych i komercyjnych, wskazując na brak dostępnych przykładów w czystym ASM oraz krytykując dydaktyczny system DSM-51 za wysoką cenę (około 1500 zł) i ograniczoną wartość edukacyjną wynikającą z używania gotowych procedur, które nie uczą podstaw programowania niskopoziomowego. Uczestnicy dyskusji podkreślają, że choć BASCOM ułatwia pracę dzięki gotowym podprogramom, to nauka asemblera jest kluczowa dla zrozumienia działania procesora i tworzenia efektywnych, niskopoziomowych rozwiązań. Wskazano, że w praktyce do dużych projektów częściej stosuje się języki wyższego poziomu, takie jak C, z ewentualnymi wstawkami ASM dla optymalizacji. Krytykowane są również ceny i jakość zestawów dydaktycznych DSM-51 oraz ich peryferiów, które można samodzielnie zbudować taniej i bardziej funkcjonalnie. Podkreślono, że szkoły powinny dawać podstawy, a dalsza nauka zależy od indywidualnej inicjatywy. W dyskusji pojawiły się linki do zasobów z przykładami programów w asemblerze dla 8051 i AVR. Poruszono także temat programowania fusebitów w BASCOM oraz różnic w podejściu do nauki programowania mikrokontrolerów.
Wygenerowane przez model językowy.
REKLAMA