Go Down

Topic: Criando Bibliotecas para Arduino (Read 2128 times) previous topic - next topic

AlxDroidDev


Tu quando começaste a mexer no Arduino já sabias usar microcontroladores?


Sim, mas apenas na universidade, onde fiz Engenharia Mecatronica. Na universidade eu usava microcontroladores (sobretudo os 8051) e protótipos baseados em CPUs Z80 (8-bits) e depois os 68000 (32-bits) , mas tudo isto diretamente com Assembly, e realmente havia uns bons 18 anos que não mexia com eles. Meu background em eletronica era razoavel, embora longe de ser excelente. Quanto a programação, tenho 25 anos de experiência em diversas linguagens.

Como vês, eu fui evangelizado a pensar em microcontroladores como algo onde o tamanho do código é sagrado, onde deve-se racionar instruções e ciclos de clock ao máximo, buscando o máximo de eficiência pelo mínimo de esforço.

Na época, escrevíamos os programas em Assembly em um editor bastante rudimentar, compilávamos para gerar o binário, que por sua vez era gravado em uma EPROM (daquelas que possuem uma abertura em cima para serem apagadas) e então instalados na placa-protótipo onde ficavam os circuitos e o microcontrolador ou CPU. Eles já tinham uma espécie de bootloader preparado para buscar o começo do programa na EPROM que usávamos. Cada aluno tinha seu conjunto de EPROMs.
Learn to live: Live to learn.
Showing off my work: http://arduino.cc/forum/index.php/topic,126197.0.html

Eh eh, há já uns bons anos que não uso (ou vejo) uma EPROM. :) Eu usava-as com o 8051 há prai uns 10 anos.

Mas o objectivo da pergunta era mesmo para perceber porque tinhas usado o pinMode e/ou digitalWrite/Read sabendo microcontroladores e quão ineficientes essas funções são.
Eu uso essas funções quando (ultimamente não tenho feito nada disso) preciso de escrever algo rápido para testar e mais tarde se precisar então, uso a manipulação de portas com macros para obter o mínimo código possível.

No entanto, devo admitir que para principiantes em electrónica essas funções são excelentes porque evitam muitos problemas para quem pouco sabe de C. Para quem sabe C e microcontroladores, pode evitar usar essas funções e poupar imensa memória e ciclos. Daí eu ter dito anteriormente ao Marcelo que criar bibliotecas para acender ou apagar LEDs não é propriamente algo ideal porque apenas está a criar mais uma camada de código em cima de funções que por si só não são optimizadas. Já se o fizesse de forma optimizada para poupar memória seria excelente.

Neste momento estou a trabalhar numa biblioteca que vai aceder a um servidor para fazer download dos próximos autocarros a parar numa determinada paragem e a maior parte dos problemas que tenho são precisamente por querer poupar a memória flash e ROM ao máximo para que quem quiser usá-la não ter problemas com memória a menos no programa. Isto é algo que a maior parte das bibliotecas não liga puto pelo que tenho visto nas que fiz download.

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Go Up