Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print

ELETRÔNICA / ELÉTRICA => Eletrônica Básica => Microcontroladores => Tópico iniciado por: Tverm em 26 de Junho de 2009, 17:05

Título: Iniciando programação asm em PIC
Enviado por: Tverm em 26 de Junho de 2009, 17:05
Boas galera.
Tenho andado desaparecido,tive que fazer uma pausa na minha CNC para fazer umas cadeiras da Faculdade.
Mas o que me traz aqui é que comprei um PICKIT2 e queria começar a programar o mesmo o unico conhecimento que tenho em programação de microcontroladores é em 8085 mas ja estive a olhar para alguns exemplos do asm do pic e fiquei meio predido.O micro que estou a tentar programar é um PIC16F690 nem sei se sera o mais facil.

Algum colega tem ideia de por onde devo começar?O que devo ler os conceitos basicos mesmo.
Desde ja obrigado.
Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 26 de Junho de 2009, 17:09
Instalei o MPLAB ja consigo compilar e transferir para o pic alguns ficheiros o problema maior ainda é perceber o codigo e fazer pequenas alterações.
Título: Re: Iniciando programação asm em PIC
Enviado por: Alebe em 26 de Junho de 2009, 17:52
Daniel,
Se ainda não conhece, um bom lugar pra começar é este link.
http://www.mikroe.com/pt/

La tem um livro pra baixar com muitas dicas.


Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 26 de Junho de 2009, 17:55
Grande Alebe.

Muito obrigado vou dar uma olhada.
Um abraço.
Título: Re: Iniciando programação asm em PIC
Enviado por: fcamargo em 26 de Junho de 2009, 18:32
também tô nessa

estou fazeno um cuso de programação pic
na Labre em curitiba
o curso é licenciado pela microchip

e ganhamos a placa da piclab 40 (muito legal pra aprender a usar a programação)
(http://www.coolcircuit.com/project/piclab/)

os componentes eu comprei (R$ 56,00) + o cabo USB serial (34,00)
no Chip esta sendo colocadoo bootloader pra facilitar a vida..

agora que efetivamente entramos na escovação de bit..
assembler puro.
a IDE é a MPLAB da micochip mesmo..
algumas simulações são possiveis (picsimulator)
logo estarei desenhando bem esse carinha..

a base de aprendizado sera com o 16f877

Título: Re: Iniciando programação asm em PIC
Enviado por: robedany em 26 de Junho de 2009, 18:53
Oi Tverm
Acho que para começar, tente 0 16f84, ele praticamente já esta fora de linha, mas é onde tem a maior quantidade de exemplos. depois o 16f628 e se quizer bem pequeno o 12f629

  Oi Fabio Vc. é radioamador, por frequentar a Labre?

Roberto PY2USD
Título: Re: Iniciando programação asm em PIC
Enviado por: fcamargo em 26 de Junho de 2009, 19:15
NÃO AINDA..(não é muito a minha praia)
meu irmão é.

ZZ5AMR
Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 26 de Junho de 2009, 20:40
Oi Camargo fiz a cadeira de microcontroladores na faculdade com um 8085 da Dallas Maxim a um ano atras mas sempre fiquei com o bichinho de saber programar PIC.
Então comprei este Kit da microchip http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120 mandei vir pela Farnell.
Veio um montão de Pic's de oferta com ele dois 10F202,10F206, um 12F509,16F505,16F57,16F54,16F59 e o que vinha mesmo com a placa o 16F690.
Vai ser uma diversão por aqui.
 

Robedany como não tenho nenhum dos que voce falou vou mesmo tentar com os que tenho por aqui para ja, depois caso não chegue la tento os que voce falou.

Tive a falar com um amigo e mais tarde talvez mandemos vir uma placa destas atravez de um amigo que esta nos States http://www.mikroe.com/en/tools/easypic5/

Um abraço e boas PICadas
Título: Re: Iniciando programação asm em PIC
Enviado por: kaoalex em 27 de Junho de 2009, 01:21
...se quizer bem pequeno o 12f629.

12F675 é melhor. Ele e a mesma coisa do 12F629, mas tem conversor AD.
Título: Re: Iniciando programação asm em PIC
Enviado por: Blackmore em 27 de Junho de 2009, 12:10
Tverm

vais programar PIC em ASM ou C? de qqer forma boa sorte nos estudos !!!  :)

abrax!
Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 27 de Junho de 2009, 12:46
Oi Blackmore estou mesmo me agarrando ao asm não sei se é asneira mas como no 8085 também aprendi em asm queria continuar na mesma linha de pensamento.
E pelo que tenho ouvido por ai é mais fácil depois de migrar para o .C do que o contrario.
Bem .C também não é problema grave para mim pois também já fiz alguns programas para PC/DOS.
Estou lendo o livro que o Alebe me indicou como se nada soubesse do assunto e estou aprendendo e relembrando algumas coisas importantes.
Hoje do pouco que já li olhando para um código de exemplo que tinha compilado e transferido para o micro (apenas uns leds piscando) já começo a entender +- o funcionamento dele no PIC que pelo que estou a ver é um pouco diferente do 8085.

