Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Zmienne boolean w C

Michal Waskiewicz
-
-
Posty: 5
Rejestracja: 10 paź 2003, o 22:03
Lokalizacja: Białystok
Kontaktowanie:

Zmienne boolean w C

Postautor: Michal Waskiewicz » 10 paź 2003, o 22:08

Czy można zadeklarować taką zmienną w AVR GCC. Szukałem w różnych źródłach, ale nie znalazłem. Chodzi mi oczywiście o taką zmienną, któa w Bascomie nazywa się Bit. W ogóle nie mogę znaleźć czegoś takiego w C, ani w C++.

Jurek Szczesiul
-
-
Posty: 175
Rejestracja: 10 paź 2003, o 20:44
Lokalizacja: Białystok
Kontaktowanie:

Re: Zmienne boolean w C

Postautor: Jurek Szczesiul » 11 paź 2003, o 08:49

Czy można zadeklarować taką zmienną w AVR GCC. Szukałem w różnych źródłach, ale nie znalazłem. Chodzi mi oczywiście o taką zmienną, któa w Bascomie nazywa się Bit. W ogóle nie mogę znaleźć czegoś takiego w C, ani w C++.
Takiej zmiennej nie ma w standardzie C i gcc jej nie obsługuje ( zresztą avr nie ma obszaru danych bitowych jak 51 ). Dla użycia flag można wygodnie stosować zmienne bool ( obejrzyj header stdbool.h ), które jednak zabieraja po całym bajcie na flagę ( chociaż to IMHO żaden problem w Atmegach ). Można też użyć standardowych dla C pól bitowych. Generowany kod jest bardzo zgrabny, jednak takich flag nie obejrzymy w AvrStudio - format coff nie zapisuje ich.

Jurek S.

Michal Waskiewicz
-
-
Posty: 5
Rejestracja: 10 paź 2003, o 22:03
Lokalizacja: Białystok
Kontaktowanie:

Postautor: Michal Waskiewicz » 12 paź 2003, o 12:21

Czyli Tak jak myślałem :) Szukałem w wielu miejscach informacji o takich zmiennych w C, ale nie znalazłem. Wtedy zacząłem się obawiać, że C nie posiada takich zmiennych.
Problem jest następujący: muszę zapisać pewien 64 bitowy numer. Ale numer ten muszę zapisywać stopniowo, po jednym bicie. Myślałem, ze najlepiej będzie zrobić to za pomocą tablicy zmiennych boolean, ale takich zmiennych nie ma :( Co w takiej sytuacji zrobić? BTW: Bascom, chyba też nie ma tablicy zmiennych typu Bit?

Jurek Szczesiul
-
-
Posty: 175
Rejestracja: 10 paź 2003, o 20:44
Lokalizacja: Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 12 paź 2003, o 14:06

Czyli Tak jak myślałem :) Szukałem w wielu miejscach informacji o takich zmiennych w C, ale nie znalazłem. Wtedy zacząłem się obawiać, że C nie posiada takich zmiennych.
Problem jest następujący: muszę zapisać pewien 64 bitowy numer. Ale numer ten muszę zapisywać stopniowo, po jednym bicie. Myślałem, ze najlepiej będzie zrobić to za pomocą tablicy zmiennych boolean, ale takich zmiennych nie ma :( Co w takiej sytuacji zrobić? BTW: Bascom, chyba też nie ma tablicy zmiennych typu Bit?
No to np.
typedef unsigned long long ulolo; // mniej pisania
ulolo Flagi;

i potem

Flagi |= ((ulolo)1 << numer_bitu ); // ustawienie bitu 0-63
Flagi &= ~((ulolo)1 << numer_bitu); // zgaszenie bitu

albo zrobić pola bitowe, ale to będzie chyba mniej wygodne przy 64 pozycjach.

BTW - typu boolean nie ma, ale jest bool - trzeba dołączyć stdbool.h, ale tracisz 64 bajty zamiast 8.

Pozdrowienia
Jurek S.

Michal Waskiewicz
-
-
Posty: 5
Rejestracja: 10 paź 2003, o 22:03
Lokalizacja: Białystok
Kontaktowanie:

Postautor: Michal Waskiewicz » 26 paź 2003, o 20:28

Dziękuję za odpowiedź i bardzo przepraszam za tak późną odpowiedź z mojej strony. Widzę, że wiele jeszcze muszę uczyć się C.
BTW - typu boolean nie ma, ale jest bool - trzeba dołączyć stdbool.h, ale tracisz 64 bajty zamiast 8.
No właśnie, a ja nie mogę niestety pozwolić sobie na taką stratę w mikroprocesorze.

Mam jeszcze dwa pytania:
1. Gdzie można znaleźć przykładowe programy napisane w AVR GCC z dobrym wytłumaczeniem (znalazłem następującą stronę: http://www.mysunrise.ch/users/pfleury/avr-software.html, ale chciałbym coś jeszcze).
2. Gdzie mogę znaleźć dobrze wytłumaczoną procedurę odbioru sygnału RC5 napisaną w AVR GCC?

Jurek Szczesiul
-
-
Posty: 175
Rejestracja: 10 paź 2003, o 20:44
Lokalizacja: Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 28 paź 2003, o 07:58

Cześć
Przede wszystkim obejrzyj dokładnie zasoby podstawowej witryny AVR czyli www.avrfreaks.net - i zarejestruj się tam ( to jest rzecz jasna free ) - dostaniesz dostęp do 'Academy' z kodami , projektami itd.

Pozdrowienia Jurek S.

Michal Waskiewicz
-
-
Posty: 5
Rejestracja: 10 paź 2003, o 22:03
Lokalizacja: Białystok
Kontaktowanie:

Postautor: Michal Waskiewicz » 29 paź 2003, o 17:59

Przede wszystkim obejrzyj dokładnie zasoby podstawowej witryny AVR czyli www.avrfreaks.net - i zarejestruj się tam ( to jest rzecz jasna free ) - dostaniesz dostęp do 'Academy' z kodami , projektami itd.
Oczywiście zarejestrowałem się już jakiś czas temu. Zgadzam się, że jest tam bardzo sporo materiałów interesujących, ale jakoś nie znalazłem tam dekodowania RC5. Owszem jest procedura odbioru RC5 ale napisana w Assemblerze.
Może źle szukam? Bardzo bym prosił wówczas o naprowadzenie mnie na odpowiednie kody, a może gdzieś indziej znajdę taką procedurę?[/quote]

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 122 gości