Página 1 de 1

Programação em C para PIC18f4580

MensagemEnviado: 21 Ago 2007 23:45
por filipespc
Boa noite,

Eu trabalho com programação em C.
Até agora, os únicos PIC's que eu já tinha trabalhado tinham sido o PIC18f452 e o PIC18f252.
Estava pesquisando um PIC com módulo para comunicação CAN (vai ser usada para comunicar vários módulos de um sistema de injeção eletrônica) e achei o PIC18f4580. Fiquei muito interessado, me pareceu bem mais completo que o PIC18f452, tendo várias funcionalidades a mais.

O problema é que eu trabalho no compilador PCW - PICC, e acho que algumas funcionalidades do PIC18f4580 não estão previstas nesse compilador. Além disso, procurei na pasta "DEVICES" e não tem um PIC18f4580.h (só um PIC18f458.h), o que eu imaginei significar que não suporta esse PIC.

Eu estava querendo saber, então, se existe um compilador em C que suporte melhor essas funcionalidades (ou talvez até uma versão mais nova do PCW).

Outra dúvida é quanto a material de estudo para essas funções em C. Eu estudei programação para microcontroladores em C no livro do Fábio Pereira, e lá não fala sobre várias funcionalidades, como, por exemplo, a comunicação CAN.

Grato desde já pela atenção, Filipe

MensagemEnviado: 21 Ago 2007 23:57
por microeletronica
Cara,

Utilize o C18 da Microchip. Instale o Compilador gratis da microchip e veja a documentacao deles..

As funcoes ja vem prontas funcionando.
Posso te ajudar nas funcoes, se quiser...

Sobre o PCW, vc pode fazer o arquivo para o 4580 funcionar...

MensagemEnviado: 22 Ago 2007 00:00
por microeletronica
Existem funcoes para J1939 por exemplo, que ja estao prontas pra sua aplicacao... E funcionam muito bem.

C18

MensagemEnviado: 22 Ago 2007 00:02
por filipespc
Muito obrigado pela dica microeletrônica!
Vou tentar esse C18...
Uma única pergunta (desculpe a ignorância), o que é j1939?
Grato, Filipe

MensagemEnviado: 22 Ago 2007 00:22
por microeletronica
J1939 eh um padrao utilizado na industria automotiva, pra mensagens em CAN. Ele padroniza varias coisas, mensagens, nomes, dados... Cabos, etc..

Com as rotinas prontas do C18, dah pra enviar uma mensagem no CAN facil assim:


Código: Selecionar todos

      unsigned char buffer[8];
      Msg.Priority = J1939_INFO_PRIORITY;
      Msg.PDUFormat = J1939_PF_TEST;
      Msg.DestinationAddress = 0x01;

      memset((char*)Msg.Data, 0x00, 0x08);
      
      Msg.DataLength    = 8;
      strcpy((char*)Msg.Data, (char*)buffer);

      timeOut=50;
      while (J1939_EnqueueMessage( &Msg ) != RC_SUCCESS)
      {
         if (--timeOut==0)
            break;
      }
      J1939_Poll(20);


MensagemEnviado: 22 Ago 2007 00:32
por filipespc
Putz, isso deve me facilitar muito as coisas...
Muito obrigado mesmo!
Abraço, Filipe

MensagemEnviado: 22 Ago 2007 00:39
por microeletronica
De uma olhadinha em http://ww1.microchip.com/downloads/en/D ... 51297f.pdf e http://ww1.microchip.com/downloads/en/A ... 00930a.pdf

Vai direto nas paginas de exemplo, em especial do segundo datasheet...
As funcoes sao disponibilizadas pela microchip... Funciona muuuuito bem!

e o source code: http://ww1.microchip.com/downloads/en/A ... /J1939.zip

MensagemEnviado: 22 Ago 2007 08:48
por buiz
Olá,

Vc deve estar utilizando o PCW 3.2 passe para o PCW 4 que tem o 18F4580.

Buiz.

Olá

MensagemEnviado: 23 Ago 2007 14:41
por filipespc
Buiz,

Eu tenho o PCW versão alternativa. Vou ver se acho o PCW 4
O problema é também a falta de documentação... O livro do Fábio Pereira não traz algumas funcionalidades do PIC18f4580. O C18 me pareceu bem documentado.
O único problema é que o C18 parece gravar os pics mais novos (dentres os quais se inclui o PIC18f4580, acredito eu) só durante 60 dias na student version (que é a que eu tenho).

Outro problema que eu estou encontrando é que parece que a minha gravadora (mcflash) não grava PIC18f4580, só o PIC18f458
Eu fui atras de algumas gravadoras diferentes que gravassem esse PIC, e só achei a ICD2, que é muito cara (pouco mais de R$ 250).
Tem alguma alternativa barata de gravadora (que grave o PIC18f4580) e que, de preferência, possibilite a gravação in-circuit?

Muito obrigado pelas dicas que vcs tem dado.
Filipe

MensagemEnviado: 24 Ago 2007 21:34
por microeletronica
Eu nao conheco mais barato.
O ICD2 eeh o mais em conta.

Voce acha alguns schs gratis na internet de icd2 seriais, que ficariam mais baratos.
Algo pronto, pra comprar, o ICD2 eh o mais barato pra esse micro.

;)