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

Wybór mikrokontrolera do assemblera: '51 czy AVR? Który lepszy?

M_M_el 15 Lut 2003 16:03 3001 18
REKLAMA
  • #1 101601
    M_M_el
    Poziom 11  
    Posty: 13
    Witam
    Mam takie pytanko:do pisania programow pod assembler jaka lepiej rodzine prockow wybrac: '51 czy AVR.Chodzi np o to ze AVR nie maja 16-bitowego rejestru DPTR i duzo rzeczy trzeba tam robic na piechote.
    Przy okazji prosze o podanie mi odpowiedniego oprogramowania.
    pozdrawiam
  • REKLAMA
  • #2 101822
    tgrzyska
    Poziom 14  
    Posty: 92
    Ocena: 13
    Nie znam AVR'ów, ale z tego co wiem to są podobne do PIC'ów, które znam dobrze - różnią się rozmiarem listy rozkazów, ale mniejsza z tym.
    Zależy co chcesz robić. Jeżeli korzystać z zewnętrznej dużej pamięci np. RAM, to chyba lepszy będzie '51, ze względu na DPTR'a, który można inkremetować. W PIC'u też da się to zrobić, ale już nieco inaczej i "na piechotę" - przypuszczam że w AVR podobnie. Do '51 jest Keil darmowy z symulatorem do 2kB. A do AVR'ów całe darmowe środowisko AVR STUDIO, czy jakoś tak.
  • REKLAMA
  • #3 101850
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    To zależy co chcesz robić. Jeśli jakieś bardzo szybkie sterowanie, to AVR, (przy kwarcu 10MHz masz 10 MIPS), a jak coś wolniej, to 89Cx051, bo i tańszy i jakiś taki bliższy. Chociaż z drugiej strony jak ktoś pisze w asemblerze, to różnicy wielkiej nie ma.
    Pozdrawiam, Michał.
  • #4 101852
    ElGregor
    Poziom 23  
    Posty: 654
    Pomógł: 2
    Ocena: 56
    Procesory AVR nie tylko mają szesnastobitowy rejestr a nawet mają trzy 8O (X,Y,Z), a lista rozkazów jest w zasadzie uboższa tylko o mnożenie i dzielenie, w zamian za to przy tej samej częstotliwości zegara są kilkakrotnie szybsze :D
  • #5 101859
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Ależ jest i mnożenie jest i MUL i DIV, tylko wykonują się 2 cykle rozkazowe. Przynajmniej tak pamiętam, ale mogę się mylić.
    Pozdrawiam, Michał.
  • REKLAMA
  • #6 101870
    ElGregor
    Poziom 23  
    Posty: 654
    Pomógł: 2
    Ocena: 56
    Na liście rozkazów u atmela pisze że jest DIV, MUL, FMUL, FMULS ale ich asembler wyrzuca błędy przy asemblacji że instrukcje są niedozwolone dla tego procesora (próbowałem 2313,8515,8535 i na żadnym nie ma, musiałem zrobić "na piechotę")
  • #7 101886
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Być może. Nigdy nie stosowałem żadnych narzędzi dla mikrokontrolerów, bo miałem i mam swoje własne, prymitywne, ale bardzo elastyczne. Mogę w każdej chwili dopisać kilka linijek kodu i będę miał nową funkcję. O i cała nowina.
    Pozdrawiam, Michał.
  • #8 102058
    M_M_el
    Poziom 11  
    Posty: 13
    Dziekuje wszystkim za opinie.
    Co do rejestrow X,Y,Z to nie sa one tak do konca 16-bitowe,bo trzeba je ladowac po polowie tj mlodsza i starsza czesc np. Z to bedzie ZH i ZL,a nie jak to bylo w przypadku DPTR.
    Fakt Atmel jest szybki,nowoczesny,ale nie zauwazyliscie ze jesli ktos cos robi w assemblerze to robi to na 8051(nawet na elektrodzie)-latwiej wtedy o konsultacje-atmela wszyscy zachwalaja a malo osob cos w nim robi(jesli chodzi oczywiscie o assembler),
    poza tym kiedys chcialem napisac program na obbsuge lcd-nie udalo sie,podpatrzylismy z kumplem zrodlo z codevision i zadzialalo-ale w programie znajdywaly sie linijki ktore z teoretycznego punktu widzenia nie powinny tam byc,kumplowi ktory napisal to samo pod 8051-poszlo bez problemu-podobnie bylo z i2c-co wy na to??
    Na avr jest avr studio a Wy co byscie polecilibyscie na 8051,czy ktos spotkal sie z emulatorem na ten procek??
    pozdrawiam
  • REKLAMA
  • #9 102102
    tgrzyska
    Poziom 14  
    Posty: 92
    Ocena: 13
    Na '51 - chyba obsługuje wszystkie dostępne na rynku jest Keil UVision, czy jakoś tak. Ma darmowy symulator do 2kB kodu.
  • #10 102127
    M_M_el
    Poziom 11  
    Posty: 13
    jakies namiary??
  • #12 111953
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Ludzie, ratunku!!!!!! Nie porównujcie AVRów do Piców!!! AVR jest w pełni proesorem RISC, PIC jest nim tylko w reklamówkach...
    Zdecydowanie polecam AVR. Programuję 51 i AVR w asm i C. AVR mają znacznie większe możliwości, co do ceny też by się kłócił, AT89C2051 kosztje w detalu ok 8 zł, ATMega8 kosztuje 22zł, i do dystpzycji mamy 10bit przetwprnik A/C, wewnętrzny EEPROM, watchdog, i masę innego sprzętu, aczkolwiek wszystko zależy od zastosowania.
    CO do rejestrów X Z Y to DPTR w zasadzie też trzeba ładować na dwa razy, jeżeli się ładuje coś "od siebie". No i nie ma sztywnego trzymania się akumulatora...
    Tyle tylko, że polecam jednak zasiąść do C ;-)
  • #13 112211
    M_M_el
    Poziom 11  
    Posty: 13
    No wreszcie jakas konkretna odpowiedz,dzieki Tdv,bo tu widze ze inni pisza aby pisac,a ja jak problem mialem tak mam.
    Powiedz mi tylko Tdv jakiego softu uzywasz do C,moze tez dasz jakies namiary na kursy.
    pozdrawiam
  • #14 112283
    smiga
    Poziom 18  
    Posty: 235
    Pomógł: 21
    Ocena: 43
    rodzina 51 jest bardzo rozlegla. Cygnal robi teraz podobno bardzo szybkie '51 z wbudowanymi przetwornikami A/D i D/A, można je programować przez JTAG'a itd. Ja osobiście programowałem 80C51XA Philips'a - świetny mikrokintroler i już 16 bitowy . Przeniesione wszystkie rozkazy z 51 (prócz jednego rzadko używanego XCHD - wymiana półbajtów z akumulatora i pamięci) Czas wykonywania operacji na XA51 jest od 10 do 100 razy szybszy. Zamiast jednego akumulatora mamy też 8 w pełni równoprawnych rejestrów 16-bitowych, zdolnych wykonywać wszystkie operacje arytmetyczne i logiczne(8 i 16-bitowe) Środowiska do pracy z tym mikrokontrolerem robi wiele firm. Kilka z nich to: Ashling, Archimedes, Philips, Ceibo, Emulation Technology, Franklin Software, HI-TECH i wiele innych. Ja korzystałem z bardzo dobrego zintegrowanego środowiska XA Development Environment (nie pamiętam dokładnie jakiej firmy) - większość z tych środowisk powinna być dostępna na stronach producentów w wersjach demonstracyjnych, okrojonych, studenckich itp za darmo.
    AVR'y są jednak również ciekawe ... choć żałuję, że nie mam z nimi doświadczenia.
    Kolega ostatnio zachwyca się Mitsubischi, a muszę przyznać, że ma duże doświadczenie w oprogramowywaniu różnych mikrokontrolerów.
    Pomogłem? Kup mi kawę.
  • #15 112360
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    ;-)
    Do 51 polecam Franklina ProView lub Keila, adresów nie pamiętam, srawdzę i dopiszę przy okazji, do AVR polecam CodeVisionAVR, wersje free można znaleźć pod www.hpinfotech.ro

    tOMmy
  • #16 690460
    Wojtek_P
    Poziom 15  
    Posty: 139
    Pomógł: 7
    Ocena: 13
    Tdv napisał:
    ;-)
    Do 51 polecam Franklina ProView lub Keila, adresów nie pamiętam, srawdzę i dopiszę przy okazji, do AVR polecam CodeVisionAVR, wersje free można znaleźć pod www.hpinfotech.ro

    tOMmy

    Czy orientujesz się czy jest w Polsce przedstawiciel lub dystrybutor oferujący CodeVisionAVR? Ja nie znalazłem.
  • #18 690801
    h-doc
    Poziom 27  
    Posty: 1208
    Pomógł: 57
    Ocena: 21
    Duża przewaga rejestru adresującego w AVR, jest taka, że w 51 trzeba go za każdym razem "ręcznie" zmieniać. W AVR natomiast mamy do dyspozycji postinkrementację i predekremintację - bardzo fajna rzecz rodem z DSP.
    Mnożenie sprzętowe nie jest dostępne we wszystkich AVR, ale w tych większych jest. W dodatku można operować na typie FRACT.
    Do AVR jest fajne darmowe AVR Studio + GCC + JTAG ICE (w ostatniej EP). Z '51 jest trochę gorzej z oprogramowaniem - zazwyczaj trzeba korzystać z wersji ewaluacyjnych albo złamanych.
    TDV - dlaczego PICe tylko w reklamówkach są RISCami?
  • #19 690842
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    h-doc: bylo to juz gdzies kiedys walkowane, wiec moze nie bede pisal tego ponownie, tym bardziej ze tamt jest odgrzeny sprzed półtorej roku.

