Go Down

Topic: Criando Bibliotecas para Arduino (Read 2879 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

bubulindo

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.

This... is a hobby.

Go Up