pole bitového pole v C

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Leden 12 20:33:58 CET 2013


A jeste jsem kouknul, jak to prelozi - normalne ;-)

40a4:    80 91 c5 03     lds    r24, 0x03C5
     40a8:    81 60           ori    r24, 0x01    ; 1
     40aa:    80 93 c5 03     sts    0x03C5, r24

na 3c5 je promenna byt v delce 1 byte z map souboru:

  COMMON         0x008003c5        0x1 MainUnit.o
                 0x008003c5                byt


Dne 12.1.2013 20:26, Jaroslav Buchta napsal(a):
> Takhle mi to AVR C sezere: (jeste jsem musel doplnit zavorky)
>
> char byt;
>
> typedef union bytX
>
> {
>
>     char value;
>
>     unsigned bit0 : 1;
>
> }_byt;
>
> int main (void)
> {
>
>     (*((_byt*)&byt)).bit0 = 1;
>
>
> Dne 12.1.2013 20:07, Miroslav Draxal napsal(a):
>> Re: pole bitového pole v C
>>
>> "cíí brďo, to je složitý"
>>
>> *((_byt*)&byt).bit0 = 1 ;
>>
>> Pomožte mi to prosím rozpitvat?
>>
>> hodí chybu
>>
>> podprogramy.c:151 warning: illegal conversion between pointer types
>>
>> pointer to union S387 -> pointer to unsigned char
>>
>> podprogramy.c:207: error: struct/union required
>>
>> podprogramy.c:207: error: illegal conversion between types
>>
>> int -> union S453
>>
>> *From:*hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] 
>> *On Behalf Of *Jaroslav Buchta
>> *Sent:* Saturday, January 12, 2013 7:45 PM
>> *To:* HW-news
>> *Subject:* Re: pole bitového pole v C
>>
>> imho jedine pres ukazatel: *((_byt*)&byt).bit0 = 1 kde uz neni mozna 
>> zadna typova kontrola. (nezkousel jsem to, zavorkama si nejsem vubec 
>> jisty...)
>>
>> Dne 12.1.2013 19:38, Miroslav Draxal napsal(a):
>>
>>     Ještě přihodím do fora otázečku. Mějme
>>
>>     Char byt;
>>
>>     a
>>
>>     typedef union bytX
>>
>>     {
>>
>>     char value;
>>
>>     unsigned bit0 : 1;
>>
>>     }_byt;
>>
>>     Lze udělat
>>
>>     _bytX.value = byt;
>>
>>     Nelze přetypovat proměnou byt na _byt??? Ne hodnotu, ale přímo
>>     proměnnou. Překladač mi použije dvě proměnné, mohl by používat
>>     původní. Po přetypování proměnné asi takhle.
>>
>>     Byt.bit0 = 1;
>>
>>     Míra
>>
>>     *From:*hw-list-bounces na list.hw.cz
>>     <mailto:hw-list-bounces na list.hw.cz>
>>     [mailto:hw-list-bounces na list.hw.cz] *On Behalf Of *Miroslav Draxal
>>     *Sent:* Saturday, January 12, 2013 6:51 PM
>>     *To:* 'HW-news'
>>     *Subject:* RE: pole bitového pole v C
>>
>>     Když já pořádně neumím pic, a to mam jít do něčeho úplně
>>     neznámého? Nechte mi je. Pracuji s mrňavým 10f200, středním
>>     18f1320/30 a s velkým 18f4620. Nic víc mi ke štěstí nechybí. Ono
>>     jde spíš si osvojit pořádně to C, přijít na určité finty jak to
>>     napsat, vymyslet správné postupy atd. mě spíš přijde, že je to
>>     víc o soft než hw. Jak říkám, píču v C, ale sám sebe přistihnu,
>>     jak na to jdu ze strany ASM. Míra
>>
>>     *From:*hw-list-bounces na list.hw.cz
>>     <mailto:hw-list-bounces na list.hw.cz>
>>     [mailto:hw-list-bounces na list.hw.cz] *On Behalf Of *Jaroslav Buchta
>>     *Sent:* Saturday, January 12, 2013 6:41 PM
>>     *To:* HW-news
>>     *Subject:* Re: pole bitového pole v C
>>
>>     Ja stale nechapu, proc se nekdo drzi procesoru s tak mizernou
>>     vybavou. Chapu u velkych serii, ze jde o kazdou korunu ale na
>>     bastleni tam je snad jedno jestli tam vrazim PIC za 30 nebo ARM
>>     za 70 (pripadne konzervativne treba ATMEGA32 za 40)... Ladici
>>     nastroje jsou za par stovek, soft zadarmo. Kdyz se to programuje
>>     v C-cku, tak je to celkem stejne a tech par potrebnych periferi
>>     se osaha za chvili (s pouzitim vzorovych zdrojaku to neni potreba
>>     ani moc studovat pro standardni pouziti).
>>
>>     Dne 12.1.2013 18:36, Miroslav Draxal napsal(a):
>>
>>         Ano, a porodníma bolestma jsem vyplodil něco hodně podobného,
>>         jenom  jsem všude použil char, protože mam jenom 256 RAM. Na
>>         netu jsem kdysi zahlídnul něco, co používalo nějakou fintu.
>>         Ale za boha si nevzpomenu kde to bylo. Byli to dva řádky. Míra
>>
>>         *From:*hw-list-bounces na list.hw.cz
>>         <mailto:hw-list-bounces na list.hw.cz>
>>         [mailto:hw-list-bounces na list.hw.cz] *On Behalf Of *Jan Waclawek
>>         *Sent:* Saturday, January 12, 2013 3:45 PM
>>         *To:* HW-news
>>         *Subject:* Re: pole bitového pole v C
>>
>>         > je to vlastně pole char[3], chtěl bych napsat něco univerzálního, kde bych
>>         > zadal ukazatel na počátek pole, jaký bit nastavit např.14.
>>         >
>>         > Nějak mě nenapadá žádný elegantní způsob. Ale zase, někde
>>         jsem to někde
>>         > viděl v asm pro PIC. Míra
>>
>>         #include <stdint.h>
>>         uint8_t bits[3]
>>
>>         void SetBit(uint8_t * bitfield, uint8_t idx, _Bool value) {
>>         uint8_t mask;
>>           mask = 1 << (idx % 8);
>>           if (value) {
>>             bitfield[idx / 8] |= mask;
>>           } else {
>>             bitfield[idx / 8] &= (~mask) & 0xFF;
>>           }
>>         }
>>
>>         _Bool GetBit(uint8_t * bitfield, uint8_t idx) {
>>           return (_Bool)(bitfield[idx / 8] & (1 << (idx % 8))
>>         }
>>
>>         wek
>>         wek
>>         _______________________________________________
>>         HW-list mailing list  -  sponsored by www.HW.cz
>>         <http://www.HW.cz>
>>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>         http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>         __________ Informace od ESET NOD32 Antivirus, verze databaze
>>         7886 (20130112) __________
>>
>>         Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>         http://www.eset.cz
>>
>>
>>
>>         __________ Informace od ESET NOD32 Antivirus, verze databaze
>>         7886 (20130112) __________
>>
>>         Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>         http://www.eset.cz
>>
>>
>>         _______________________________________________
>>
>>         HW-list mailing list  -  sponsored bywww.HW.cz  <http://www.HW.cz>
>>
>>         Hw-list na list.hw.cz  <mailto:Hw-list na list.hw.cz>
>>
>>         http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>>     __________ Informace od ESET NOD32 Antivirus, verze databaze 7886
>>     (20130112) __________
>>
>>     Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>     http://www.eset.cz
>>
>>
>>
>>     __________ Informace od ESET NOD32 Antivirus, verze databaze 7886
>>     (20130112) __________
>>
>>     Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>     http://www.eset.cz
>>
>>
>>     __________ Informace od ESET NOD32 Antivirus, verze databaze 7886
>>     (20130112) __________
>>
>>     Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>     http://www.eset.cz
>>
>>
>>
>>     __________ Informace od ESET NOD32 Antivirus, verze databaze 7886
>>     (20130112) __________
>>
>>     Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>     http://www.eset.cz
>>
>>
>>     __________ Informace od ESET NOD32 Antivirus, verze databaze 7886
>>     (20130112) __________
>>
>>     Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>     http://www.eset.cz
>>
>>
>>
>>     __________ Informace od ESET NOD32 Antivirus, verze databaze 7886
>>     (20130112) __________
>>
>>     Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>     http://www.eset.cz
>>
>>
>>
>>     _______________________________________________
>>
>>     HW-list mailing list  -  sponsored bywww.HW.cz  <http://www.HW.cz>
>>
>>     Hw-list na list.hw.cz  <mailto:Hw-list na list.hw.cz>
>>
>>     http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 7886 
>> (20130112) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 7886 
>> (20130112) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored bywww.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130112/801a3afb/attachment.htm>


Další informace o konferenci Hw-list