Podsumowanie tematu

✨ Dyskusja dotyczy wyboru mikrokontrolera do programowania w assemblerze między rodziną '51 a AVR. Wskazano, że '51 posiada 16-bitowy rejestr DPTR, ułatwiający obsługę dużej pamięci zewnętrznej, co jest trudniejsze w AVR, gdzie rejestry X, Y, Z są 8-bitowe parowane na 16 bitów i wymagają ładowania po połowie. AVR cechuje się wyższą szybkością wykonania instrukcji (np. 10 MIPS przy 10 MHz) oraz architekturą RISC, co przekłada się na większą wydajność mimo mniejszej listy rozkazów. Wątpliwości pojawiły się wokół dostępności sprzętowego mnożenia i dzielenia w AVR – niektóre modele go nie posiadają lub asembler zgłasza błędy przy tych instrukcjach, co wymusza implementację "na piechotę". Rodzina '51 jest szeroka, z nowoczesnymi odmianami jak 80C51XA Philips z 16-bitowymi rejestrami i szybszym wykonaniem instrukcji. Do programowania '51 polecane są środowiska Keil (darmowy symulator do 2kB), Franklin ProView, XA Development Environment oraz CodeVisionAVR dla AVR. AVR Studio to darmowe środowisko dla AVR. Dyskutowano także o dostępności emulatorów i narzędzi programistycznych, gdzie dla '51 jest ich więcej, ale AVR zyskuje na popularności. Cena i wyposażenie sprzętowe (np. przetworniki A/C, EEPROM, watchdog) również wpływają na wybór. Podsumowując, wybór zależy od zastosowania: '51 jest łatwiejszy do nauki assemblera i ma lepsze wsparcie narzędziowe, AVR oferuje większą wydajność i nowoczesne funkcje, ale wymaga bardziej zaawansowanego podejścia.
Wygenerowane przez model językowy.
REKLAMA