1. Си / Говнокод #2931

    +92.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    void Read_Ri( int hARINC,unsigned short int *Data ,int *i16,int *i15,int *i14,
    	int *i13,int *i12,int *i11,int *i10,int *i9,int *i8,int *i7,int *i6,int *i5,int *i4,int *i3,int *i2,int *i1)
    {
    		ioctl(hARINC,IOCTL_GET_RI,Data);
       		*i16=Data[0x1104]>>15&1; *i15=Data[0x1104]>>14&1; *i14=Data[0x1104]>>13&1;
    		*i13=Data[0x1104]>>12&1; *i12=Data[0x1104]>>11&1; *i11=Data[0x1104]>>10&1;
    		*i10=Data[0x1104]>>9&1; *i9=Data[0x1104]>>8&1; *i8=Data[0x1104]>>7&1;
    		*i7=Data[0x1104]>>6&1; *i6=Data[0x1104]>>5&1; *i5=Data[0x1104]>>4&1;
    		*i4=Data[0x1104]>>3&1; *i3=Data[0x1104]>>2&1; *i2=Data[0x1104]>>1&1; *i1=Data[0x1104]&1;
    }

    Фирма "Элкус" порадовала. Хорошо, что у их платы не 32-разрядные регистры :)

    Запостил: whiskey, 05 Апреля 2010

    Комментарии (6) RSS

    • Ыыы.
      Ответить
    • где-то похожее было и тоже для плат
      Ответить
    • охщи...
      Ответить
    • у них такое сплошь и рядом
      Ответить
    • какой инженер электронщик писал. они без проводов/контактов жить не могут.

      бит маски это слишком софтово. и так как все провода/контакты служат разным целям, то например в один массив их запихнуть нельзя по религиозным причинам. вот тебе и идеальное решение с 16ю переменными.

      ЗЫ хотя электронщик бы с 0 начал перменные именовать.
      Ответить
      • Впечатлило? Вот ещё и оттуда же:
        void Set_Rm_Bits(unsigned short int *Data,int k4, int k3, int k2, int k1,int m4, int m3, int m2, int m1, int s , int t ,int e ,int m ,int r )
        {
        Data[0x1100]=((k4<<15)|(k3<<14)|(k2<<13)|(k1<<12)|\
        (m4<<11)|(m3<<10)|(m2<<9)|(m1<<8)|(s<<7) |\
        (t<<3)|(e<<2)|(m<<1)|(r));
        }
        Ответить

    Добавить комментарий