ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
154239 Топик полностью
picavr (20.04.2009 04:02, просмотров: 1) ответил Т.Достоевский на Я сам в Ц новичёк. Попробуй скобочки вокруг (1<<8 или как там) в определении PINC_Bitxx, так-же в if (!PINC_Bit0) {tempkey |= (1<<16);} может заморочка с приоритетами операторов(лень смотреть). Ну и почаще заглядывать в дизасемблерный код.
УРА!!! разобрался. не понял почему не работало по старому, но теперь всё работает... и только и делаю что смотрю в дизасемблер, стараюсь делать запись что бы компилировался компактнее.. unsigned long tempkey; //переменная для считывания //---------------------------------------------------------------------------------- void read_32key0 (void){ //считывание клавиш 0-7 unsigned long temp=0; if (!PINA_Bit0) {temp |= 1<<0;} if (!PINA_Bit1) {temp |= 1<<1;} if (!PINA_Bit2) {temp |= 1<<2;} if (!PINA_Bit3) {temp |= 1<<3;} if (!PINA_Bit4) {temp |= 1<<4;} if (!PINA_Bit5) {temp |= 1<<5;} if (!PINA_Bit6) {temp |= 1<<6;} if (!PINA_Bit7) {temp |= 1<<7;} tempkey = tempkey & 0xffffff00 | temp<<0;} //----------------------------------------------------------------------------------