Página 1 de 1
Projeto multi arquivos *.C and *.h.

Enviado:
19 Fev 2020 09:48
por fabim
Dia pessoal!!
Estou eu aqui com um arquivo main.c gigante no CCS.
Estou a dois dias tentando entender como esse cara lida com diferentes arquivos.
Se eu separar as funções que acessam os periféricos do pic24, sou obrigado a incluir o prototipo *.h do core, porém o compilador reclama, pois, lá no main ja existe esse prototipo de processador.
Então eu crio um .h para esse .c e nesse .h incluo o prototipo, ai o erro muda, mas continua não funcionando; Inverto a lógica e o problema se mantem.
Tento usar a lógica do keil, usando o dito extern, e nada feito, ele não reconhece essa lógica.
Eu creio estar com vicios e por isso não estou conseguindo raciocinar corretamente como criar esse projeto.
Alguém pode me ajudar com isso?
/obrigado!
Re: Projeto multi arquivos *.C and *.h.

Enviado:
19 Fev 2020 10:22
por eletroinf
O que eu posso te dizer é que esse compilador aí não segue a lógica tradicional do C, inclusive tem coisas como include arquivo.c e outras blasfêmias.
Se quer mesmo continuar usando ele e desdobrar o seu arquivo, vai precisar pesquisar sobre como fazer isso especificamente para o CCS, esquecendo o senso comum de C.
Re: Projeto multi arquivos *.C and *.h.

Enviado:
19 Fev 2020 12:31
por fabim
eletroinf escreveu:O que eu posso te dizer é que esse compilador aí não segue a lógica tradicional do C, inclusive tem coisas como include arquivo.c e outras blasfêmias.
Se quer mesmo continuar usando ele e desdobrar o seu arquivo, vai precisar pesquisar sobre como fazer isso especificamente para o CCS, esquecendo o senso comum de C.
Rapaiz, nem me fale, mas essa porqueira é usada pela empresa a 12 anos e as duas licensas são validas, direto os ohmi tão aqui escafunchando tudo e procurando coisas erradas..
Então, é o que temos para o almoço...
Pena, nem vou mais me preocupar com isso, vou fazer um arquivo gigante mesmo!!! rsrsrs
Re: Projeto multi arquivos *.C and *.h.

Enviado:
19 Fev 2020 13:37
por milordy
fabim escreveu:eletroinf escreveu:O que eu posso te dizer é que esse compilador aí não segue a lógica tradicional do C, inclusive tem coisas como include arquivo.c e outras blasfêmias.
Se quer mesmo continuar usando ele e desdobrar o seu arquivo, vai precisar pesquisar sobre como fazer isso especificamente para o CCS, esquecendo o senso comum de C.
Rapaiz, nem me fale, mas essa porqueira é usada pela empresa a 12 anos e as duas licensas são validas, direto os ohmi tão aqui escafunchando tudo e procurando coisas erradas..
Então, é o que temos para o almoço...
Pena, nem vou mais me preocupar com isso, vou fazer um arquivo gigante mesmo!!! rsrsrs
Faz uns 3 anos que não utilizo mais CCS,na epoca eu integrava com MPLABX,pq editor do CCS era muito ruim,para utilizar varios arquivos,o jeito era ter apenas 1 ".C",e o resto tudo ".H" ,no ".H" colocava o que seria do próprio ".H" e do ".C",não é modo correto de usar em C,porém era muito melhor que um arquivo muito grande e sempre utiliza #ifndef para pode chamar em todo os arquivos necessários sem ter erro na hora de compilar.
#ifndef NOMEDOARQUIVO_H
#define NOMEDOARQUIVO_H
//CODIGO AQUI DO .H e do .C
#endif
Re: Projeto multi arquivos *.C and *.h.

Enviado:
19 Fev 2020 17:27
por xultz
Fábio, meu último projeto que fiz com CCS (há uns 5 anos atrás) eu dividi ele em vários arquivos, mas daquele jeito CCSzado de ser.
Fiz assim:
Criei as funções que precisava, e quando achava que tava na hora de juntar várias em outro arquivo, criava um arquivo .h e um .c
No arquivo .c eu colava as funções, e no arquivo .h eu colocava os protótipos das funções, e no final fazia um #include do arquivo .c
E no arquivo principal, fazia um #include desse .h
É muito importante que cada função tenha nome único (não dá prá ter duas funções com mesmo nome de jeito nenhum, enquanto num compilador que preste existe esta possibilidade), e eu criei mais um arquivo .c declarando as variáveis globais (que tive que usar muitas, já que o conceito de extern fica sem nexo se você faz um include de um arquivo .c)
O resultado é uma gambiarra horrível, porque pro compilador acaba virando um arquivo .c somente, mas na hora de gerenciar o código-fonte, pelo menos tá tudo separado em vários arquivos.