Witam
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?Witam
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?Thu, 6 May 2004 12:48:39 +0200, na pl.misc.elektronika, tekio napisał(a):
W oficjalnej wersji nie ( poza standardem C ). W sieci mozna odszukac patcha ( by Joerg Wunsch ) , ktory to umozliwia - ale trzeba samodzielnie przekompilowac gcc-core. Nie probowalem tego patcha.
Dnia czw 6. maja 2004 12:48 tekio napisał(a):
Nie. Chyba, że sobie zdefiniujesz makro. Na liście avr-gcc podawano przykład takiego makra - poszukaj w archiwum tej listy
Pozdrawiam
C o ile pamietam nie przewiduje. Za to mozesz hex [0xD5] oraz osemkowo [0325]
J.
Bezposrednio nie, ale kiedys wymyslilismy takie makro:
#define bitval(n,s) (((n>=sizeof(s)-1)?0:\ (long)(s[sizeof(s)-2-n]-'0'))<<n)
#define binaux(s) (bitval(0,s)|bitval(1,s)|bitval(2,s)|bitval(3,s)|\ bitval(4,s)|bitval(5,s)|bitval(6,s)|bitval(7,s)|\ bitval(8,s)|bitval(9,s)|bitval(10,s)|bitval(11,s)|\ bitval(12,s)|bitval(13,s)|bitval(14,s)|bitval(15,s)|\ bitval(16,s)|bitval(17,s)|bitval(18,s)|bitval(19,s)|\ bitval(20,s)|bitval(21,s)|bitval(22,s)|bitval(23,s)|\ bitval(24,s)|bitval(25,s)|bitval(26,s)|bitval(27,s)|\ bitval(28,s)|bitval(29,s)|bitval(30,s)|bitval(31,s))
#define bin(x) binaux(#x)
ktorego uzywa sie naturalnie:
int i = bin(100010010);
Pozdrawiam Piotr Wyderski
[...]
I wynikowo wychodza z tego zoptymalizowane dwie instrukcje LDI (dla liczby 16-bitowej)? No to brawa dla optymalizera - oryginalny zapis makra jest cokolwiek zamieszany.
Sat, 8 May 2004 01:12:32 +0200, na pl.misc.elektronika, Piotr Wyderski napisał(a):
Witam. Czy można to zamieścić na stronce z poradami avr ( z podaniem autora oczywiście ) ?
Wychodzi z tego int, a co z tym zrobi generator kodu wynikowego, to juz zalezy od konkretnego procesora. W szczegolnosci moga wyjsc z tego 2 instrukcje LDI, jesli akurat taki schemat translacji jest podany.
Nie przesadzajmy z tymi brawami, to sie opiera na optymalizacji zwanej skladaniem stalych, ktora jest chyba pierwsza wymyslona technika optymalizacji. :-)
Ale to nie czlowiek ma czytac, tylko maszyna. :-)
Pozdrawiam Piotr Wyderski
Sat, 8 May 2004 17:02:03 +0200, na pl.misc.elektronika, Piotr Wyderski napisał(a):
THX - niestety rzeczywiście z avr-gcc nie działa, więc nie ma jak wykorzystać.
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.