por MOR_AL » 30 Mar 2009 22:09
Olá pessoal.
Primeiramente. Minha utilização é voltada para uma aplicação que necessitará ler o valor analógico da posição de um objeto acoplado mecanicamente ao eixo do motor. Sendo assim, não utilizarei esta alternativa sugerida aqui.
Por outro lado, o assunto levantado é interessante e como tal, também quero compartilhar com vocês.
Concordo plenamente com o comentário do EvandroPic. No caso da impressora, o sentido da locomoção do carrinho é conhecida, não havendo a necessidade de se usar um código semelhante ao dos mouses, que exigem mais processamento.
Brasilma.
A velocidade da impressão estará diretamente ligada à velocidade do processamento e à inércia do sistema. O projetista tem que terminar de colocar um "pixel" no papel, para seguir adiante. Ele não pode fazer avançar o carrinho mais rápido que o processamento permite. Imagine que o carrinho tem 25 cm de curso e que há cerca de 7 tracinhos por milímetro. O número total de tracinhos seriam de 7 x 25 x 10 = 1750.
Já medi aprox. o tempo para o carrinho percorrer o curso. Deu algo como 1 segundo. Isso nos leva a 1750 interrupções por segundo, ou aprox. 570us de processamento por interrupção.
Neste período, o registro duplo, "contador de traços do carrinho", tem que ser incrementado, decidido se o carrinho deve avançar mais ou recuar, determinar a largura do pulso que será aplicado ao motor e aplicar este pulso. Também tem que verificar se houve transbordo, tanto para o máximo da contagem, como para o lado da referência.
Tem que decidir quanto tempo tem que ser o "cuspe" de tinta, tem que decidir qual a cor básica, etc. Esta rapidez só esta sendo alcançada há poucos anos. Com a popularização das impressoras, e o avanço da tecnologia, mais projetistas dedicam mais tempo para aumentar a velocidade de impressão.
Guest2003.
Acho que não entendi direito este conceito de gerar interrupções somente quando houver o estouro de um contador (ou com um valor qualquer, diferente de um).
Se a interrupção informa que o carrinho já teve mais um movimento, você estaria perdendo precisão, caso ignorasse algumas interrupções. Acredito que este procedimento seria válido apenas no caso das impressoras, onde se recai no fato de que o programa já saberá onde a tinta tem que ser aplicada. Aí é só mover o carrinho até que este passe por mais n traços, onde este n é uma variável que informa quantos traços devem ser percorridos até o próximo "cuspe" de tinta.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain