51

dziadek Ben napisał(a):

Rodzina DSxx firmy Dallas to wyjątek potwierdzający regułę. Nie ma się co oszukiwać, stara poczciwa 51' to przeżytek i jej czas powoli przemija. Nawet najbardziej wyrafinowane klony 51' nie usuną wszystkich jej wad. A tak na marginesie to skoro 51' jest taka wspaniała to czemu wszystkie jej ulepszenia coraz bardziej upodabniają ją do rodziny AVR? Moim skromnym zdaniem nie ma sensu męczyć się z 51' skoro można to samo zrobić prościej, szybciej i taniej.

Pozdro

Reply to
Luk
Loading thread data ...

Czy ja wiem.. jak patrze na katalog z programami na dysku to troszke tego porobilem, wszystko na wlasne potrzeby, najbardziej rozbudowane urzadzenie to centralka telefoniczna, obecnie strugam predkosciomierz z drogomierzem spiete z LCD od nokii 3310. Fakt ze nie jest to szczyt technologii cyfrowej ale do tej pory nie mialem problemu nie do przeskoczenia.

Reply to
AlexY

Użytkownik Adam Dybkowski napisał:

W porzadku, wiem ze sa rzeczy nie do wykonania na MCS51 czy tez niepraktyczne do pisania w asm, ale nalezy pamietac ze jest cala masa zastosowan w ktorych ta rodzina spisze sie idealnie i nie widze powodu do dyskryminacji proca "bo stary" zwlaszcza jesli jest w ciaglym uzyciu, jest doskonale opisany i oprogramowany

Reply to
AlexY
Reply to
Piotr Wyderski
Reply to
Piotr Wyderski

AlexY napisał(a):

Ależ nikt nie twierdzi, że na '51 nie da się czegoś zrobić. Chodzi tylko o to, że program realizujący te same operacje napisany w asemblerze AVRa będzie kilka razy szybciej działać, mniej zajmować pamięci i - co chyba najważniejsze - napiszesz go szybciej. To samo dotyczy programów w języku C. Kompilator IAR na '51 wygeneruje pogięty kod bo architektura '51 mało jest optymalna ze względu na potrzeby języka C. A ten sam kod źródłowy na AVRa zajmie dużo mniej rozkazów.

Przykładowy kawałek dla procesora AVR XORujący 2 bloki w RAMie (standardowy fragment kodu np. przy szyfrowaniu), każdy przykładowo rozmiaru 200 bajtów; przyjmijmy dodatkowo, że adresy bloków są podzielne przez 4.

wejście:

- X - wskazanie na pierwszy blok danych (r27:r26)

- Y - drugi blok danych (r29:r28)

- Z - miejsce na wynik (r31:r30)

- r16 - rozmiar bloku danych (200)

loop: ld r17, X+ ld r18, Y+ eor r17, r18 st Z+, r17 dec r16 brne loop

Pętla zajmuje 12 bajtów pamięci Flash a jej jeden obrót trwa 10 taktów zegara (ostatni przebieg 9 taktów).

Wersja dla procesora ARM:

wejście:

- r0 - wskazanie na pierwszy blok

- r1 - wskazanie na drugi blok

- r2 - wskazanie na wynik

- r3 - rozmiar bloku danych (200)

loop: ldmia! r0,{r4-r8} ldmia! r1,{r9-r13} eor r4,r4,r9 eor r5,r5,r10 eor r6,r6,r11 eor r7,r7,r12 eor r8,r8,r13 stmia! r2,{r4-r8} subs r3,r3,#20 bne loop

Powyższa wersja działa najszybciej operując w każdym obiegu na 20 oktetach danych (5 słów 32-bitowych z każdego bloku), ale zajmuje niestety aż 40 bajtów programu. Oczywiście da się tą pętlę wykonać też na dowolnym bloku danych 8-bitowych niekoniecznie wyrównanych w pamięci, ale będzie działać znacznie wolniej mimo iż zajmie mniej pamięci programu.

Napisz to samo dla '51 i zamieść na grupie - porównamy.

Reply to
Adam Dybkowski

AlexY napisał(a):

Ależ szczególnie jeżeli chodzi o małe proste projekty to programy w asemblerze AVRa pisze się po prostu przyjemniej niż w asemblerze '51. Jak trochę popiszesz to zrozumiesz, o czym mówię.

Reply to
Adam Dybkowski

