Programação c versus programação em assembly
Embora se possam considerar outras linguagens, a maioria das aplicações para a família PIC são desenvolvidas em C e/ou assembly, é essencial saber escolher a linguagem a usar.
Vantagens e desvantagens do assembly
A programação em assembly é o nível mais baixo em que se pode programar com alguma comodidade. As desvantagem de uma linguagem de baixo nível são: * Grande desproporção entre o conjunto de instruções e as tarefas que o microprocessador normalmente é chamado a executar. Esta desproporção obriga a decompor manualmente cada tarefa em operações elementares que, além de ser um processo demorado e sujeito a erros, não ajuda a manter o código estruturado. * Grande dependência relativamente aos detalhes internos do hardware que tem como conseqüência direta a reduzida portabilidade dos programas.
A principal (e atualmente única) vantagem de programar em assembly é poder aproveitar ao máximo as características particulares do hardware onde vai ser executado, conseguindo assim resultados otimizados quer em tempo de execução quer em tamanho de código.
Outra vantagem é a existência de assembladores gratuitos ou de baixo custo para a totalidade dos microprocessadores pelo que é sempre possível programar em assembly, qualquer que seja o microprocessador escolhido. O mesmo já não acontece com linguagens de alto nível, onde nem sempre é possível encontrar um compilador para um dado microprocessador.
Vantagens e desvantagens do C
As razões para a popularidade da linguagem C em aplicações embutidas são bem conhecidas: * o acesso fácil ao hardware, * os baixos requisitos de memória * o elevado desempenho dos atuais compiladores facilitam o rápido desenvolvimento de aplicações eficientes e de fácil manutenção.
Igualmente bem conhecidas são as desvantagens da linguagem: sintaxe demasiado livre e propensa a erros difíceis de detectar(mas não mais difíceis que em assembly) e demasiados pontos