Olá companheiros, 

Minha dúvida surgiu depois que comecei a estudar processadores PIC, em uma prática simples de acender um LED através de um botão, notei pelo osciloscópio que para o LED trocar de estado demoraria aproximadamente 6.7 micro segundos (tempo de processamento). 

A pergunta em questão é : Qual critério devo levar em consideração quando for executar algum projeto, melhor dizendo em que tipo de projeto ou circuito que esse ''tempo'' de execução pode me atrapalhar ?

Obrigado desde já. 

Exibições: 1161

Responder esta

Respostas a este tópico

Bom dia GAP.
Você não especificou qual linguagem está usando e nem a frequencia do oscilador que está usando.
Vou inferir que é 4 MHz. A 4MHz são 4 ciclos a cada micro segundo.
O PIC16F84a precisa de 4 ciclos de clock para executar cada instrução de maquina.
ou seja, com este clock, cada instrução de maquina dura 1 micro segundo.
Se programado em C, é provavel que ao comandar o acendimento de um LED o compilador
utilize mais de uma instrução, mas usando assembly
voce pode usar uma unica instrução para isto.

Se voce mediu mais que 6  micro segundos, provavelmente foram executadas

6 instruçoes de maquina.
RV

Bom Dia RV, 

A linguagem é assembly e usei exatamente 4MHz externo para o PIC 16F84a, mas a pergunta é, em que situação esse tempo pode me atrapalhar ?? Vou exemplificar, Nesta prática usei o botão para acender o LED somente quando apertar - ló, mas com uma logica invertida, pull - up, então para quando fosse nível logico alto no botão o  LED ficava apagado, e para quando o botão fosse pressionado que deixaria nível logico baixo na entrada do uP, o LED acendia, pois então temos um Circuito INVERSOR correto? mas feito por logica de processamento, normalmente os circuitos inversores são muito mais rápidos na faixa de nano segundos, a questão que me deixou intrigado é como esse tempo de 6 micro segundos que é um tempo considerável, pode atrapalhar meu circuito ?? Eu gostaria de saber em que TIPO de projeto com o PIC esse tempo de processamento "lento" atrapalhasse ?

Obrigado GAP

Então isso depende das necessidades de todo o sistema, nesse caso é necessário fazer uma análise de timing, propagation delay, muita das vezes isso só interessante em aplicações muito específicas. O caminho mais simples é aumentar o clock da CPU, trocar de processador ou usar FPGA, CPLD etc.

Você fez uma aplicação simples, uma entrada e uma saída, com o aumento da complexidade do código as questões de atraso também mudam, pois cada saída vai depender de uma série de instruções, que eventualmente vão provocar atrasos diferentes, ahh mais é possivel contornar isso, exato, isso você consegue fazendo otimização do código.

Não é uma comparação muito justa essa que você fez, pois um microcontrolador possui centenas de portas lógicas entre a entrada e a saída, mais o atraso da CPU.

GAP,

anexe um arquivo com seu code em assembly, ai qdo eu retornar pra casa eu carrego no PIC,

e vejo no osciloscopio.

RV

Boa noite, 

Para ter uma estimativa do tempo gasto para um programa em Assembly , você pode verificar linha por linha, quanto tempo gastará cada uma delas. 

No datasheet do PIC - conjunto de instruções ( PIC16CXXX INSTRUCTION SET )são informados quantos ciclos de máquina  cada instrução gasta. 

https://www.microchip.com/wwwproducts/en/PIC16F84A

http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf

Boa tarde Flavio Hernan,

Claramente este exemplo meu não foi mais ideal para exemplificar minha dúvida, não foi tão justo podemos dizer assim não é mesmo ? A questão é que gostaria de saber quais estas aplicações especificas ? Em quais questões devo levar em consideração esse tempo de processamento ? é mais uma dúvida para enriquecer o conhecimento ..

Obrigado amigo

Boa tarde amigo, 

Segue abaixo o anexo dos arquivos estou usando o compilador MPlab IDE v8.92.

Projetos.zip

Boa noite GAP,

Não entendi nada do que você disse :

Claramente este exemplo meu não foi mais ideal para......................................  " 

Qual sua dificuldade e qual é o projeto?

RV

 

Boa noite RV

Claramente este exemplo meu não foi mais ideal para......................................  " este texto foi a resposta para o Flavio Hernan, a minha duvida era somente em questão ao tempo que o Up gastava para cada instrução, em quais projetos,práticas, deveria levar em consideração a somativa desse tempo ....??? 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço