-
121. Data: 2009-03-09 16:50:38
Temat: Re: uC poczatek
Od: "Nimitz" <N...@o...eu>
Użytkownik "T.M.F.":
>> Czy ktoś może mi podpowiedzieć jak osiągnąć w Atmedze sprzętowy pomiar
>> impulsu na wejściu tak jak można to zrobic w 8051 ustawiając GATE=1 w
>> rejestrze TMOD - impuls podany na INT? (dla ułatwienia link z opisem
>> liczników: http://riad.usk.pk.edu.pl/~mlankosz/uc/uc_inst07.pdf
)
>
> Uniwersalnie - wykorzystac pin wyzwalany zboczem do generowania
> przerwania, w ktorym odczytujesz timer. Inna opcja - taktowac timer
> zewnetrznym przebiegiem zegarowym, ustawic go tak, zeby generowal
> przerwanie przy zadanej wartosci i w procedurze obslugi odczytywac czas.
> W zaleznosci od uzytego timera sa inne opcje.
> Mozna wykorzystac pin input capture pin do wyzwolenia timera, mozna go
> wyzwolic takze z komparatora.
Każda w podanych metod wymaga wykonania przynajmniej kilku instrukcji, więc
może się okazać, że krótki impuls może zostać albo zgubiony, albo zmierzony
z dużym błędem, a więc - 8051 nadal górą! ;-)
Dodam jeszcze, że w 8051 można (przez mały trick) wykonać program z
zewnętrznej pamięci RAM, co kiedyś miało bardzo duży walor edukacyjny.
Czasem także przydaję się dwupoziomowy priorytet przerwań. Asembler też jest
łatwiejszy niż w AVRach. A jeśli chodzi o C to zauważyłem, że Keil 8051
potrafi skompilować krótszy kod niż GCC AVR. Oczywiście AVR są fajne i mają
wiele zalet, ale jeśli chodzi o rdzeń to osobiście wolałbym architekturę
6502 ;-)
Admirał
-
122. Data: 2009-03-09 17:15:14
Temat: Re: uC poczatek
Od: RoMan Mandziejewicz <r...@p...pl>
Hello Sebastian,
Monday, March 9, 2009, 4:45:12 PM, you wrote:
>>> , ale narzuty historyczne ciągle widać. Jak mowię, zgodność z klonem
>>> CP/M (DOS) najwidoczniej przydatna nawet w Viście :/
>> Przesadzasz.
> W tym że DOS jest klonem CP/M czy w tym że w Viście?
Z NTG - sio na pl.comp.os.advocacy
--
Best regards,
RoMan mailto:r...@p...pl
Spam: http://www.squadack.na.allegro.pl/ :)
-
123. Data: 2009-03-09 17:35:29
Temat: Re: uC poczatek
Od: "T.M.F." <t...@n...mp.pl>
>>> Czy ktoś może mi podpowiedzieć jak osiągnąć w Atmedze sprzętowy
>>> pomiar impulsu na wejściu tak jak można to zrobic w 8051 ustawiając
>>> GATE=1 w rejestrze TMOD - impuls podany na INT? (dla ułatwienia link
>>> z opisem liczników:
>>> http://riad.usk.pk.edu.pl/~mlankosz/uc/uc_inst07.pdf
)
>>
>> Uniwersalnie - wykorzystac pin wyzwalany zboczem do generowania
>> przerwania, w ktorym odczytujesz timer. Inna opcja - taktowac timer
>> zewnetrznym przebiegiem zegarowym, ustawic go tak, zeby generowal
>> przerwanie przy zadanej wartosci i w procedurze obslugi odczytywac czas.
>> W zaleznosci od uzytego timera sa inne opcje.
>> Mozna wykorzystac pin input capture pin do wyzwolenia timera, mozna go
>> wyzwolic takze z komparatora.
>
> Każda w podanych metod wymaga wykonania przynajmniej kilku instrukcji,
Tylko te kilka instrukcji dla AVRa wykona sie w czasie krotszym niz
jedna instrukcja dla '51. Na wykonanie jednej instrukcji '51 wymaga co
najmniej 12 taktow zegara, AVR w tym czasie zrobi 12/24 instrukcje.
Inna sprawa, ze w podanych metodach jedyne co musisz zrobic to odczytac
zawartosc 8/16 bitowego rejestru, czyli dokladnie tyle samo co w '51, bo
przeciez jakos wynik musisz odczytac, prawda?
> więc może się okazać, że krótki impuls może zostać albo zgubiony, albo
> zmierzony z dużym błędem, a więc - 8051 nadal górą! ;-)
Zartujesz? AVR moge taktowac zegarem 20MHz, minimalny czas trawania
impulsu dla tego wariantu to 100ns, zadna '51 nie odczyta portu z taka
rozdzielczoscia. A XMega maja juz taktowanie 32MHz/32 MIPSy.
> Dodam jeszcze, że w 8051 można (przez mały trick) wykonać program z
> zewnętrznej pamięci RAM, co kiedyś miało bardzo duży walor edukacyjny.
A jaki ma to walor praktyczny? To moze bylo ciekawostka w czasach kiedy
nie bylo programowalnych FLASHy.
> Czasem także przydaję się dwupoziomowy priorytet przerwań. Asembler też
> jest łatwiejszy niż w AVRach.
Znowu sobie zartujesz. Porownujesz regularna liste rozkazow AVR z
potworkiem '51?
> A jeśli chodzi o C to zauważyłem, że Keil
> 8051 potrafi skompilować krótszy kod niż GCC AVR. Oczywiście AVR są
Nie jest to dziwne biorac pod uwage, ze gcc jest portowany z duzych
prockow i np. nie obsluguje modeli pamieci, co jest problemem przy
duzych AVRach, bo wymaga uzycia 32-wskaznikow (gcc nie supportuje
wskaznikow 24-bitowych).
Podobnie obsluga arhitektury harwardzkiej przez gcc to tylko proteza, bo
ten kompilator nigdy do takiej arhitektury nie byl projektowany.
Jak chcesz porownywac to porownuj podobny kompilator na '51 i AVR,
zdziwisz sie. Lista rozkazow AVR byla projektowana z mysla o kompilatorze c.
-
124. Data: 2009-03-09 17:42:12
Temat: Re: uC poczatek
Od: "Ghost" <g...@e...pl>
Użytkownik "Nimitz" <N...@o...eu> napisał w wiadomości
news:gp3htg$dgs$1@nemesis.news.neostrada.pl...
>
> Asembler też jest łatwiejszy niż w AVRach.
Mocne
-
125. Data: 2009-03-09 18:11:18
Temat: Re: uC poczatek
Od: "entroper" <e...@C...spamerom.poczta.onet.pl>
Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
news:gp0g1h$1ih$1@achot.icm.edu.pl...
> W jednym z
> programów na '51 widziałem takie coś:
>
> // do not remove this line!
> int foo = 0;
>
> Usunąłem i oczywiście kompilator wyprodukował niedziałajacy kod.
> Komercyjny kompilator. Nowej wersji nie ma po co kupować.
Jak radzisz sobie z błędami w prockach ? Tak samo ? Może to wyjaśnia,
dlaczego niektórzy trzymają się 51 :)
e.
-
126. Data: 2009-03-09 18:13:30
Temat: Re: uC poczatek
Od: "Nimitz" <N...@o...eu>
Użytkownik "T.M.F." :
> Zartujesz? AVR moge taktowac zegarem 20MHz, minimalny czas trawania
> impulsu dla tego wariantu to 100ns, zadna '51 nie odczyta portu z taka
> rozdzielczoscia. A XMega maja juz taktowanie 32MHz/32 MIPSy.
Wszyscy wiemy, że zwykły 8051 dzieli zegar przez 12, więc jakie to ma
znaczenie dla programisty? Porównuj 8051 12MHz z AVR 1MHz. Owszem, w
konsekwencji możemy uzyskać znacznie szybszy AVR, ale do rzetelnego
porównania muszą być zachowane podobne warunki.
>> Dodam jeszcze, że w 8051 można (przez mały trick) wykonać program z
>> zewnętrznej pamięci RAM, co kiedyś miało bardzo duży walor edukacyjny.
>
> A jaki ma to walor praktyczny? To moze bylo ciekawostka w czasach kiedy
> nie bylo programowalnych FLASHy.
Nawet dzisiaj można sobie wyobrazić jakieś zastosowania - program może sam
siebie modyfikować.
>> Czasem także przydaję się dwupoziomowy priorytet przerwań. Asembler też
>> jest łatwiejszy niż w AVRach.
>
> Znowu sobie zartujesz. Porownujesz regularna liste rozkazow AVR z
> potworkiem '51?
Mam uraz do stałych w AVR. A o priorytecie przerwań niczego nie napiszesz?
;-)
Nie zapominajmy, że 8051 to konstrukcja lat 70, ale ciągle trzyma się
świetnie. AVR to jeden producent, dzisiaj jest, jutro może nie być.
Admirał.
-
127. Data: 2009-03-09 18:35:41
Temat: Re: uC poczatek
Od: "T.M.F." <t...@n...mp.pl>
>> Zartujesz? AVR moge taktowac zegarem 20MHz, minimalny czas trawania
>> impulsu dla tego wariantu to 100ns, zadna '51 nie odczyta portu z taka
>> rozdzielczoscia. A XMega maja juz taktowanie 32MHz/32 MIPSy.
>
> Wszyscy wiemy, że zwykły 8051 dzieli zegar przez 12, więc jakie to ma
> znaczenie dla programisty? Porównuj 8051 12MHz z AVR 1MHz. Owszem, w
> konsekwencji możemy uzyskać znacznie szybszy AVR, ale do rzetelnego
> porównania muszą być zachowane podobne warunki.
To jest rzetelne porownanie. Masz jakas '51 z ktorej wycisniesz 20-30
MIPSow? Co procesor robi wewnetrznie nic mnie nie interesuje, moga tam
mawet byc krasnoludki, mnie interesuje (w tym wypadku) mozliwy do
uzyskania czas odpowiedzi. Napisales oczywista bzdure, ze AVR moze
zgubic impuls, ktory '51 zmierzy.
Nie znam za dobrze '51, ale patrzac na przyklad timerow z linka, ktory
podales to w porownaniu z timerami w AVR sa one wrecz prymitywne.
>>> Dodam jeszcze, że w 8051 można (przez mały trick) wykonać program z
>>> zewnętrznej pamięci RAM, co kiedyś miało bardzo duży walor edukacyjny.
>>
>> A jaki ma to walor praktyczny? To moze bylo ciekawostka w czasach
>> kiedy nie bylo programowalnych FLASHy.
>
> Nawet dzisiaj można sobie wyobrazić jakieś zastosowania - program może
> sam siebie modyfikować.
Tyle, ze jest to malo zgodne z dobra praktyka programowania i bardzo
trudne do zaimplementowania w jezyku wyzszego poziomu. Mozna to
potraktowac jako ciekawostke, bez znaczenia. Chyba, ze znasz jakis
przyklad gdzie taki feature jest niezbedny/ulatwia zycie. Poprosze o
przyklad.
>>> Czasem także przydaję się dwupoziomowy priorytet przerwań. Asembler
>>> też jest łatwiejszy niż w AVRach.
>>
>> Znowu sobie zartujesz. Porownujesz regularna liste rozkazow AVR z
>> potworkiem '51?
>
> Mam uraz do stałych w AVR. A o priorytecie przerwań niczego nie
> napiszesz? ;-)
A podasz jakis przyklad w ktorym priorytety przerwan sa niezbedne?
Zawsze moge w pierwszej instrukcji odblokowac przerwania, co przy
predkosci AVRa spowoduje, ze bede gotowy na jego przyjecie zanim uklad
przerwan w '51 zdecyduje co zrobic z pierwszym.
> Nie zapominajmy, że 8051 to konstrukcja lat 70, ale ciągle trzyma się
> świetnie. AVR to jeden producent, dzisiaj jest, jutro może nie być.
Podobnie jak PIC i kilka innych niszowych procesorow.
Nawet jesli Atmel by padl to przeciez ich patenty/technologia nie
znikna. Jest rynek to ktos bedzie to kontynuowal.
-
128. Data: 2009-03-09 18:43:58
Temat: Re: uC poczatek
Od: "zbyszek" <z...@o...eu>
> Wszyscy wiemy, że zwykły 8051 dzieli zegar przez 12, więc jakie to ma
> znaczenie dla programisty? Porównuj 8051 12MHz z AVR 1MHz. Owszem, w
> konsekwencji możemy uzyskać znacznie szybszy AVR, ale do rzetelnego
> porównania muszą być zachowane podobne warunki.
Swoją drogą są 51 które dzielą zegar na 3.
Takie porównania nie mają najmniejszego sensu!!!. Co za różnica jaki kwarc
się podczepi, nie ma pomiędzy nimi w zasadzie różnicy - kwarce kosztują tyle
samo i
tyle samo miejsca zajmują. Podczepiasz taki jaki potrzebujesz.
To co można porównać to maksymalną moc obliczeniową przy max zegarze,
albo np który ma mniejszy pobór prądy przy realizacji tego samego zadania,
albo mniej kosztują dla realizacji tego samego zadania, a i tu też nie ma
tylko
jednych 51 bo jest ich cała masa w zależności od zadania wyjdzie co innego.
Ja kiedyś używałem taką 51 co miała w środku także kawałek logiki
programowalnej - jak chcecie to z AVRem porównać albo inną 51 ? - tam można
było
sobie trochę obwodów I/O dorobić według potrzeb.
Co za różnica co za procek stosujecie - układ ma działać!
>>> Dodam jeszcze, że w 8051 można (przez mały trick) wykonać program z
>>> zewnętrznej pamięci RAM, co kiedyś miało bardzo duży walor edukacyjny.
>>
> Nawet dzisiaj można sobie wyobrazić jakieś zastosowania - program może sam
> siebie modyfikować.
Całkowicie kierunek bez sensu - tak się nie robi, co innego dynamicznie
ładowane
kawałki a co innego modyfikowanie kodu.
> Nie zapominajmy, że 8051 to konstrukcja lat 70, ale ciągle trzyma się
> świetnie. AVR to jeden producent, dzisiaj jest, jutro może nie być.
Oba to już historia ale stosuje się je bo działają a to najważniejsze.
zbyszek
-
129. Data: 2009-03-09 19:12:09
Temat: Re: uC poczatek
Od: Sebastian Biały <h...@p...onet.pl>
entroper wrote:
>>Usunąłem i oczywiście kompilator wyprodukował niedziałajacy kod.
>>Komercyjny kompilator. Nowej wersji nie ma po co kupować.
> Jak radzisz sobie z błędami w prockach ? Tak samo ? Może to wyjaśnia,
> dlaczego niektórzy trzymają się 51 :)
Biorę procek z poprawionym hardware. W '51 nie ma się co popsuć bo ma
dośc prymitywne bebechy i wszyscy klepia go z grubsza na jedno kopyto.
Koszt wymiany AVR->ARM wynosi u mnie czas przepisania prostych driverów
sprzetowych bo nie umoczyłem d... używając niszowego i jedynego w swoim
rodzaju kompilatora jak to jest w przypadku '51 oblepiając go
workaroundami na bugi w kompilacji.
Mam pewien kod kompilujący się do AVR, ARM i PC (Linux + Windows). Tylko
tak mogę go testować. Jestem przekonany że dodanie <wsadź tu arch
supportowany przez gcc> kosztowalo by mnie popołudnie roboty - musze
napisac tylko drivery do timerów, spi i portów.
-
130. Data: 2009-03-09 19:15:58
Temat: Re: uC poczatek
Od: "T.M.F." <t...@n...mp.pl>
zbyszek pisze:
>> Wszyscy wiemy, że zwykły 8051 dzieli zegar przez 12, więc jakie to ma
>> znaczenie dla programisty? Porównuj 8051 12MHz z AVR 1MHz. Owszem, w
>> konsekwencji możemy uzyskać znacznie szybszy AVR, ale do rzetelnego
>> porównania muszą być zachowane podobne warunki.
>
> Swoją drogą są 51 które dzielą zegar na 3.
>
> Takie porównania nie mają najmniejszego sensu!!!. Co za różnica jaki kwarc
> się podczepi, nie ma pomiędzy nimi w zasadzie różnicy - kwarce kosztują tyle
> samo i
> tyle samo miejsca zajmują. Podczepiasz taki jaki potrzebujesz.
Owszem. Problem powstaje tylko jesli juz nie mozna podczepic wiekszego
kwarcu, a mocy ciagle brakuje. No i obwod na 40MHz to nie to samo co
obwod na 10MHz. Znasz jakas '51, ktora ma 20-30MIPSow? Jak jest
taktowana 90-360MHz?
> To co można porównać to maksymalną moc obliczeniową przy max zegarze,
> albo np który ma mniejszy pobór prądy przy realizacji tego samego zadania,
> albo mniej kosztują dla realizacji tego samego zadania, a i tu też nie ma
> tylko
> jednych 51 bo jest ich cała masa w zależności od zadania wyjdzie co innego.
Podobnie jak w przypadku AVR.
> Ja kiedyś używałem taką 51 co miała w środku także kawałek logiki
> programowalnej - jak chcecie to z AVRem porównać albo inną 51 ? - tam można
> było
> sobie trochę obwodów I/O dorobić według potrzeb.
Sa AVRy z FPGA, nazywa sie to FPSLIC.
> Co za różnica co za procek stosujecie - układ ma działać!
Dokladnie. A zwazywszy na ilosc i jakosc narzedzi szybciej zadziala na
AVR niz na '51.