-
1. Data: 2010-09-22 17:22:58
Temat: C na AVR jeszcze raz
Od: "Chomik" <c...@h...pl>
Najgorsze w przechodzeniu na C mam juz za soba. Sterowanie portami dziala,
procedury dla LCD dzialaja, teraz jeszcze obsluga przerwan i lecimi. Jednak
nie moge sie doszukac informacjijak zdeklarowac zmienna tak zeby znalazla
sie w okreslonej komorce pamieci. Z tego co do tej pory wyczytalem w C
zmienne funkcjonuja zupelnie inaczej niz do tej pory sie przyzwyczailem. W
podreczniku o C tego nie ma bo jest on ogolnie o jezyku a nie w
zastosowaniach na AVR. Jest wogole w taka mozliwosc?
-
2. Data: 2010-09-22 17:28:07
Temat: Re: C na AVR jeszcze raz
Od: Sebastian Biały <h...@p...onet.pl>
On 2010-09-22 19:22, Chomik wrote:
> lecimi. Jednak nie moge sie doszukac informacjijak zdeklarowac zmienna
> tak zeby znalazla sie w okreslonej komorce pamieci.
Po co?
> Jest wogole w taka mozliwosc?
Po co?
PS. Jest, ale prawie na pewno tego nie chcesz.
-
3. Data: 2010-09-22 18:14:21
Temat: Re: C na AVR jeszcze raz
Od: "Chomik" <c...@h...pl>
> > lecimi. Jednak nie moge sie doszukac informacjijak zdeklarowac zmienna
> > tak zeby znalazla sie w okreslonej komorce pamieci.
>
> Po co?
>
Mam 96 bitowy rejestr zapelniany szeregowo bit po bicie. Po zapelnieniu
kazde 8 bitow to wartosc poczatkowa dla 12 zmiennych ktore pozniej do innych
celow sa wykorzystane.
Tak mam teraz, odczyt kolejnego bitu i przesuniencie rejestru to kilka
linijek w ASM. Chodzi szybko poprawnie i nie trzeba zadnych dodatkowych
linijek i czasu zeby to przerabiac odczytywac itd.
No chyba ze sa szybsze i lepsze sposoby ale nie widze w tym moim jakichs
wad. Odczytywanie po 8 bitow i zapisywanie ich wartosci nie bedzie szybsze
ani lepsze.
Zreszta po kompilacji jest informacja gdzie siedzi jaka zmienna wiec
wielkiego problemu nie mam ale moze mi sie przydac info jak od poczatku
umiescic zmienna w okreslonym miejscu.
-
4. Data: 2010-09-22 19:32:32
Temat: Re: C na AVR jeszcze raz
Od: Sebastian Biały <h...@p...onet.pl>
On 2010-09-22 20:14, Chomik wrote:
> Mam 96 bitowy rejestr zapelniany szeregowo bit po bicie. Po zapelnieniu
> kazde 8 bitow to wartosc poczatkowa dla 12 zmiennych ktore pozniej do
> innych celow sa wykorzystane.
Potrzebujesz więc tablice:
unsigned char tablica[ 96 / 8 ];
Czy aby na pewno jednak to nie może być zapełniane w locie po 8 bitów?
Musisz mieć *KONIECZNIE* te 96 bitów i męczyć się z nimi wszystkimi?
> Tak mam teraz, odczyt kolejnego bitu i przesuniencie rejestru to kilka
> linijek w ASM. Chodzi szybko poprawnie i nie trzeba zadnych dodatkowych
> linijek i czasu zeby to przerabiac odczytywac itd.
"tablica" może być interpretowana jako adres pamięci tych 12 bajtów.
> No chyba ze sa szybsze i lepsze sposoby ale nie widze w tym moim jakichs
> wad. Odczytywanie po 8 bitow i zapisywanie ich wartosci nie bedzie
> szybsze ani lepsze.
Opisz po co Ci ten rejestr.
> Zreszta po kompilacji jest informacja gdzie siedzi jaka zmienna wiec
> wielkiego problemu nie mam ale moze mi sie przydac info jak od poczatku
> umiescic zmienna w okreslonym miejscu.
Nie mów kompilatorowi gdzie ma wsadzić zmienną. Zamiast tego zapytaj
kompilator gdzie ją umieścił. Nazwa tablicy jest odpowiedzią na to
pytanie. Jednak zanim zaczniesz stukac w asm zadam ponownie to pytanie:
do czego to jest potrzebne?
-
5. Data: 2010-09-22 19:57:20
Temat: Re: C na AVR jeszcze raz
Od: "Chomik" <c...@h...pl>
>
> Opisz po co Ci ten rejestr.
>
> > Zreszta po kompilacji jest informacja gdzie siedzi jaka zmienna wiec
> > wielkiego problemu nie mam ale moze mi sie przydac info jak od poczatku
> > umiescic zmienna w okreslonym miejscu.
>
> Nie mów kompilatorowi gdzie ma wsadzić zmienną. Zamiast tego zapytaj
> kompilator gdzie ją umieścił. Nazwa tablicy jest odpowiedzią na to
> pytanie. Jednak zanim zaczniesz stukac w asm zadam ponownie to pytanie: do
> czego to jest potrzebne?
No juz pisalem. Bit po bicie zapelnia sie odbierana informacja, po kazdym
bicie trzeba sprawdzic zawartosc a czasem wykorzystac te wartosci do innych
wyliczen.
W ASM cala ta procedura byla krociutka i bardzo szybka a szybkosc tez ma
znaczenie dlatego nie chce jej komplikowac i mimo pisania reszt w C (pozniej
sa inne rzeczy ktore znowuz sa upierdliwe do pisania w ASM)ta czesc zostawie
w ASM.
-
6. Data: 2010-09-22 20:13:22
Temat: Re: C na AVR jeszcze raz
Od: Sebastian Biały <h...@p...onet.pl>
On 2010-09-22 21:57, Chomik wrote:
> No juz pisalem. Bit po bicie zapelnia sie odbierana informacja, po
> kazdym bicie trzeba sprawdzic zawartosc a czasem wykorzystac te wartosci
> do innych wyliczen.
Chodziło mi o to czy na pewno musisz te bity wsuwać za kazdym razem
przez wszystkie 12 bajtów. Czy nie lepiej jest ustawiać od razu tam
gdzie trzeba.
> W ASM cala ta procedura byla krociutka i bardzo szybka a szybkosc tez ma
> znaczenie dlatego nie chce jej komplikowac i mimo pisania reszt w C
> (pozniej sa inne rzeczy ktore znowuz sa upierdliwe do pisania w ASM)ta
> czesc zostawie w ASM.
Przedwczesna optymalizacja ;) Po prostu napisz to w C i zobaczysz na ile
bedzie wolne.
-
7. Data: 2010-09-22 23:41:26
Temat: Re: C na AVR jeszcze raz
Od: g...@n...invalid (Adam Wysocki)
Chomik <c...@h...pl> wrote:
> sie w okreslonej komorce pamieci. Z tego co do tej pory wyczytalem w C
> zmienne funkcjonuja zupelnie inaczej niz do tej pory sie przyzwyczailem. W
> podreczniku o C tego nie ma bo jest on ogolnie o jezyku a nie w
> zastosowaniach na AVR. Jest wogole w taka mozliwosc?
Zainteresuj się wskaźnikami.
--
gof
-
8. Data: 2010-09-23 15:38:10
Temat: Re: C na AVR jeszcze raz
Od: "Chomik" <c...@h...pl>
>
> Chodziło mi o to czy na pewno musisz te bity wsuwać za kazdym razem przez
> wszystkie 12 bajtów. Czy nie lepiej jest ustawiać od razu tam gdzie
> trzeba.
Ano musze miec wszystkie na raz.
>
>> W ASM cala ta procedura byla krociutka i bardzo szybka a szybkosc tez ma
>
> Przedwczesna optymalizacja ;) Po prostu napisz to w C i zobaczysz na ile
> bedzie wolne.
Ta czesc jednak zostawie w ASM :)
-
9. Data: 2010-09-26 14:16:11
Temat: Re: C na AVR jeszcze raz
Od: "identifikator: 20040501" <N...@g...pl>
do niczego Cię nie zmuszam, ale może zechciałbyś napisac kolegom z grupy jak
łączysz C z assemblerem bo chyba nie przez inline (czy jakoś tak)? no i jak
korzystasz ze zmiennych C w kodzie asma?
-
10. Data: 2010-09-26 18:22:43
Temat: Re: C na AVR jeszcze raz
Od: "Chomik" <c...@h...pl>
Użytkownik "identifikator: 20040501" <N...@g...pl> napisał w
wiadomości grup dyskusyjnych:i7nkr7$42i$...@m...internetia.pl...
> do niczego Cię nie zmuszam, ale może zechciałbyś napisac kolegom z grupy
> jak łączysz C z assemblerem bo chyba nie przez inline (czy jakoś tak)? no
> i jak korzystasz ze zmiennych C w kodzie asma?
Nie sadze, ze tym co pisza w C trzeba tlumaczyc jak wstawiac wstawki ASM.
Poza tym opisane jest to w wielu ksiazkach jak i w internecie chociazby na
stronie GCC. Akurat wstawki w ASM nie sa problemem biorac pod uwage calosc
jezyka C.