Um abraço.
Título: Re: Iniciando programação asm em PIC
Enviado por: robedany em 27 de Junho de 2009, 13:53
Oi Tverm
Quando falei em começar com os 12f629 ou 16f84, 16f628 e que tem bastantes exemplos de aplicações.
O que vc. falou que vai usar é o 16f690, que tem muita coisa pra começo.
Eu pessoalmente também estou aprendendo e já consegui transformar um mesmo programa feito para o 12f509 (grava uma vez só) e para o 16f84 (muitas saida), para o 12f629 e funciona.
Acho que vc. deve começar com programas pequenos e pic mais simples.
Imagine o pessoal que esta aprendendo mexer com torno e já começar a usar um cnc com varias porta ferramentes, acho que tem tantas variavéis para aprender ao mesmo tempo que pode desanimar.
Eu uso o programa EDIT para modificar o fonte (asm) e uso o MPASMWIN para compilar e um gravador PROPIC2 (tem problema em gravar o 16f628)

Roberto


Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 27 de Junho de 2009, 14:14
Oi Tverm,

Pra quem estudou asm em microcontroladores da linha Intel (8085, 8051) eu acho o asm do PIC mais simples, considerando que possui menos instruções (e menos coisas para "decorar" e lembrar), devido a sua arquitetura RISC (Reduced Instruction Set Computer). O PIC também possui menos registradores. Desse modo, os programas em PIC são, de um modo geral, um pouco maiores que o das famíla 8051 (por exemplo), devido ao menor poder das instruções do PIC.

Por exemplo, colocar uma mensagem na memória Flash e enviar via USART é muito fácil num 8051, devido ao registrador de endereçamento indireto. Isso não existe no PIC, e exige uma certa ginástica de programação, uso da pilha.
 
Eu ainda acho as arquiteturas da Atmel melhores (exemplo: ATMega 16, ATMega 32, ...) do que o PIC. Apesar da linha PIC ser extensa, incluindo processadores do tipo DSP (Digital Signal Processor).

Mas acredito que, de certa forma, a escolha do microcontrolador é como roupa...

Apesar disso que eu disse, eu ainda uso o PIC, pois acho na loja da esquina. Uso o MPLAB como ferramenta de edição, compilação e simulação do software. Também uso o MPLAB acoplado ao ISIS (Proteus), conseguindo simular o software e o hardware de maneira integrada, sendo possível simular leds, porta seriais, displays tipo LCD, etc...

Também uso o programador PICKit2.
 
Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 27 de Junho de 2009, 14:20
Oi roberdany.
Eu percebi o que você quis dizer mas microcontroladores não é 100% novidade para mim apenas é a minha primeira vez com PIC.
Como já tinha dito estou lendo o livro que o Alebe me indicou e la também explica direitinho o PIC16F84 vou lendo e experimentando com o 16F690 quando começar a ter conflitos com ele logo vejo o que fazer.
De qualquer maneira muito obrigado pelo conselho.

Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 27 de Junho de 2009, 14:33
Oi minilathe.
Sim você tem razão usar a UART do 8085 é bem simples.
No 8085 eu programei leds a piscar,Displays LCD,Comunicações Serie tanto pela UART como SPI para sensores de temperatura Microchip, fiz um Relógios,Displays de 7Seg,controlo simples de StepMotor,Recepção de caracteres de um teclado de 13bit,geração de sinais sonoros.
Ainda brincamos um pouco com eles deu para aprender como a coisa funcionava.
Espero que esta transição para o PIC seja só uma questão de estudo.

...
Também uso o MPLAB acoplado ao ISIS (Proteus), conseguindo simular o software e o hardware de maneira integrada, sendo possível simular leds, porta seriais, displays tipo LCD, etc...
Achei essa sua ultima parte bem interessante depois tenho que dar uma olhada nesse ISIS.

Título: Re: Iniciando programação asm em PIC
Enviado por: trumpeu em 27 de Junho de 2009, 15:03
Comece com o ASM, mas aconselho também começar com o C, pois assim vc vê as coisas boas de uma e de outra liguagem.
Uns dos meu projetos da facul, foi fazer um drive para motor de passo(para utilização em CNC) em ASM, depois aprendi a programar em C, ficou bem mais rápido, hoje ao dar cursos eu prefiro C pois os alunos chegam rapidamente nas aplicações avançadas.
Título: Re: Iniciando programação asm em PIC
Enviado por: Blackmore em 27 de Junho de 2009, 15:55
Tverm