Użytkownik Adam Dybkowski napisał:

Tak wiem... po prostu nie warto, komercyjnie zapewne macie racje.

Do moich dotychczasowych potrzeb najwiekszy potrzebny mi procek to byl

89C52 bo do centralki zabraklo mi bodajze pol kilo flasha i peryferii (zachcialo sie wyswietlania na HD44670 co sie na liniach dzieje)

Mam czas :) nie spieszy mi sie, nie robie tego zarobkowo (a jesli to narzucam termin: "jak bedzie to bedzie")

IMHO dla x51 jedynym slusznym jezykiem jest asembler

Zmuszac mnie do myslenia przy niedzieli? To nieludzkie ;) Ale spoko, znajde chwilke i napisze, nie wiem na kiedy, zaznaczam sobie watek. BTW narzucanie wykonania zadania danym prockiem jest niewlasciwym podejsciem, jak wspomnialem wczesniej do tej pory kazdy problem rozwiazywalem ale juz rozgladam sie za nastepca bo mam co najmniej 2 zadania przerastajace mozliwosci AT89C2051 czy tez AT89C52 ktorych to kilka sztuk jeszcze mam.

Reply to
AlexY

Użytkownik Piotr Wyderski napisał:

hm... Zaczalem nauke ASM od poczciwego C64 przy lekturze bajtkow, C&A i genialnej ksiazki K. Gajewskiego i B. Radziszewskiego "C64 od srodka", po porownaniu proca motoroli do intela bylem zniesmaczony 12-ma cyklami zegara na cykl maszynowy ale w tamtych czasach byl to jedyny dostepny jednoukladowiec za przyzwoite pieniadze, bylo duzo publikacji, tanie programatory, zyc nie umierac a obecnie nie mam checi uczyc sie kolejnego proca do czasu az x51 przestanie spelniac moje potrzeby

Jak wspomnialem _moje_ potrzeby nie sa az tak duze, gdybym musial zrobic to co piszesz pewnie uzylbym malej pamieci flash z zapisanymi wartosciami do CFG 3S200, generator i licznik.

Reply to
AlexY

Motorolka [? Mostek chyba] niby tego nie miala, ale tez zegar byl znacznie wolniejszy. W sumie efektywnie podobnie szybkie byly.

A tu sie zaczelo od sytuacji odwrotnej - kolega zna inny procek, a chce sie douczyc 51. Nie bardzo warto..

J.

Reply to
J.F.
Reply to
Piotr Wyderski

Adam Dybkowski napisał(a):

Oj nie prędko umrze, skoro niektórzy producenci elektroniki trzymają się tego procka jak rzep psiego ogona. Niektóre przykłady mogą szokować, zgadnijcie co to:

formatting link
ułatwienia dodam, że sidzi to w najnowszej centralce ppoz jednego z wiodących (niestety) na polskim rynku producentów. Sory za niską jakość fotki - telefon. pozdrawiam Robert

Reply to
robmac

Użytkownik J.F. napisał:

MC6800 (6500) z komodyny napedzana 1MHz, podobno do 2MHz podkrecalna, w efekcie wydajnosc podobna do intela tyle ze niektore rozkazy to i 7 cykli mialy, tak ze tu intel jest szybszy bo zaden rozkaz nie robi dluzej niz 4 cykle

z przesiadka z motoroli na intela nie mialem klopotu, jedynie na poczatku z peryferiami bo intel ma inna logike sygnalow sterujacych :)

hmm.. tu mysle ze zaleznie od potrzeb male wlasne projekty - tani 51 cos z perspektywa rozwoju - atmegi, atiny i inne na czasi do pracy - arm i dsp

Reply to
AlexY

Użytkownik Heliogabal napisał:

Mam jeszcze ze 3 (chyba jeszcze) sprawne plyty, az sprawdze nadruki bo dalbym se co-nieco obciac ze to mialo motki logo, to byly czasy internetu lupanego tak ze nie mialem zadnych pdfow i bardzo mozliwe ze sie myle caly czas posadzajac motorole o produkcje tych procow

Reply to
AlexY

Tu masz full story:

formatting link
na 6800 byl on wzorowany, ale dosc luzno.

J.

Reply to
J.F.

Piotr Wyderski napisał(a):

Poczytaj w dokumentacji twojej kostki SDRAM o trybie self refresh. Chyba większość jeżeli nie wszystkie SDRAMy muszą to mieć.

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.