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

aTTiny 2313 i kompletnie zielony w temacie uC :cry:

finch 02 Sie 2007 22:14 2477 22
REKLAMA
  • #1 4140581
    finch
    Poziom 20  
    Posty: 516
    Pomógł: 2
    Ocena: 11
    Witam wszystkich

    Z elektroniką analogową mam małe doświadczenie ale siedząc w temacie coraz mocniej zaczyna mi doskwierać brak umiejętności poruszania się po królestwie mikro kontrolerów co chciałbym zmienić w najbliższym czasie.
    Już kiedyś zacząłem się interesować tym tematem ale potem zabrakło mi czasu i pomysł upadł. Z mojego poprzedniego "zwiadu" jak i informacji i rad znajomych siedzących w temacie odradzili mi uczenie się od razu C oraz nie polecali siedzenia w bascomie za to z własnego doświadczenia powiedzieli żebym się uczył Asemblera i mieli racje bo dokopałem się gdzieś na sieci do informacji że faktycznie C nie daje dostępu do wszystkich rejestrów uC oraz że ten język jest w miarę uniwersalny i umożliwia pisanie dla większości scalaków.

    Tak więc tu zwracam się z prośbą do wszystkich osób które siedzą w temacie o wszelką możliwą pomoc(artykuły kursy linki cokolwiek co może pomóc początkującemu), dodam że pisałem programy w C C++ oraz w środowisku CAD`owskim dla przekaźników programowalnych ale mimo to nie znam komend w ogóle nie mam pojęcia o składni tego języka komendach słowem jak wyżej kompletnie zielony.
  • REKLAMA
  • #2 4140918
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 4141091
    oj
    Poziom 42  
    Posty: 6632
    Pomógł: 788
    Ocena: 480
    Przecież kolega chce nauczyć się Asemblera a nie C.

    A najlepiej posługiwać się oba językami na zmianę lub równocześnie, np wstawki asemblerowe przy pisaniu w języku C.

    Dużo jest na angielskojęzycznych stronach, parę kursów jest prowadzonych na łamach pism EP i EdW.

    Książek też jest parę.


    www:
    http://www.edw.com.pl/ea/asm_avr_jezyk.html
    http://easy-soft.pl/modules.php?name=Downloads&d_op=getit&lid=92
    http://www.asembler.host.sk/
    http://www.avr-asm-tutorial.net
  • #4 4141164
    Konto nie istnieje
    Konto nie istnieje  
  • #5 4141389
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    Bascomem faktycznie można sie pobawić ale poza stwierdzeniem że procesor coś robi niczego sie nie nauczysz proponuje zakup książki wydawnictwa BTC mikrokontrolery AVR Atiny w praktyce. Choć tytuł groźnie brzmi znajdziesz sporo informacji których potrzebyjesz wraz z przykładami i komentażami polecam . Książka dostępna z zestawem startowym ;) Oczywiście wszysto w ASM i opis AVR studio ...
  • #6 4141438
    Pituś Bajtuś
    Poziom 28  
    Posty: 934
    Pomógł: 137
    Ocena: 10
    technics6 napisał:
    Odradzanie bascoma przez Twojego znajomego to głupota. Może to mało ambitne środowisko, ale można się na nim nauczyć podstaw (przejrzysta składnia, dobrze opisane przykłady dołaczone do instalki bascoma itd) a później kiedy zaczniesz rozumieć cokolwiek możesz przesiąść się na ASM lub C i na pewno wchłoniesz wiedzę szybciej niż rzucając się od razu na ASM lub C.


    Bascom nie sprzyja nauce podstaw. Przez dostępność gotowych (i utajnionych przez producenta) bibliotek procedur osoba rozpoczynająca naukę od programowania w Bascomie nie ma szans na poznanie zasady działania poszczególnych protokołów czy interfejsów. Osoba zachłysnięta faktem, że wystarczy wpisać jedną komendę i wszystko działa raczej nie będzie dążyła do zrozumienia jak i dlaczego działa. Na początku nauki tylko i wyłącznie asembler. Potem moża sie bawić w Bascomy czy C. Przykładem może być to forum, na którym 90% postów jest pisane przez użytkowników Bascoma którzy mają problem z podstawami, bo dostali wspaniałe narzędzie, które "myśli za innych" i ich zwalnia z myślenia.
  • #7 4142240
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Cytat:
    Właczenie "napięcia na nóżce" polega na ustawieniu odpowiedniego bitu w odpowiednim rejestrze (nóżka jest do niego "podłączona"). W atmelach AVR to jest rejestr PINx.y gdzie x to kolejny port (A,B,C,D itd) a y to numer nóżki.

    No chyba kolega sie pomylił bo PINy mozna tylko odczytywać, a ustawia się stan wyjścia na PORT'ach które dublują stan wejść (PIN'ów) lub ustawiają w kolejnym cyklu stany PIN'ów pracujących jako wyjścia.
    Ale mniejsza z tym.

    Bascom = początkujący bez większych aspiracji
    C = średnio zapaleni lub nieco leniwi elektronicy
    ASM = sadomasochiści i perfekcjoniści, z zapędami dyktatorskimi

    Jeśli masz dużo czasu to możesz poznawać różne uC z danej odziny, jeśli mniej to wybierz najczęściej używane.
  • #8 4142374
    Konto nie istnieje
    Konto nie istnieje  
  • #9 4142746
    ZlyDotyk
    Poziom 19  
    Posty: 169
    Pomógł: 40
    Ocena: 1
    technics6 napisał:
    "Bascom nie sprzyja nauce podstaw" - OK, ale zadajmy pytanie - czy ktoś się chce uczyć programowania mikrokontrolerów czy chce poznawać protokoły?



    to tak jak byś zapytał czy mechanik samochodowy powinien tylko wiedzieć co przykręcić żeby działało, czy może jednak powinien znać zasadę działania silnika?
    Potwierdzam opinie że do rozpoczęcia nauki najlepszy jest asembler. W przypadku małych mikrokontrolerów jest on na tyle prosty że jego nauka nie stanowi problemu, a co najważniejsze uczy odpowiedniego myślenia - a Bascom? Chyba zupełnie przeciwnie :D Poza tym pisząc programy w asemblerze nikt Ci nie każe pisać od początku obsługi na przykład wspomnianego LCD bo już setki ludzi zrobiło to wcześniej.
  • #10 4142790
    Platon
    Poziom 42  
    Posty: 9185
    Pomógł: 744
    Ocena: 170
    Asembler czy C moze konkretnie zniechecic do jakiejkolwiek zabawy w mikrokontrolery. Jak dla mnie zaczęcie od BASCOM'a to bardzo dobra sprawa, na zasadzie "jakie to proste", kiedy amator odpala np swoj pierwszy napis na LCD, czy mrugajaca diodke. Az sie chce uruchamiac i sprawdszac kolejne polecania/mozliwosci.

    A jak ktos ma ambicje, to sam zauwazy czego mu brakuje i zacznie zabierac sie do C i/lub asm. W ogole skad pomysł, ze jak ktos programuje w BASCOM to nie pozna podstaw, ani protokolow/interfejsow - na poczatku do niczego to niepotrzebne, ani koniecznie, a zakazu zadnego nie dostaje. Tak samo jak z komputerami - niektorzy zostaja przy wordzie i pasjansie i zupelnie dobrze sie z tym czuja.
  • #11 4142902
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    ASM = niezawodność oczywiście bawiąc sie asm masz możliwość pełnej kontroli nad wszystkimi operacjami wykonywanymi przez naszą małą kosteczkę zajmuje to więcej czasu ale programy pisane w asemblerze są najmniej zawodne , mają najkrótszy kod wynikowy i pozwalają na pełną kontrolę działania mikrokontrolera . Zaletą c jest uniwersalność środowiska wadą kod wynikowy (długość). Bascom to przyjazne środowisko dla całkowitych analfabetów ale można od niego zacząć. Po sobie wiem że wszystkie drogi prowadzą do asemblera i to co wydaje sie być przeżytkiem dla wielu ma zasadniczo jedną zaletę : jest bez wad a dokładniej kod napisany w asemblerze zawsze działa lepiej, szybciej, pewniej.
  • REKLAMA
  • #12 4143513
    Konto nie istnieje
    Konto nie istnieje  
  • #13 4143760
    przemotronik
    Poziom 13  
    Posty: 87
    Pomógł: 3
    Ocena: 1
    technics6 napisał:

    AVR-y były projektowane pod języki wysokiego poziomu właśnie po to, żeby zwykły śmiertelnik nie musiał się męczyć z asemblerem.

    A jeżeli połączy się możliwości hardware'owe AVRów z ASM to chyba da wymierne korzyści. Dobrze myślę :?:
    Moje zdanie jest takie, że na sam początek BASCOM jest świetny, a potem można przerzucić się na C, następnie na ASM. Ja uczę się z "Mikroprocesorowej Oślej Łączki" i jestem zadowolony. Autor kursu opisując funkcje BASCOMowe (które, przyznam szczerze, również wydają mi się zbyt proste, by były optymalnym rozwiązaniem) zawsze podaje, co dana funkcja robi. Na przykład:
    Config Portb=output

    to w rzeczywistości:

    To już przgotowuje do operacji na rejestrach.
    Poza tym funkcje BASCOMowe zajmują dość dużo przestrzeni pamięciowej. Nie wspominając już o .
    Reasumując powiem, że moim zdaniem odpowiednio wykorzystany BASCOM nie zamyka drogi do wyciśnięcia wszystkich możliwości z uP, ale bezboleśnie wprowadza mikroprocesorowych "żółtodziobów" do tego wspaniałego świata. Natomiast błędem byłoby-wg mnie-zatrzymanie się na tym dialekcie bez ambicji do asemblera.
    Pozdrawiam
    Przemotronik
  • #14 4144007
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    technics6 napisał:
    Ważne jest jeszcze po co ktoś chce sie uczyć programowania procków. Jeżeli traktuje to jako hobby to myślę że znajomość asm jest zbędna.
    Jak już się grzebać w ASM-ie to na PIC-ach. Są bardziej dopracowane, lepiej wyposażone i szybsze (sporo "chodzi" powyżej 16MHz) od AVR. Nie sądzicie?.

    Sporo atmeli chodzi jak to ująłeś na 20MHz a twierdzenie po co sie uczyć jest znakomitym przykładem tego co myślą młodzi ludzie... Po co sie uczyć pojadę do Anglii na budowe zarobie tyle co inż w kraju o tym, ze będziesz tam popychadłem na budowie czy będziesz czyścił kible to już nie wspomina nikt . Uczysz sie po to żeby mieć pojęcie jak rozwiązać pewne tematy i poprawić wstawką asemblerową dziadostwo o nazwie BASCOM w którym większość działa lub nie ... A do tzw Hobbty to trzeba miec zapał i być perfekt dla mnie bycie miernotą to nie tak jak to nazywasz hobby tylko pozerstwo. Tak jest ze wszystkim jeden kupuje JTAGA z neta za 100zł inny kupi jtaga za 1700 zł z Atmela i prawie to nie znaczy to samo ....
  • REKLAMA
  • #15 4144036
    Konto nie istnieje
    Konto nie istnieje  
  • #16 4144242
    Konto nie istnieje
    Poziom 1  
  • #17 4144430
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    Niestety sa tacy którzy na c i bascomie skończą bo tak łatwiej i wygodniej co z tego że nie mają pojęcia czym sie różni r0 od r16 ... Pisanie w c czy innych językach tego poziomu kończy sie gnieciuchami typu WINDOWS VISTA może nie dosłownie ale w aplikacjach dla których kod asemblera ma długość 1KB kod w c ma 50 % więcej . Prawdą jest że ten 1KB jest tani jak barszcz a czas drogi ale szybkość działania programu spada drastycznie dlaczego ? Niech sobie każdy odpowie sam ...
  • #18 4144435
    Konto nie istnieje
    Konto nie istnieje  
  • #19 4145131
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    Białystok co ty możesz wiedzeć u was tylko krowy pastwiska i bandy UPA :) a tak na poważnie to rób co chcesz to twoje życie tyle ze jako znawcwe bascoma to cie nigdzie nie przyjmą ...
  • #20 4145490
    Konto nie istnieje
    Konto nie istnieje  
  • #21 4145614
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    Wszystko fajnie ale nawet do prostej zabawy można użyć asemblera dla samej satysfakcji i dla posiadania czegoś co na pewno nas nie zawiedzie od strony programowej jeśli tylko zadziała raz będzie działać zawsze dobrze. Wiele osób boi sie asemblera ale naprawdę niepotrzebnie . To język prosty zwięzły i bardzo skuteczny programowanie w c czy basicu to jak gadanie do kogoś przez tłumacza ... Kiedyś też byłem przeciwnikiem pisania w asemblerze ale przekonałem sie pisząc kilka programów że to co powinno działać w bascomie czasem nie działa i nie ma na to ani rozwiązania ani powodu poza tym niektóre urządzenia dają sie konfigurować tylko raz sprubuj bez uciekania sie do rejestrów zmienić prescaler w timerze czy jego funkcję ... w asemblerze można zrobić to bez problemu dowolną ilość razy. Jeśli korzystasz z nowych procków i usarta często bascom z tym kuleje a już rs 485 to działa jak totek . Pisząc w asemblerze korzystasz z pdfów ze strony producenta i masz wszystko jak na dłoni ...
  • #22 4145771
    Platon
    Poziom 42  
    Posty: 9185
    Pomógł: 744
    Ocena: 170
    kamyczek - rownie wiele osob nie tyle boi sie asemblera, co nie ma czasu na takie zabawy, i satysfakcjonuje je bardziej cos w stylu LCD("napis"); Poza tym C jest szybsze, i nie wiem jak sie bedziesz spinal, to tego nie przeskoczysz. Co do Bascoma i "nic nie dziala" to przypomina mi sie te powiedzenie o tej baletnicy i jej spodnicy. Bo dla mnie w Bascomie dziala wszystko, co tam pisalem. Ale to oczywiscie kwestia podejscia, i z takim "zly bascom" wiadomo, ze duzo sie nie zrobi.
    Inna sprawa, to skad ty bierzesz teorie, ze jak ktos pisze w C/bascomie, to nie zna rejestrow lub nie moze ich zmieniac? ?Nawet w bascomie mozesz to zrobic - tez dowolna ilosc razy. I tez mozesz korzystac z pdf'ow producenta (o dziwo!!).
  • #23 4146810
    ZlyDotyk
    Poziom 19  
    Posty: 169
    Pomógł: 40
    Ocena: 1
    technics6 napisał:


    AVR-y były projektowane pod języki wysokiego poziomu właśnie po to, żeby zwykły śmiertelnik nie musiał się męczyć z asemblerem.

    Jak już się grzebać w ASM-ie to na PIC-ach. Są bardziej dopracowane, lepiej wyposażone i szybsze (sporo "chodzi" powyżej 16MHz) od AVR. Nie sądzicie?


    nie obraź się ale w moim mniemaniu te stwierdzenia dyskwalifikują Cię jako doradcę w kwestii programowania...

Podsumowanie tematu

✨ Dyskusja dotyczy nauki programowania mikrokontrolerów AVR, ze szczególnym uwzględnieniem ATtiny2313, przez osobę początkującą w temacie uC. Poruszono kwestie wyboru języka programowania: asemblera, C oraz Bascoma. Wielu uczestników poleca rozpoczęcie nauki od asemblera ze względu na pełną kontrolę nad rejestrami i efektywność kodu, co sprzyja zrozumieniu działania mikrokontrolera. Zwrócono uwagę, że C umożliwia pisanie bardziej uniwersalnych programów, a wstawki asemblerowe można stosować w kodzie C. Bascom jest oceniany jako środowisko przyjazne dla początkujących, pozwalające szybko uzyskać efekty, ale krytykowane za ukrywanie działania niskopoziomowego i ograniczanie nauki podstaw. Podkreślono, że nauka asemblera uczy odpowiedniego myślenia i pozwala na optymalizację kodu, co jest ważne w zastosowaniach wymagających niezawodności i szybkości. Wskazano na dostępność kursów, książek (np. wydawnictwa BTC) oraz materiałów online, które mogą pomóc początkującym. Dyskusja zawierała także wyjaśnienia dotyczące architektury AVR (RISC) i jej przeznaczenia pod asembler, a także porównania z mikrokontrolerami PIC. Poruszono temat konfiguracji portów i rejestrów DDRx, PORT, PIN w AVR. Wskazano, że wybór języka i środowiska zależy od celu nauki i ambicji użytkownika.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA