Sidius Postado Dezembro 20, 2009 Denunciar Share Postado Dezembro 20, 2009 Galera seguinte, uso 0 Visual Studio C++ 2010 fiz um programa onde criei um button pra quando eu clicar nele uma rotina dentro do while ser executada e ai começa minha saga o programa trava.alguém já paSsou por isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Dezembro 20, 2009 Denunciar Share Postado Dezembro 20, 2009 Como está o código ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Dezembro 20, 2009 Denunciar Share Postado Dezembro 20, 2009 Você deve tá errando na condição de parada. Posta o código que fica mais fácil agente te ajudar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sidius Postado Dezembro 20, 2009 Autor Denunciar Share Postado Dezembro 20, 2009 (editado) else { unsigned short Byte;//Para armazenar o byte recebido da Porta Paralela. int i,j,x; x = Convert::ToInt32(textBox1->Text);//Intensidade da velocidade do motor. j=0; clock_t tempo0,tempo1,tempo2;//Variaveis de tempo. double tempo_gasto1,tempo_gasto2;//Variaveis de intervalos de tempo. tempo0= clock();//tempo inicial. Byte = inportB(0x379);//Verifica o Byte de entrada da porta paralela while(j<1) { // Variador de velocidade do motor DC. for(i=0;i<x;i++) {outportb(0x378,0);} for(i=0;i<(100-x);i++) {outportb(0x378,1);} //ínicio da captura caso o objeto atravesse o sensor infravermelho gerando o Byte (0000-1000) com o bit 0x08 = 1. Byte = inportB(0x379); if ((Byte & 0x08) !=0) { j=j+1; tempo2= clock();//Captura do tempo quando o objeto interrompe o sensor while( (Byte & 0x08) != 0 )//Garantia para que o tempo seja capturado logo na entrada do objeto pelo sensor e não na saida. {Byte = inportB(0x379);} tempo_gasto2 = ( (double) (tempo2 - tempo0) )/ CLOCKS_PER_SEC;//Calcula o intervalo de tempo da partida até o objeto iniciar a passagem pelo sensor. maskedTextBox2->Text = (Convert::ToString(tempo_gasto2)+" s"); } } outportb(0x378,0);//Desliga a porta paralela. tempo1= clock();//Captura o tempo final do evento. tempo_gasto1 = ( (double) (tempo1 - tempo0) )/ CLOCKS_PER_SEC;//Calcula o intervalo de tempo da partida até o fim do processo . maskedTextBox1->Text = (Convert::ToString(tempo_gasto1)+" s");//envia o dado para tela. }Formatei a maquina e instalei o Beta 2010 d novo agora ta funcionando de boa o tempo ocioso do sistema ta dando 20 quando o programa ta funcionando. Antes tava dando 0.Como sou novato na parada é soda acontece alguma coisa errada e eu logo penso que é o fim do mundo.Antes a condição do while era essa: while( ! _kbhit() ) //Executa enquanto nenhuma tecla for pressionada. Editado Dezembro 20, 2009 por Sidius Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Dezembro 20, 2009 Denunciar Share Postado Dezembro 20, 2009 Formatei a maquina e instalei o Beta 2010 d novo agora ta funcionando de boa ...Então você conseguiu resolver o problema? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sidius Postado Dezembro 20, 2009 Autor Denunciar Share Postado Dezembro 20, 2009 Sim valeu galera. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Sidius
Galera seguinte, uso 0 Visual Studio C++ 2010 fiz um programa onde criei um button pra quando eu clicar nele uma rotina dentro do while ser executada e ai começa minha saga o programa trava.
alguém já paSsou por isso?
Link para o comentário
Compartilhar em outros sites
5 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.