system dwojkowy w avr-gcc
Masz problem? Zapytaj na forum elektroda.pl
From: "tekio" <tekio_at_nospam_klub.chip.pl>
Subject: system dwojkowy w avr-gcc
Date: Thu, 6 May 2004 12:48:39 +0200
Witam
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Thu, 6 May 2004 13:15:34 +0200
Thu, 6 May 2004 12:48:39 +0200, na pl.misc.elektronika, tekio napisał(a):
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
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.
--
Pozdrowienia
Jurek Szczesiul
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai
From: Marcin Stanisz <mstanisz_at_nospam_poczta.bzdury.onet.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Thu, 06 May 2004 13:15:55 +0200
Dnia czw 6. maja 2004 12:48 tekio napisał(a):
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
Nie. Chyba, że sobie zdefiniujesz makro. Na liście avr-gcc podawano przykład
takiego makra - poszukaj w archiwum tej listy (www.avr1.org).
Pozdrawiam
--
Marcin Stanisz
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Thu, 06 May 2004 14:59:45 +0200
On Thu, 6 May 2004 12:48:39 +0200, tekio wrote:
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
C o ile pamietam nie przewiduje.
Za to mozesz hex [0xD5] oraz osemkowo [0325]
J.
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.onet.pl!not-for-mai
From: "Bielsky" <bielsky_at_nospam_poczta.onet.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Thu, 6 May 2004 15:05:44 +0200
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
Natchnęło mnie, napisałem coś takiego:
http://bielsky.republika.pl/binarny.h
Może się przydać.
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Wojtek" <pirat320_at_nospam_wytnij_to.interia.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Thu, 6 May 2004 16:52:40 +0200
Użytkownik "Bielsky" <bielsky_at_nospam_poczta.onet.pl> napisał w wiadomości news:c7dcuf$mml$1_at_nospam_news.onet.pl...
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
Natchnęło mnie, napisałem coś takiego:
http://bielsky.republika.pl/binarny.h
Może się przydać.
Dobre. Mógłbyś też zrobić wersję dla long'ów (2^32 bitów)?
Nie mogę się doczekać ;)
Pozdrawiam
Wojtek
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.onet.pl!not-for-mai
From: "Bielsky" <bielsky_at_nospam_poczta.onet.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Thu, 6 May 2004 17:34:55 +0200
Dobre. Mógłbyś też zrobić wersję dla long'ów (2^32 bitów)?
Machnę na jutro :))
Masz wolne miejsce na dysku? :)))
2^32 czyli 4294967296 linii
razy
(
#define b 9 znaków
liczba 32 znaki
<spacja>
ok. dziesięć znaków liczby
cr + lf 2 znaki
)
jeśli się nie mylę 216 GB (przy definicji 1G jako 1024^3)
=======
From: "tekio" <tekio_at_nospam_klub.chip.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Thu, 6 May 2004 19:48:56 +0200
THX. Swietny pomysl.
Użytkownik "Bielsky" <bielsky_at_nospam_poczta.onet.pl> napisał w wiadomości
news:c7dcuf$mml$1_at_nospam_news.onet.pl...
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
Natchnęło mnie, napisałem coś takiego:
http://bielsky.republika.pl/binarny.h
Może się przydać.
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.dialog.net.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderski_at_nospam_wp.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Sat, 8 May 2004 01:12:32 +0200
tekio wrote:
Czy w avr-gcc mozna zapisywac liczby w systemie dwojkowym (cos w stylu
11010101b)?
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
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.astercity.net!news.aster.pl!not-for-mai
From: Adam Dybkowski <adybkows_at_nospam_amwaw.edu.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Sat, 08 May 2004 03:20:57 +0200
Piotr Wyderski wrote:
Bezposrednio nie, ale kiedys wymyslilismy takie makro:
#define bitval(n,s)
[...]
#define bin(x) binaux(#x)
ktorego uzywa sie naturalnie:
int i = bin(100010010);
I wynikowo wychodza z tego zoptymalizowane dwie instrukcje LDI (dla
liczby 16-bitowej)? No to brawa dla optymalizera - oryginalny zapis
makra jest cokolwiek zamieszany.
--
Adam Dybkowski
adybkows_at_nospam_amwaw.edu.pl
http://www.amwaw.edu.pl/~adybkows/
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.gazeta.pl!news.dialog.net.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderski_at_nospam_wp.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Sat, 8 May 2004 16:52:13 +0200
Adam Dybkowski wrote:
I wynikowo wychodza z tego zoptymalizowane dwie instrukcje LDI (dla
liczby 16-bitowej)?
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.
No to brawa dla optymalizera
Nie przesadzajmy z tymi brawami, to sie opiera na
optymalizacji zwanej skladaniem stalych, ktora jest
chyba pierwsza wymyslona technika optymalizacji. :-)
- oryginalny zapis makra jest cokolwiek zamieszany.
Ale to nie czlowiek ma czytac, tylko maszyna. :-)
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Sat, 8 May 2004 09:02:38 +0200
Sat, 8 May 2004 01:12:32 +0200, na pl.misc.elektronika, Piotr Wyderski
napisał(a):
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
Witam.
Czy można to zamieścić na stronce z poradami avr ( z podaniem autora
oczywiście ) ?
--
Pozdrowienia
Jurek Szczesiul
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.gazeta.pl!news.dialog.net.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderski_at_nospam_wp.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Sat, 8 May 2004 17:02:03 +0200
Jurek Szczesiul wrote:
Czy można to zamieścić na stronce z poradami avr ( z podaniem autora
oczywiście ) ?
Prosze bardzo. Tylko przed opublikowaniem prosze sprawdzic
czy to dziala z AVR GCC (to zostalo pierwotnie opracowane
dla "prawdziwego" GCC). Na innych kompilatorach moga
wyniknac problemy, jesli skladanie stalych nie jest
zaimplementowane wystarczajaco dobrze. W takim
przypadku mozna uzyc tego (kod dla Watcoma, dla
GCC trzeba nieco zmodyfikowac postfiks "ui64"):
// Binary system support macros
#define __BIT_VALUE(v,n) (((v >> (0x04ui64 * n##ui64)) & 0x01) << n)
#define __BINARY_VALUE(v) __BIT_VALUE(v,0x00) | __BIT_VALUE(v,0x01) |
\
__BIT_VALUE(v,0x02) | __BIT_VALUE(v,0x03) |
\
__BIT_VALUE(v,0x04) | __BIT_VALUE(v,0x05) |
\
__BIT_VALUE(v,0x06) | __BIT_VALUE(v,0x07) |
\
__BIT_VALUE(v,0x08) | __BIT_VALUE(v,0x09) |
\
__BIT_VALUE(v,0x0a) | __BIT_VALUE(v,0x0b) |
\
__BIT_VALUE(v,0x0c) | __BIT_VALUE(v,0x0d) |
\
__BIT_VALUE(v,0x0e) | __BIT_VALUE(v,0x0f)
#define BINARY_VALUE(v) (__BINARY_VALUE((0x##v##ui64)))
ale jest to ograniczone do liczb binarnych o co najwyzej
16 cyfrach. Inne przydatne makra:
// Structure member offset
#define OFFSET(Structure,Member) ((UINT)(&((Structure *) 0)->Member))
// Array length
#define LENGTH(Array) (sizeof(Array)/sizeof(Array[0]))
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: system dwojkowy w avr-gcc
Date: Mon, 10 May 2004 16:34:24 +0200
Sat, 8 May 2004 17:02:03 +0200, na pl.misc.elektronika, Piotr Wyderski
napisał(a):
Jurek Szczesiul wrote:
Czy można to zamieścić na stronce z poradami avr ( z podaniem autora
oczywiście ) ?
Prosze bardzo. Tylko przed opublikowaniem prosze sprawdzic
czy to dziala z AVR GCC
THX - niestety rzeczywiście z avr-gcc nie działa, więc nie
ma jak wykorzystać.
--
Pozdrowienia
Jurek Szczesiul
========
Path: news-archive.icm.edu.pl!news.rmf.pl!not-for-mai