Em tempo real uso threads que é a melhor forma de usar o windows em tempo real, acredito que outros programadores usem alguns "truques sujos" como você comentou...mas tambem usem Threads,
Algumas considerações (ou opções) que me deixam confuso...
1 - digamos que eu mude de SO para linux, como posso compatibilizar esse software com um amigo que nao usa linux e sim windows?
2 - os programadores tem formas de converter isso? passo a acreditar que mesmo usando outro SO o codigo gerado seria pra windows pois um arquivo .EXE que roda no linux roda em windows pelo fato de ser .EXE?
2 - O você acha de usar um pic 16F877A e esquecer a interface por enquanto? a programação seria bem mais simples mas roubaria a "magia" de controlar tudo por PC..
3 - A porta USB é muito mais rapida e seria uma opção interessante e moderna pra mim, parece que o BILL fornece suporte para essa porta trabalhar em tempo real, falo isso porque a Rogercom tem otimos curso pela net.
4 - Existem softwares geradores de CLOCK na internet que geram onda quadrada 1 a 20 khz, precisaria de um codigo aberto de uma programa desses (e ja estou atras) pra saber quais "truques" os programdores usaram para enganar o o nosso (R)windows.....
1 - Não sei..., é complicado rodar algo em tempo real (de verdade) usando um simulador de Linux dentro do Windows ou algo similar. A tecnolgia ainda não chegou a esse ponto...
2 - Seria uma boa opçao, mas o "pulo do gato" é saber como cortar as tarefas, ou seja, o que fica no PC e o que vai para o PIC. De modo a balancear: velocidade de resposta, carga de processamento, tipo de processamento, .... A interface "bonitinha" poderia ser feita depois.
3 -Cuidado com a USB, existem vários modos de operação, alguns são como uma porta serial embutida (no maximo 115 kbps). Mas a questão não é tanto a velocidade da porta, mas o balanceamento da carga de processamento, pois a parte rápida não ficaria no PC. Excetuando os sistemas de multimídia, uma interface USB rápida não foi pensada em sistemas de controle em tempo real, mas, sendo rápida, acelera a transferência de um arquivo, mas para controle direto dos motores, esse fluxo deve ser constante e sem variações de frequência, o que, novamente esbarra na limitação do software dentro do PC.
4 - Eu acredito que esse geradores usam a saída de áudio do PC, que não possui nível de sinal TTL para acionar motores!! Para isso o Windows possui algumas coisas específicas. Mas quem gera o sinal não é uma "porta paralela", mas um conversor D/A da placa de áudio, que também possui um buffer (memória), para absorver o jitter e atrasos no envio de dados. Algo semelhante a um CD player a prova de buracos na estrada, ou seja, voce toca o CD mas não é interrompido se a cabeça de leitura se afastar do CD por alguns momentos. A estrada esburacada seria o (R)Windows...
Mas ai teria que usar um placa de som com tres canais de áudio sincronizados a nível de cada bit, acho que seria complicado....
Existem processadores DSP (dsPIC), que são rápidos e acho que poderiam ajudar nesse tipo problema, fora do PC.... Ou dentro (uma placa dedicada).