Ir ao conteúdo
  • Cadastre-se

diminuir tempo pra menos de 1ms


Posts recomendados

ola pessoal

seguinte:

stou usando a porta paralela para acionar um motor de passo

ate ai beleza!

o problema é que stou usando um timer para controlar os passos e o timer so vai ate 1ms e stou precisando de um tempo menor

existe uma forma de diminuir este tempo?

alguma ideia como fazer isso?

estou usando o borland c++

agradeço desde ja!

Link para o comentário
Compartilhar em outros sites

  • 8 anos depois...

 valdenir  boa noite .

 

sou novato em programação na verdade estou nos primeiros passos, um dos meus objetivos e aprender sobre motores de passo,  gostaria de tentar controlar o motor de passo pela porta paralela, já tenho todas as bibliotecas, porém ainda nao conseguir  um algorítimo para tentar, você poderia compartilhar o código que usou para movimentar o motor de passo pela porta paralela .

Link para o comentário
Compartilhar em outros sites

Então galera.

 

Isso comprova que nada se cria e sim, que tudo se renova.

Então tenho interesse em controlar motor de passo pela porta paralela estou montando uma mesa y.z,  aos poucos  a parte eletrônica e mecânica já esta pronta ,  os  drives e os motores de passo já estão  alojados,  encontrei  esse  algoritmo para testa um dos motores, mas quando vou  copilar  no DEV –C ++ , ele da erro  se alguém  puder me ajuda agradeço .

 

 

#include 
#include 
#include 
#include 
#include //Necessário para: LoadLibrary(), GetProcAddress() e HINSTANCE.
#define ESC 27
#define velox 500
//#define VOLUME 100
#define LPT1 0x378 
//Declaração dos ponteiros para função.
typedef short _stdcall (*PtrInp)(short EndPorta);
typedef void _stdcall (*PtrOut)(short EndPorta, short valor);
void Sair(void * nulo);
char sai;
int main(void)
{
HINSTANCE hLib; //Instância para a DLL inpout32.dll.
PtrInp inportB; //Instância para a função Imp32(). 
PtrOut outportB; //Instância para a função Out32().
//Carrega a DLL na memória.
hLib = LoadLibrary("inpout32.dll");
int sair=0,opcao,p,v=1;
unsigned char Valor=1;
if(hLib == NULL) //Verifica se houve erro.
{
printf("Erro. O arquivo inpout32.dll não foi encontrado.\n");
getch();
return -1;
}
//Obtém o endereço da função Out32 contida na DLL.
outportB = (PtrOut) GetProcAddress(hLib, "Out32");
if(outportB == NULL) //Verifica se houve erro.
{
printf("Erro. A função Out32 não foi encontrada.\n");
getch();
return -1;
}
//outportB(0x37a,0x01); 
printf("=======================================================================\n");
printf("|| ||\n");
printf("|| MENU ||\n");
printf("=======================================================================\n");
printf("|| ||\n");
printf("||Digite : ||\n");
printf("||1 - Movimento em passo ||\n");
printf("||2 - Sair do programa ||\n");
printf("||OBS:ESC-Sai do programa em qualquer momento ||\n");
printf("=======================================================================\n");
scanf("%d",&opcao);
getch();
system("cls");
_beginthread(Sair,0,NULL);
switch(opcao){
case 1:
while(sai != ESC)
{
Sleep(velox);
//v=v+10; // saber quanto de agua sobe em um passo ou por 1/4 de passo
if(Valor>8)
Valor=1;
outportB(LPT1,Valor);//tem que confirmar se tar certo
Valor = Valor << 1;
}
break;
case 2:
printf("Saindo do programa ...");
getch();
exit(1);
default:
printf("ERRO!O programa nao ira executar.");
getch();
exit(1);
}
printf("Foi transportado xx ml de agua com sucesso!");
getch();
FreeLibrary(hLib); //Libera memória alocada pela DLL.
return(0);
}
void Sair(void * nulo)
{
while(sai != ESC)
{
sai=getch();

_endthread();

   00.png

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...