ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
149994 Топик полностью
Alex B. (04.03.2009 18:24, просмотров: 400) ответил AlexBi на Не забывать про volatile и "проблемы во всей красе" не будет.
и это правда. Главное, структуру специально volatile объявил, а указатель нет, а на предупреждение компилера забил 
87:                        mys_pt->qwer |=  (1 << 4);
 002A0  225020     mov.w #0x2502,0x0000
 002A2  A04010     bset [0x0000],#4
88:                        mys_pt->qwer |=  (1 << 5);
 002A4  A05010     bset [0x0000],#5
но это всего лишь плохой пример. Часто нужно именно записать значение, а не установить биты по маске. А еще, бывает надо переменную использовать а не константу:
85:                        a = (1 << 4);
 002A0  200100     mov.w #0x10, w0
 002A2  888000     mov.w w0,    0x1000
86:                        mys_pt = &my_struct;
87:                        
88:                        mys_pt->qwer |= a;
 002A4  225020     mov.w #0x2502, w0
 002A6  780110     mov.w [w0],    w2
 002A8  808001     mov.w 0x1000,  w1
 002AA  710801     ior.w w2, w1, [w0]
85:                        a = (1 << 4);
 002A0  200100     mov.w #0x10, w0
 002A2  888000     mov.w w0,    0x1000
92:                        BFARI(&mys_pt->qwer, 0, 15, BFA_SET, a);
 002A6  225020     mov.w #0x2502, w0
 002A8  808001     mov.w 0x1000,  w1
 002AA  708810     ior.w w1, [w0], [w0]
Согласуйте импеданс!