Код
int measure() // Определения зоны нажатия, возвращает координаты X Y
{
while(1) {
output_high(DRIVE_X); output_low(DRIVE_Y); // Activation mesure en X
set_adc_channel(1);// Multiplexeur sur entree AN1 (READ_X).
delay_ms(50);// Il faut stabiliser la tension...
NX = Read_ADC(); // Mesure position X
output_high(DRIVE_Y); output_low(DRIVE_X); // Activation mesure en Y
set_adc_channel(2);// Multiplexeur sur entree AN1 (READ_X).
delay_ms(50);// Il faut stabiliser la tension...
NY = Read_ADC(); // Mesure position X
return NX,NY;
}
}
void detect()
{
int n=0;
do {
measure();
while(NX<128 && NY<128 && NX!=0 && NY!=0)
{
measure();
n=3;
}
while(NX>128 && NY<128 && NX!=0 && NY!=0)
{
measure();
n=4;
}
while(NX>128 && NY>128 && NX!=0 && NY!=0)
{
measure();
n=2;
}
while(NX<128 && NY>128 && NX!=0 && NY!=0)
{
measure();
n=1;
}
switch(n)
{
case 1:
effacement_ecran();
sprintf(texte,"Case 1"); Print_texte(0,0);
break;
case 2:
effacement_ecran();
sprintf(texte,"Case 2"); Print_texte(0,0);
break;
case 3:
effacement_ecran();
sprintf(texte,"Case 3"); Print_texte(0,0);
break;
case 4:
effacement_ecran();
sprintf(texte,"Retour"); Print_texte(0,0);
break;
default:
break;
}
n=0;
}
while (1);
}
{
while(1) {
output_high(DRIVE_X); output_low(DRIVE_Y); // Activation mesure en X
set_adc_channel(1);// Multiplexeur sur entree AN1 (READ_X).
delay_ms(50);// Il faut stabiliser la tension...
NX = Read_ADC(); // Mesure position X
output_high(DRIVE_Y); output_low(DRIVE_X); // Activation mesure en Y
set_adc_channel(2);// Multiplexeur sur entree AN1 (READ_X).
delay_ms(50);// Il faut stabiliser la tension...
NY = Read_ADC(); // Mesure position X
return NX,NY;
}
}
void detect()
{
int n=0;
do {
measure();
while(NX<128 && NY<128 && NX!=0 && NY!=0)
{
measure();
n=3;
}
while(NX>128 && NY<128 && NX!=0 && NY!=0)
{
measure();
n=4;
}
while(NX>128 && NY>128 && NX!=0 && NY!=0)
{
measure();
n=2;
}
while(NX<128 && NY>128 && NX!=0 && NY!=0)
{
measure();
n=1;
}
switch(n)
{
case 1:
effacement_ecran();
sprintf(texte,"Case 1"); Print_texte(0,0);
break;
case 2:
effacement_ecran();
sprintf(texte,"Case 2"); Print_texte(0,0);
break;
case 3:
effacement_ecran();
sprintf(texte,"Case 3"); Print_texte(0,0);
break;
case 4:
effacement_ecran();
sprintf(texte,"Retour"); Print_texte(0,0);
break;
default:
break;
}
n=0;
}
while (1);
}