o minilathe lhe indicou o uso do ISIS (Proteus) o que eu também recomendo, por alguns motivos onde no meu caso um grande aproveitamento do tempo de estudo.
Eu fiz um esquema inicial e comecei a fazer o programa para o PIC, a cada simulação ou idéia nova eu ia já alterando o circuito e simulando novamente, e a cada nova idéia o ciclo se repetindo, aproveitando assim horas disponíveis nos mais diversos locais, como na hora do almoço na empresa, na faculdade quando não estava em aula, ou em dias em que tomava aquele chá de cadeira em visita a clientes ou fornecedores.
Talvez a maior vantagem seja para mim (como sou estudante e não tenho conhecimento acumulado) montagem virtual do circuito e simulação do software reduz em muito o investimento em componentnes, pois compramos o que precisamos com a certeza de funcionar bem, ou com pequenos ajustes, e não com dúvidas SE vai dar certo.
qqer coisa manda notícias.

abrax!
Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 27 de Junho de 2009, 16:21
Não conhecia o Proteus mas do que ja vi achei muito bacana.
Tem um poder de simulação como eu nunca tinha visto.
Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 27 de Junho de 2009, 20:43
Tverm,

Só pra exemplificar a capacidade do ISIS, segue um trabalho acadêmico que eu fiz usando o PIC16F628 se comunicando com um PC através da porta serial RS232, eu simulei e montei o circuito. Implementei um divisor de baud rate usando jumpers, e tanto a simulação quanto o circuito funcionaram coerentemente.

Seguem imagens e fotos do circuito...
Título: Re: Iniciando programação asm em PIC
Enviado por: Blackmore em 27 de Junho de 2009, 21:25
minilathe

bixo .. tu que manja muito mais me responda ...

o que é modelagem de componentes eletrônicos?

Tem um curso de férias na faculdade que diz ser para modelar componentes ... fiquei interessado mas fiquei em dúvida se vale a pena.

abrax!
Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 27 de Junho de 2009, 22:12
Blackmore,

Quando voce roda um programa simulador são usados modelos, ou melhor, representações aproximadas dos componentes, sistemas e sub-sistemas do mundo real.

Por exemplo, um resistor em altas frequências (centenas de MHz) apresenta capacitâncias e indutâncias, que geram reatâncias consideráveis nessas frequências, mas que são deprezíveis em aplicações em CC.

Um transistor de junção (NPN, PNP) também é representado por modelos, e existem vários tipos de modelos para transistores: modelo H, modelo S, modelo Ebers-Moll, .... Alguns desses modelos são para circuitos lineares, outros são mais apropriados para frequências elevadas, outros são para grandes sinais, pequenos sinais, ...

Um transformador, por exemplo, apresenta vários efeitos, que podem ser mais significativos em determinadas situações reais, como a saturação do núcleo, indutância de dispersão, resistências dos enrolamentos, capacitância entre espiras, resistência de fuga, capacitância entre primário e secundário, indutância de magnetização, resistência térmica, ... Esses comportamentos também podem ser modelados, de acordo com a as características da aplicação do circuito que usará o modêlo (uso em alta frequência, correntes elevadas, temperaturas elevadas, baixas frequências, componente DC presente, ...).

De fato, não existe um modêlo completo de um componente que sirva para qualquer situação que se apresente na prática. Daí, usarmos vários tipos de modelo, cada um mais adequado a uma aplicação. Inclusive, onde muita gente se engana, a escolha do modelo inapropriado pode levar a respostas erradas do circuito modelado.

Adicionalmente, a modelagem muitas vezes é incompleta, e não leva em conta o que ocorre numa montagem real, como o ruído, influência da temperatura, reflexões de sinais, descasamento de impedâncias, componentes alterados, especificações diferentes dos usados no modelo, capacitâncias e indutâncias parasitas de conexões e cabos, ....
 
Desse modo, no final da história, nada supera a montagem de um protótipo, que será prova do funcionamento do circuito com componentes reais, numa montagem real e não com meros modelos.

Modelar componentes, sistemas e sub-sistemas é quase uma arte, envolvendo o conhecimento detalhado do componente que será objeto da simulação. Pode-se usar programas, scripts, modelos físicos provenientes da literatura ou aproximações através da associação de componentes ideais para gerar modelos aproximados, mas adequados a uma certo cenário de aplicação.

