Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 sty 2025, o 14:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 10 wrz 2013, o 09:10 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

Wydzielony offtop. Różowy J.

Panowie, użyty został asembler ponieważ w tym przypadku procek ma tyle zadań, że szybkość działania kodu jest krytyczna :P

A tak BTW, to jak to teraz jest z kompilatorami? Kiedyś kod napisany w C (i skompilowany) to było 70% wydajności ASM. A teraz? Pewnie więcej bo te kompilatory ciągle są ulepszane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 09:35 

Pomógł: 0

Skoro już tak offtopujemy, to pewnie wszystko zależy jak jest napisany program, bo nawet najlepszy kompilator się wyłoży (uwali po prostu kawał brzydkiego kodu) jak mu wrzucimy goto :lol:



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 11:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

kiclaw napisał(a):
A tak BTW, to jak to teraz jest z kompilatorami? Kiedyś kod napisany w C (i skompilowany) to było 70% wydajności ASM. A teraz? Pewnie więcej bo te kompilatory ciągle są ulepszane.

Z tego co pamiętam z książek Mirka, to obecnie kompilatory C dają bardzo wydajny i kompaktowy wsad, zbliżony rozmiarami i szybkością do asemblera. Także ta granica szybkości i rozmiaru się zaciera na korzyść C. ;)
No chyba, że się używa goto, floatów, _delay_ms(zmienna) czy innych krzaczków to i najlepszy kompilator niewiele da. :)

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 12:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Asemblera przy prockach zawsze warto liznąć - znakomicie uczy to działania samego procka "od bebechów". ;)

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 12:42 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

Ledes napisał(a):
No chyba, że się używa goto, floatów, _delay_ms(zmienna) czy innych krzaczków to i najlepszy kompilator niewiele da. :)


Ledes, co chcesz od floatów?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 13:25 

Pomógł: 0

kiclaw napisał(a):
Ledes napisał(a):
No chyba, że się używa goto, floatów, _delay_ms(zmienna) czy innych krzaczków to i najlepszy kompilator niewiele da. :)


Ledes, co chcesz od floatów?


Napisz prosty program pomiaru ADC, jeden używający floatów, jeden za pomocą innych technik, porównaj oba programy, wielkość, szybkość etc.
Float na 8bitowcach?, no chyba że robisz tylko pomiar i procek by się nudził, a ty chcesz go koniecznie czymś zająć ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 13:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Bo floaty na AVR to takie same zło, jak używanie goto ;)
Jak dodanie jednego floata zwiększa o kilkanaście % zajętość pamięci programu. ;)

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 22:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Ledes napisał(a):
kiclaw napisał(a):
Z tego co pamiętam z książek Mirka, to obecnie kompilatory C dają bardzo wydajny i kompaktowy wsad, zbliżony rozmiarami i szybkością do asemblera. Także ta granica szybkości i rozmiaru się zaciera na korzyść C. ;)


Kompilatory przecież generują kod assemblera a dokładniej kod maszynowy, i taki kod nie będzie działać inaczej jak napisany w assemblerze bo to w końcu assembler . (ale zakręciłem :D )

Czy warto stosować hmm assemblera ? to dobre pytanie. Powiem tak, jeśli rozumu nie masz zaśmieconego nawykami z języków C czy Pascal albo Basic to pisanie w assemblerze będzie ci szło tak samo szybko jakbyś pisał w C.
A programy napisane czysto w assemblerze i do tego jeszcze żeby programista wiedział co pisze to niema bata ;) musi być szybciej zwięźlej itd. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2013, o 23:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

xbary napisał(a):
Kompilatory przecież generują kod assemblera a dokładniej kod maszynowy, i taki kod nie będzie działać inaczej jak napisany w assemblerze bo to w końcu assembler . (ale zakręciłem :D )

Niestety ale się mylisz. Tzn. częściowo masz rację -> w C na końcu powstaje wsad procesora czyli zestaw mnemoników. Czyli jak po asemblerze. Ale szkopuł tkwi w pracy kompilatora. Otóż kompilator nie zawsze zamieni w najlepszy sposób daną instrukcję w C na zestaw instrukcji asemblera. Taka np. pusta pętla -> można to zrobić na 1000 sposobów. W asemblerze zrobisz to dwiema instrukcjami, a kompilator C wypluje Ci 3 instrukcje. Widzisz różnicę?


xbary napisał(a):
Czy warto stosować hmm assemblera ? to dobre pytanie. Powiem tak, jeśli rozumu nie masz zaśmieconego nawykami z języków C czy Pascal albo Basic to pisanie w assemblerze będzie ci szło tak samo szybko jakbyś pisał w C.

Znowu się nie zgodzę. Otóż język C, a w szczególności AVR-GCC ma wiele predefiniowanych makr, funkcji bibliotecznych, mechanizmów które w języku C zajmują jedną linijkę a w asm kilkanaście jak nie kilkadziesiąt. Taki np. pgm_read_word().

xbary napisał(a):
A programy napisane czysto w assemblerze i do tego jeszcze żeby programista wiedział co pisze to niema bata ;) musi być szybciej zwięźlej itd. :)

Tu masz rację. Ale jak napisałem poprzednio, już prawie nie ma różnicy w szybkości i objętości między kodem w ASM i AVR-GCC. A fakt jest taki, że pisanie czegoś większego niż mruganie kilkoma diodkami w asemblerze to niezła mordęga. A w C - sama przyjemność. :)

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 10:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

AVR został stworzony pod C, gorzej jest z 51. W 51 w asemblerze uzyskuje się dużo lepsze efekty niż pisząc program w C.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 11:44 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

Proton...ale dzisiaj używa '51 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 15:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

kiclaw napisał(a):
Proton...ale dzisiaj używa '51 :)

51 ma się bardzo dobrze, cały czas jest produkowana i stosowana. Sam używam cy7c68013a.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO