01-05-2017, 02:46 AM
Вот без постоянного дерганья трисов:
Код:
void selector(void){ // call periodically (from timer interrupt or main loop)
unsigned char newsel=0;
if(!INP_1 &&(sel!=1)) newsel++; else
if(!INP_2 &&(sel!=2)) newsel++; else
if(!INP_3 &&(sel!=3)) newsel++; else
if(!INP_4 &&(sel!=4)) newsel++;
if(newsel==0) return;
sel=newsel; // sel and newsel = 1,2,3,4
S_data_send(sel-1); // установка мультиплексора
SetTris(sel); // set dedicated pin as output=0;
}