Apesar do exposto, seria bom dar uma olhada no programa do curso, pra entender o que os organizadores tem em mente.
Título: Re: Iniciando programação asm em PIC
Enviado por: Tverm em 28 de Junho de 2009, 08:16
Bem legal.
Pelo que eu percebi é só desenhar o circuito no ISIS gerar o código no MPLAB ou noutro suporte e depois de compilar usar o .HEX no ISIS.
É nunca tinha visto um soft que fizesse esta gestão toda esquemático simulação e uso do programa dos micros.
Os programas que tenho usado (Orcad,Eagel) tem algumas destas funcionalidades mas é preciso fazer uma ginástica enorme para os usar.
Título: Re: Iniciando programação asm em PIC
Enviado por: Blackmore em 28 de Junho de 2009, 14:45
bom ... o programa é para modelamento apenas de resistores, diodos, capacitores, transistores e amplificadores operacionais.
Não tenho pretenção de ser o mestre, mas apenas de conhecer sobre o assunto, até mesmo pq o valor do curso é muito atraente e me adiciona horas de atividades complementares.   ;D
Um outro em que tenho interesse é o de soldagem SMD, um colega do trabalho me disse que o conteúdo é interessante e pelo curso mais uma vez é muito atraente.  :D
te passei por MP o link dos cursos de férias, não sei se posso fazer propaganda por aqui qqer coisa com autorização dos admin fazemos isso!  :)

abrax! e obrigado pelos esclarecimentos.
Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 28 de Junho de 2009, 15:22
Blackmore,

Acho que o curso valerá a pena..., ajudará na modelagem mais realista de seus projetos.
Título: Re: Iniciando programação asm em PIC
Enviado por: Blackmore em 28 de Junho de 2009, 15:37
Viu a MP?

é como falei ... será para agregar algum conhecimento :)

abrax!
Título: Re: Iniciando programação asm em PIC
Enviado por: André Lima em 28 de Junho de 2009, 18:22
Boa Noite meus amigos....

Eu tb andei fazendo uns programinhas da faculdade em ASM, mas é claro percebi que o C é muito mais compreensivel e rapido....

Eu tb pesquisei sobre o Arduino.... Há um tópico que eu postei, que diz tudo sobre ele. Vcs viram ??? Vale a pena dar uma olhada...

Grande abraço

André Lima
Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 29 de Junho de 2009, 10:23

Acredito que programar em C é mais fácil e tem as suas vantagens, mas também não é uma panacéia!!!

Para quem está começando, e quer aprender, é importante conhecer a arquitetura do microcontrolador (registradores, blocos de memória, contadores, acesso às memórias EEPROM e Flash, conversor A/D e D/A, portas SPI e USART, ...), nada melhor que o assembler e trabalhar "direto" com o microcontrolador e acessar as suas estruturas internas.

Além disso, dependendo do tamanho da memória do microcontrolador, programar em C fica complicado devido ao tamanho dos códigos executáveis gerados. Há microcontroladores com 1K ou 2K de memória de programa, usar C seria um desperdício de precioso espaço de memória. Mas isso, certamente, depende da qualidade do compilador e de quão otimizado é, quais as parametrizações que foram feitas para esta otimização. O que requer mais experiência...

Um microcontrolador, por definição, é um processador pequeno adequado para aplicações dedicadas. As linguagens mais leves e rápidas são as melhores. Se houvesse uma linguagem tipo C, Java, Python, ... rodando direto no "microcontrolador", acho que ele não seria "micro" e não haveria o asm.

Um programa em assembler sempre é mais eficiente e menor. Pode-se eté iniciar um projeto em C e depois trabalhar no código asm gerado. Mas isso também requer experiência.

Eu pessoalmente procuro usar asm sempre que possível, só uso C se o código é complexo (ex.: interface Ethernet, protocolo TCP/IP, interfaces com cartões SD usando FAT16 ou FAT32, ...). Usar asm também ajuda a não esquecer a arquitetura do microcontolador que vc está usando.
Título: Re: Iniciando programação asm em PIC
Enviado por: Paulo_cwb em 09 de Julho de 2009, 11:22
Daniel,
Se ainda não conhece, um bom lugar pra começar é este link.
http://www.mikroe.com/pt/

La tem um livro pra baixar com muitas dicas.
´
Esses compiladores da Mikroeletronika, não gosto. nunca vi um programa tão bugado.
Mas, é minha opinião. Respeito quem usa. Eu tentei, mas não consegui.
Prefiro o "C" da CCS (www.ccsinfo.com) e o PICBASIC, da Crownhill (www.picbasic.org). Esses são testados e aprovados, não são caros e tem vários exemplos e fóruns na net.

Paulo
Título: Re: Iniciando programação asm em PIC
Enviado por: Paulo_cwb em 09 de Julho de 2009, 11:27
O Assembly é útil para algumas rotinas que requerem agilidade e/ou para ocupar pouco espaço na memória.
Então, se você vai fazer um produto que vende 10000 pçs por mês, melhor fazer em assembly, pois pode economizar meméria e alguns centavos usando um microcontrolador menor. (Centavos X 10k = bastante $$$).
Mas, para tirar proveito disso, tem que saber bem o assembly, que não é fácil.
Ou seja, em 99% dos casos, é melhor concentrar esforços para aprender BEM um compilador C ou BASIC.


