Bem estou fazendo como projeto da faculdade um sensor de presença , onde tem 2 sensores e quando alguém passar por esses dois sensores um led fica ativo, eu gostaria de adicionar nele o seguinte contar com quantos segundos as pessoas passam pelos dois sensores e mostrar na tela. E estou com duvida de como fazer isso.
Ai esta o meu codigo sobre o sensor de presenca se a contagem de tempo.
#include <stdio.h>
#include <math.h>
#include <windows.h>
#define DEVCpp
#ifdef DEVCpp
#include <windows.h>
#endif
#ifdef TURBOCpp
#include <dos.h>
#endif
void espera(long tempo){
#ifdef DEVCpp
Sleep(tempo);
#endif
#ifdef TURBOCpp
delay(tempo);
#endif
}
/* cria??o de um tipo, que ? um ponteiro para fun??o */
typedef short _stdcall (*inpfuncPtr)(short portaddr);
typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);
/* ponteiros para fun??es, mas que podem ser interpretadas como:
(a) short inp32(short porta);
(b) void oup32(short porta, short dado);
*/
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr oup32;
int iniciaBiblioteca(){
/* Load the library */
hLib = LoadLibrary("inpout32.dll");
if (hLib == NULL) {
printf("A biblioteca inpout32.dll não foi encontrada\n\n");
return -1;
}else {
printf("Biblioteca inpout32.dll aberta com sucesso...\n\n");
getchar();
}
/* get the address of the function */
inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");
if (inp32 == NULL) {
printf("GetProcAddress for Inp32 Failed.\n");
return -1;
}
oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");
if (oup32 == NULL) {
printf("GetProcAddress for Oup32 Failed.\n");
return -1;
}
return 0;
}
int main(void)
{
if (iniciaBiblioteca()==-1) return -1; // inicia e testa se falhou
system("cls");
int pessoas=0, entrando =0, saindo = 0, s1=0, s2=0, x,bit7,bit6,pe=0,ps=0;
x=inp32(889);
bit7 = (x & 128);
bit6 = (x & 64);
while(bit7 == 128){
s1 = s1+1;
x = inp32(889);
bit7 = x & 128;
}
while(bit6 ==0){
s2 = s2+1;
x=inp32(889);
bit6 = (x & 64);
}
if(s1 > s2) entrando=1;
if((s2 == s1) and (saindo==1)) {
printf("Saiu");
pessoas--;
ps = +pessoas;
}
if((s2 == s1) and (entrando ==1)) printf("Entrou");
if(pessoas <= 0) oup32(888,0);
if (s2 > s1) {
saindo = 1;
x= inp32(889);
bit7 = x & 128;
bit6 = x & 64;
pessoas++;
pe = +pessoas;
}
if (pessoas > 0) oup32(888,1);
printf("Pessoas que entraram = %d \n",pe);
printf("Pessoas que sairam = %d \n",ps);
FreeLibrary(hLib);
return 0;
}
Pergunta
Henrique Neto
Bem estou fazendo como projeto da faculdade um sensor de presença , onde tem 2 sensores e quando alguém passar por esses dois sensores um led fica ativo, eu gostaria de adicionar nele o seguinte contar com quantos segundos as pessoas passam pelos dois sensores e mostrar na tela. E estou com duvida de como fazer isso.
Ai esta o meu codigo sobre o sensor de presenca se a contagem de tempo.
#include <stdio.h> #include <math.h> #include <windows.h> #define DEVCpp #ifdef DEVCpp #include <windows.h> #endif #ifdef TURBOCpp #include <dos.h> #endif void espera(long tempo){ #ifdef DEVCpp Sleep(tempo); #endif #ifdef TURBOCpp delay(tempo); #endif } /* cria??o de um tipo, que ? um ponteiro para fun??o */ typedef short _stdcall (*inpfuncPtr)(short portaddr); typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); /* ponteiros para fun??es, mas que podem ser interpretadas como: (a) short inp32(short porta); (b) void oup32(short porta, short dado); */ HINSTANCE hLib; inpfuncPtr inp32; oupfuncPtr oup32; int iniciaBiblioteca(){ /* Load the library */ hLib = LoadLibrary("inpout32.dll"); if (hLib == NULL) { printf("A biblioteca inpout32.dll não foi encontrada\n\n"); return -1; }else { printf("Biblioteca inpout32.dll aberta com sucesso...\n\n"); getchar(); } /* get the address of the function */ inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32"); if (inp32 == NULL) { printf("GetProcAddress for Inp32 Failed.\n"); return -1; } oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32"); if (oup32 == NULL) { printf("GetProcAddress for Oup32 Failed.\n"); return -1; } return 0; } int main(void) { if (iniciaBiblioteca()==-1) return -1; // inicia e testa se falhou system("cls"); int pessoas=0, entrando =0, saindo = 0, s1=0, s2=0, x,bit7,bit6,pe=0,ps=0; x=inp32(889); bit7 = (x & 128); bit6 = (x & 64); while(bit7 == 128){ s1 = s1+1; x = inp32(889); bit7 = x & 128; } while(bit6 ==0){ s2 = s2+1; x=inp32(889); bit6 = (x & 64); } if(s1 > s2) entrando=1; if((s2 == s1) and (saindo==1)) { printf("Saiu"); pessoas--; ps = +pessoas; } if((s2 == s1) and (entrando ==1)) printf("Entrou"); if(pessoas <= 0) oup32(888,0); if (s2 > s1) { saindo = 1; x= inp32(889); bit7 = x & 128; bit6 = x & 64; pessoas++; pe = +pessoas; } if (pessoas > 0) oup32(888,1); printf("Pessoas que entraram = %d \n",pe); printf("Pessoas que sairam = %d \n",ps); FreeLibrary(hLib); return 0; }Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.