Fóruns interessantes:
www.asm51.eng.br
www.sonsivri.com/forum (bem completo, em inglês).

Paulo
Título: Re: Iniciando programação asm em PIC
Enviado por: Paulo_cwb em 09 de Julho de 2009, 11:35
Bem legal.
Pelo que eu percebi é só desenhar o circuito no ISIS gerar o código no MPLAB ou noutro suporte e depois de compilar usar o .HEX no ISIS.
É nunca tinha visto um soft que fizesse esta gestão toda esquemático simulação e uso do programa dos micros.
Os programas que tenho usado (Orcad,Eagel) tem algumas destas funcionalidades mas é preciso fazer uma ginástica enorme para os usar.

O ISIS é ótimo para simular o funcionamento do PIC. VoCÊ programa em C ou BASIC (compilador), vai no ISIS e aponta pro .HEX e ele simula. Na maioria dos casos, funciona com ótima fidelidade. Só tive problemas com display de 7 segmentos, onda a "varredura" dos displays torna o ISIS lento. Fora isso, até serial RS232 já simulei, e foi bem.

Título: Re: Iniciando programação asm em PIC
Enviado por: Alebe em 09 de Julho de 2009, 13:06
Esses compiladores da Mikroeletronika, não gosto. nunca vi um programa tão bugado.

A indicação foi pelo curso em pdf disponibilizado, e não essa ou aquela plataforma.
Mas é sempre bom saber as opiniões dos mais experientes.
Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 09 de Julho de 2009, 16:23

Com relação à linguagens, posso dizer que sou experiente. Programo há mais de 25 anos, e uso C há mais de 20 anos, inclusive em programas multitarefa (vários processos num mesmo S.O ou também várias threads num mesmo processo do S.O.), programas multiusuário, com processadores VAX (da finada Digital Equipment Corporation) e sistemas operacional VMS. Também em ambiente UNIX/Solaris de Sparc Stations, da SUN. Tambem uso o Java e Python em ambientes multitarefas e comunicação em rede (TCP/IP). Também já desenvolvi muita coisa em assembler (famílas Intel 8051, 8088, 80286, 80386 e ATMEL) para controle de processos contínuos e em tempo real, ....
 
Recentemente comecei a brincar com os PICS usando assembler. Muito fácil pra quem já conhece outros processadores e arquiteturas de CPU.

Ainda assim, para microcontroladores com pouca memória (até 2KB) prefiro assembler. Sou completamente contrário ao aprendizado de microcontroladores usando linguagens de alto nível logo de início. Deve-se começar pelo assembler e aprender a arquitetura em detalhes: portas de I/O, portas seriais RS232 e RS485, interrupções e as suas incontáveis possibilidades, watch dog timer, temporizadores, contadores, comunicação via I2C, ISP, clocks internos e externos, acesso e uso de memórias internas e externas (Flash, RAM, EEPROM, ...). Isso só se conhece de fato e em detalhes se conhecer a arquitetura da CPU e para isso, o assembler é melhor.

Aprender microcontrolador sem assembler é igual a querer comer manga de garfo e faca....

Linguagens de médio e alto nível, geralmente, são melhores para lidar com grandes volumes de informações, processamentos complexos (cálculos metamáticos complexos usando formatos em ponto flutuante, bancos de dados), informações mais estruturadas e aplicações mais complexas (interfaces Ethernet, USB, sistemas de arquivos de memórias SD, unidades de disco - HDs, etc...). Ou quando há memória de programa sobrando.

Linguagens de nível mais elevado também são boas para fazer programas portáveis, que rodem em qualquer processador, é o caso de Java que roda em (qualquer) celular. Se for fazer o mesmo com o C em microcontroladores, verá que o programa é portável até certo ponto, pois haverá um momento em que o programa dependerá da arquitetura (portas seriais, memórias disponíveis, temporizadores e contadores, interfaces, velocidade de processamento, ...).
Título: Re: Iniciando programação asm em PIC
Enviado por: Paulo_cwb em 10 de Julho de 2009, 22:15
Esses compiladores da Mikroeletronika, não gosto. nunca vi um programa tão bugado.

A indicação foi pelo curso em pdf disponibilizado, e não essa ou aquela plataforma.
Mas é sempre bom saber as opiniões dos mais experientes.

Pois é. Eu já usava Picbasic mas, ao ver as funcionalidades dos compiladores da MIKRO, me animei. Infelizmente, não foi o que eu esperava.
Enfim, fica a dica.
Tem mais sobre isso no fórum sonsivri.com onde outros usuários tiveram a mesam impressão.

Título: Re: Iniciando programação asm em PIC
Enviado por: Paulo_cwb em 10 de Julho de 2009, 22:25


Ainda assim, para microcontroladores com pouca memória (até 2KB) prefiro assembler. Sou completamente contrário ao aprendizado de microcontroladores usando linguagens de alto nível logo de início. Deve-se começar pelo assembler e aprender a arquitetura em detalhes: portas de I/O, portas seriais RS232 e RS485, interrupções e as suas incontáveis possibilidades, watch dog timer, temporizadores, contadores, comunicação via I2C, ISP, clocks internos e externos, acesso e uso de memórias internas e externas (Flash, RAM, EEPROM, ...). Isso só se conhece de fato e em detalhes se conhecer a arquitetura da CPU e para isso, o assembler é melhor.

Linguagens de médio e alto nível, geralmente, são melhores para lidar com grandes volumes de informações, processamentos complexos (cálculos metamáticos complexos usando formatos em ponto flutuante, bancos de dados), informações mais estruturadas e aplicações mais complexas (interfaces Ethernet, USB, sistemas de arquivos de memórias SD, unidades de disco - HDs, etc...). Ou quando há memória de programa sobrando.


Concordo com você.
Para quem está obrigado a usar um microcontrolador com pouca memória, o assembly é meio obrigatório.
Também, quem trabalha exclusivamente nessa área de firmware (ou mesmo em eletrônica digital), normalmente poderá dedicar mais tempo e usar melhor o assembly.

No meu caso - e no de muitos usuários - preciso fazer diferentes tipos de sistemas, com baixo volume de produção e rápida implantação. Aí, não tenho muito como escapar de um compilador C ou Basic (a linguagem não importa tanto... importa mais o código HEX que o compilador produz).
Esses compiladores normalmente tem rotinas prontas e exemplos usando timers, watchdog, acesso a memória externa, etc. E tem os fóruns para ajudar.
Claro que, em certos casos, quem souber assembly vai descascar o abacaxi mais fácil e rapidamente.

Tudo é questão de equalizar tempo disponível, qual o resultado que se quer obter e qual o material (microcontrolador) disponível. Mas sempre, em qualquer linguagem, vai precisar paciência e perseverança.

Paulo
Título: Re: Iniciando programação asm em PIC
Enviado por: Paulo_cwb em 10 de Julho de 2009, 22:35
Boas galera.
... queria começar a programar o mesmo o unico conhecimento que tenho em programação de microcontroladores é em 8085 mas ja estive a olhar para alguns exemplos do asm do pic e fiquei meio predido.O micro que estou a tentar programar é um PIC16F690 nem sei se sera o mais facil.

Algum colega tem ideia de por onde devo começar?O que devo ler os conceitos basicos mesmo.
Desde ja obrigado.

Cara, vou te falar um negócio que muitas vezes passa despercebido, mas que, dependendo da aplicação, é FATAL para teu projeto: o PIC é sensível a ruídos (16F87x, 18F45x, etc.). Então, procure pesquisar isso também, nos datasheets. Resistores de pull-up em conjunto com um resistor de 100R, nas entradas digitais que vão ler teclas ou sensores digitais, podem te livrar de probelmas indesejáveis.
Da mesma forma, colocar um indutor de modo comum nos cabos mais longos (aquele ferrite ao redor do cabeamento), vai filtrar muita sujeira.
Uma outra dica é, na fonte de alimentação, antes do regulador de 5 Vcc (se você usar um 7805, por exemplo), colocar um indutor em série, de uns 50uH, pelo menos.
Isso tudo, junto com um bom layout de PCI, faz MUITA diferença nos projetos para uso em ambientes industriais, por exemplo.

Caso contrário, o projeto pode funcionar muito bem no protótipo e, depois no produto final, de fazer passar vergonha  :'(
Ou ainda, dependendo do lote de PIC que você pegar, pode funcionar ou não.

Paulo
Título: Re: Iniciando programação asm em PIC
Enviado por: fcamargo em 11 de Julho de 2009, 23:32
meu curso tá andando..

olha ai..

é besteira.. mas tá andando..

eu já programo em C a anos.. mas nunca tinha mexido com PIC.. e estou gostando pacas..

seguinte..
tenho mais 60 placas dessa PICLAB (sem os componentes)
vou colocar algumas na mão do JOSt no shopping.. desmontada ou montada..
se alguem ai quiser aprender a usar esse cara..
essa plcaquinha é show..
PICLAB 40 é um LAB pra programaçÃo..
os pics usados por elas são os de 40 pinos..
16f877A ou 4550 (usb)

vou colocar na mão do JOST, se alguem quiser.. posso mandar elas montadas ou em forma de KIT pro forum vender e levantar mais um capital.
Título: Re: Iniciando programação asm em PIC
Enviado por: FB em 21 de Janeiro de 2010, 16:05
... posso mandar elas montadas ou em forma de KIT pro forum vender e levantar mais um capital.

Olá Camargo.
Quanto sairia uma placa dessas sem os componentes?

Abraço.
Título: Re: Iniciando programação asm em PIC
Enviado por: F.Gilii em 21 de Janeiro de 2010, 16:08
Betoni,

O Sr. Fabio Camargo não participa mais deste fórum.
Título: Re: Iniciando programação asm em PIC
Enviado por: FB em 21 de Janeiro de 2010, 17:21
Esses compiladores da Mikroeletronika, não gosto. nunca vi um programa tão bugado.

Olá aos amigos do forum.
Quanto aos comentários sobre programar em C para Pic, deixo um pouco de minha experiencia, embora não seja o relativo ao tópico, também não pretendo fazer propaganda.
Já tentei aprender asm, mas é um pouco complicado para quem não teve nenhuma base. Desisti, ficando um bom tempo longe.

Em 2008, conheci o CCS, quebrei muito a cabeça com ele e quase nenhum programa, rodava no Isis. Mesmo assim, não deixei de tentar. Investi em vários livros em português, que hoje posso afirmar com certeza que não são mais do que um curso básico de C e alguns exemplos (esses sim "bugados"!) vindos do help do próprio compilador (quanto desperdicio de dinheiro).

Parei novamente, quando no fim de 2009, resolvi tentar mais uma vez. Neste tempo meus conhecimentos de lógica e linguagem C, já tinham sido alimentados pela faculdade.
Por aí, entra o mikroC. No começo, foi dificil, pois os comandos do CCS são diferentes (vale lembrar que lógica é lógica e C é C). Umas buscas na internet, exemplos, e simulações quase em tempo real no Isis, me animaram.

O primeiro programa, rodou perfeito tanto no Isis quanto no protoboard. Foi então que resolvi comprar uma apostila sobre o dito compilador e programação para pic.

O compilador cheio de bibliotecas prontas (isto nos deixa mal acostumados), facilita muito. Mas surgiram os problemas. Um pic ou qualquer outro que seja, é cheio de recursos como o professor minilathe esclareceu. É como entrar em uma fabrica enorme sozinhos e ter que colocar ela pre funcionar sem a ajuda de ninguém (veja o "trampo"! e ainda pra quem nunca teve contato! mas é bem por aí).

Até este ponto, saber o asm, lhe dá o profundo conhecimento do hardware à ser trabalhado, e facilita sua vida com o C depois. Afirmo isto, pois tenho amigos que programam em asm, e a convivencia nos ensina muito, mas não é o meu caso.

Certa vez um colega disse que para usar de boa maneira o pic, seria preciso ler e entender o datasheet. Não raciocinei na hora, mas hoje com certeza esta leitura lhe abre as portas afim de lhe mostrar o rumo para uma programação, talvez não à mais rápida em processamento, mas eficiente. O datasheet, tem seus inconvenientes, muitas vezes é confuso.

No site da mikroe, não tem muito tempo, disponibilizaram gratuitamente (sendo gratuito, não é propaganda!) e com mais de 100 paginas, um livro online que mostra este lado de como é o pic (o modelo escolhido foi o 16F877) por dentro e sua programação em asm. Ele assemelha-se à um gigante datasheet, com imagens que mudam totalmente a forma de ver os perifericos, interrupções, etc. Este livro aliado à linguagem C, afirmo me incentivou e muito.

Que o professor minilathe, nos esclareça, mas interrupções em um pic, sempre doi no calcanhar de qualquer um. Foi com o mikroC que pude fazer a primeira e perfeita simulação no isis e protoboard, ele não é perfeito, tem lá seus bugs, mas com um pouco de lógica é possivel resolver certos problemas.

Quanto um pic ser cheio de recursos ou qual é o melhor para iniciar, cabe ao programador ter em mente o que deseja ser realizada na tarefa e escolher um que será capaz de executa-las, atingindo suas expectativas. Um Pic16f628a é barato e fácil de encontrar, sendo o mais comum para iniciantes. Outra dica é o 16F88, que apesar de 18 pinos e muito parecido com o 628A, tem conversor AD, porém não muito comum.

Não sou programador de pic, estou iniciando. Fico satisfeito por encontrar a ferramenta adequada ao aprendizado, e mais ainda em poder transmitir aos membros do forum. Como disseram cada qual sua opinião, esta é a minha.

Grande abraço à todos.
Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 21 de Janeiro de 2010, 19:11
Betoni,

Um conselho: acho que as suas contribuições são pertinentes, mas note que a mensagem que voce respondeu tem mais de 6 meses, não é usual esse tipo de procedimento, normalmente as conversas e discussões são em datas próximas (acho que 1 semana / 15 dias no máximo).

Provavelmente a sua resposta não terá contribuído muito com as pessoas que estavam discutindo um tema. Muitas discussões são relativas a resolução de um problema com "data de vencimento", a pessoa que perguntou ou comentou pode nem estar mais acessando o Forum.... :(   é como as coisas funcionam....
 
De qualquer modo, as interrupções por um lado são dificeis de entender, mas são ferramentas poderosas. Mas é como voce falou, é necessário entender a arquitetura do processador para poder tirar proveito de todas as suas facilidades (conversor A/D, USART, saída PWM, contadores, memória EEPROM, interface I2C, interface USB,...).

Um livro muito interessante, e em português: "Microcontroladores PIC18 - Aprenda a Programar em Linguagem C", do Alberto Noburo, Editora Érica. Aborda o PIC18F4550, os conceitos podem ser extendidos para o PIC18F2550. Abrange o acesso a todos os periféricos deste microcontrolador em linguagem C (EEPROM, USB, USART, Memória RAM extendida, I2C, WDT, Interrupção, SPI, acesso a memórias SD, ...), usando compilador C gratuito da Microchip. Eu andei usando e gostei....
Título: Re: Iniciando programação asm em PIC
Enviado por: Blackmore em 24 de Janeiro de 2010, 01:45
minilathe

Mestre, acho que alguns dos ultimos posts deste tópico são uma ótima discussão, e caberia tranquilamente em outro tópico (caso os moderadores vejam, fica a dica para separar os ultimos posts em um novo topico !!).
Tu fez a indicação do livro de programação em C18, poxa estou na "sede" de comprar este livro (recomenda alguma loja que esteja com o preço mais em conta?)
Eu já utilizo o CCS a uns 2 anos, desde que comecei a faculdade, e recentemente fiz um upgrade para uma versão mais atual, quero fazer algum tipo de trabalho ou estudo com comunicação USB, e fazer o supervisório no pc tb!!
O uso de interrupções é bacana e muitas vezes necessários, mas eu não consigo entender como que algumas funcionam, por exemplo a interrupção para comunicação serial, interrupção para AD ...
Mas estou com vontade de conhecer outros compiladores, o C18 (Microchip) é um dos eleitos e o MikroC tb, porém não fui muito feliz com este ultimo, ele instala mas não compila em minha máquina, ainda não descobri o por quê, vou deixar ele dormindo um pouco e depois mexo de novo com ele.

abrax!
Título: Re: Iniciando programação asm em PIC
Enviado por: minilathe em 24 de Janeiro de 2010, 09:33
Blackmore,

Tu fez a indicação do livro de programação em C18, poxa estou na "sede" de comprar este livro (recomenda alguma loja que esteja com o preço mais em conta?)
Eu já utilizo o CCS a uns 2 anos, desde que comecei a faculdade, e recentemente fiz um upgrade para uma versão mais atual, quero fazer algum tipo de trabalho ou estudo com comunicação USB, e fazer o supervisório no pc tb!!
O uso de interrupções é bacana e muitas vezes necessários, mas eu não consigo entender como que algumas funcionam, por exemplo a interrupção para comunicação serial, interrupção para AD ...
Mas estou com vontade de conhecer outros compiladores, o C18 (Microchip) é um dos eleitos e o MikroC tb, porém não fui muito feliz com este ultimo, ele instala mas não compila em minha máquina, ainda não descobri o por quê, vou deixar ele dormindo um pouco e depois mexo de novo com ele.

Eu comprei na Saraiva, em Sampa, também achei caro, mas como eu tb precisava de uma referência rápida (estou cursando doutorado) e o livro ajudou muito... Este livro se baseia bastante, e se parece, com a documentação da Microchip (que eu consultei em paralelo), mas nem seria necessário consultar. Mas, o livro vai um pouco além, tem alguns exemplos e o autor conseguiu organizar e abranger todos os recursos do PIC18F4550 num volume só.

Tenho usado o C18, da Microchip, e não tenho do que reclamar  :)

Meu projeto, com PIC18F2550 usava Ethernet / TCP-IP e precisava processar mensagens XML e consegui trabalhar com um buffer de RAM de 1Kbyte (há 2KBytes no PIC18F2550), funcionou muito bem. Usei muitas instruções de cópia, escrita e leitura da RAM extendida e a USART.

O C18 é usado dentro do IDE da MIcrochip e pode usar o simulador dentro dele, muito prático, dá até para simular a USART, misturar assembler e C...