AJUDA MPLAB + C18.

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

AJUDA MPLAB + C18.

Mensagempor fabim » 30 Abr 2009 11:39

Alguém tem pratica com esses dois caras ?

Instalei o MPLAB, Instalei esse C18, configurei tudo que ele dizia que era erro.

Mesmo assim não worka nem a purrete.

Alguém pode me dar um helpe ?

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Sergio38br » 30 Abr 2009 14:14

Vc instalou o C18 em c:\MCC18???Quais os erros??

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor fabim » 30 Abr 2009 15:22

intão.
Eu nunca mechi com este cara..
Seguinte eu vou no project wizard.
Seleciono modelo do pic
Seleciono o compilador a ser utilizado MCC18
Seleciono o patch para colocar o projeto.

Dou ok, e tudo belz

só que.
Ele não cria o main sozinho.
Se eu crio o main.C na unha, vou com o botão direito na pasta sources alí do lado no project explire, dou um ADD, e seleciono esse main.C.

Quando mando compiladr, com um simples while(1);

Ele da um erro dizendo que não foi encontrado o

main.o ...

Putz, é froid,

fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Sergio38br » 30 Abr 2009 15:47

Bem vamos la,

1) vai no menu view e o item project deve estar ticado.
2) seu main.c deve estar em source files.
3) em hearder files acrescente o arquivo .h que corresponde ao micro que vc esta usando e tambem os arquivos .h que vai usar, string.h , stdio.h ....
4) em library files acrescente o arquivo lib. correspondente ao seu micro
5) em linker script acrescente o arquivo .lkr correspondente, veja que tem diferente tipo para um mesmo processador, alguns que permitem as instruções extendidas , outro que são para debuger..
6) diferente do mikroC e mikroP vc tem de definir os fuzes, tem no help um doc correspondente as fuzes, esta em help/topics/ procure PIC18 Config Settings. Copie o que corresponde ao seu micro, e edite as opções desejadas..
ex.:
Código: Selecionar todos
//*****************************************************************************
//=============================================================================
// Compiled using MPLAB-C18 V3.16
// Include Files: P18F66J10.H,
//=============================================================================


//----------------------------------------------------------------------------

#include <p18f66j10.h>
#include <delays.h>
#include <sw_gps.h>
#include <sw_uart2.h>
#include <string.h>


//****************************************************************************

//Background Debugger Enable bit:
#pragma config DEBUG = ON
// Background debugger enabled; RB6 and RB7 are dedicated to In-Circuit Debug 
//#pragma config DEBUG = OFF
// Background debugger disabled; RB6 and RB7 configured as general purpose I/O pins 

//*****************************************************************************

//Extended Instruction Set Enable bit:
#pragma config XINST = OFF
//Instruction set extension and Indexed Addressing mode disabled (Legacy mode) 
//#pragma config XINST = ON
//Instruction set extension and Indexed Addressing mode enabled

//***************************************************************************** 

//Stack Overflow/Underflow Reset Enable bit:
//#pragma config STVREN = OFF // Reset on stack overflow/underflow disabled 
#pragma config STVREN = ON    // Reset on stack overflow/underflow enabled

//***************************************************************************** 

//Watchdog Timer Enable bit:
#pragma config WDTEN = OFF  // WDT disabled (control is placed on SWDTEN bit) 
//#pragma config WDTEN = ON // WDT enabled

//****************************************************************************** 

//Code Protection bit:
//#pragma config CP0 = ON // Program memory is code-protected 
#pragma config CP0 = OFF  // Program memory is not code-protected

//******************************************************************************* 

//Fail-Safe Clock Monitor Enable bit:
#pragma config FCMEN = OFF  // Fail-Safe Clock Monitor disabled 
//#pragma config FCMEN = ON // Fail-Safe Clock Monitor enabled

//-----------------------------------------------------------------------------

//Two-Speed Start-up (Internal/External Oscillator Switchover) Control bit:
#pragma config IESO = OFF  // Two-Speed Start-up disabled 
//#pragma config IESO = ON // Two-Speed Start-up enabled 

//-----------------------------------------------------------------------------
//Default/Reset System Clock Select bit:
//#pragma config FOSC2 = OFF // INTRC enabled as system clock when OSCCON<1:0> = 00 
//#pragma config FOSC2 = ON // Clock selected by FOSC1:FOSC0 as system clock is enabled when OSCCON<1:0> = 00
//-----------------------------------------------------------------------------
//Oscillator Selection bits:
#pragma config FOSC = HS // HS oscillator 
//#pragma config FOSC = HSPLL // HS oscillator, PLL enabled and under software control 
//#pragma config FOSC = EC // EC oscillator, CLKO function on OSC2 
//#pragma config FOSC = ECPLL // EC oscillator, PLL enabled and under software control, CLK function on OSC2 

//-----------------------------------------------------------------------------

//Watchdog Timer Postscaler Select bits:
//#pragma config WDTPS = 1      // 1:1 
//#pragma config WDTPS = 2      // 1:2 
//#pragma config WDTPS = 4      // 1:4 
//#pragma config WDTPS = 8      // 1:8 
//#pragma config WDTPS = 16     // 1:16 
//#pragma config WDTPS = 32     // 1:32 
//#pragma config WDTPS = 64     // 1:64 
//#pragma config WDTPS = 128    // 1:128 
//#pragma config WDTPS = 256    // 1:256 
//#pragma config WDTPS = 512    // 1:512 
//#pragma config WDTPS = 1024   // 1:1024 
//#pragma config WDTPS = 2048   // 1:2048 
//#pragma config WDTPS = 4096   // 1:4096 
//#pragma config WDTPS = 8192   // 1:8192 
//#pragma config WDTPS = 16384  // 1:16384 
#pragma config WDTPS = 32768 // 1:32768 

//-----------------------------------------------------------------------------
//ECCP2 MUX bit:
//#pragma config CCP2MX = ALTERNATE // ECCP2/P2A is multiplexed with RE7 
#pragma config CCP2MX = DEFAULT     // ECCP2/P2A is multiplexed with RC1 

//-----------------------------------------------------------------------------

void main(void);


main(void){
   
   
   // seu codigo aqui
   
   
}


[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor fabim » 02 Mai 2009 19:20

Sergio, desculpa pela demora.

Viu mais que porqueira é esta de "main.o", que ele fica reclamando que não encontra?

No mais, suas dicas deram certas, mais o tale do main.o ta me matando de réiva..

fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Sergio38br » 02 Mai 2009 22:49

Copia o que aparece de erros e cola aqui
[ ]`s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor fabim » 04 Mai 2009 11:31

eu acho que encontrei o erro.

O MPLAB ESTA RECONHECENDO O MODELO P18F14K50, mais o mcc18 não tem o .lkr referente a este modelo, e o include que eu consegui deste modelo foi na net e não é compativel...
Onde eu consigo o 18f14k50.lkr e o 18f14k50.inf e o 18f14k50.h ???

JA revirei tudo, mais nenhum da certo, e pelo que pude observar o MCC18 aceita adição de novos modelos, apenas com os 3 arquivos que mensionei.

Abraços, fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Sergio38br » 04 Mai 2009 12:47

Qual versão do C18 vc esta trabalhando??
Na minha maquina tenho estes arquivos.
vou mandar no seu emala

[ ]'s
Sergio


P.S. foi no gmail
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor fabim » 04 Mai 2009 17:00

Código: Selecionar todos
Release build of project `C:\USB HID C ANSI MPASMC18\USB HID C ANSI MPASMC18.mcp' started.
Mon May 04 16:57:55 2009
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\USB HID C ANSI MPASMC18\MAIN.o".
Clean: Done.
Executing: "C:\MCC18\bin\mcc18.exe" -p=18F14K50 /i"C:\MCC18" "MAIN.C" -fo="MAIN.o" -w3 -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
Executing: "C:\MCC18\bin\mplink.exe" /l"C:\MCC18\lib" "project.lkr" "MAIN.o" "C:\MCC18\lib\p18F14K50.lib" /z__MPLAB_BUILD=1 /o"C:\USB HID C ANSI MPASMC18\USB HID C ANSI MPASMC18.cof" /M"C:\USB HID C ANSI MPASMC18\USB HID C ANSI MPASMC18.map" /W
MPLINK 4.1, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - could not find file 'MAIN.o'.
Errors    : 1

Link step failed.
----------------------------------------------------------------------
Release build of project `C:\USB HID C ANSI MPASMC18\USB HID C ANSI MPASMC18.mcp' failed.
Mon May 04 16:57:57 2009
----------------------------------------------------------------------
BUILD FAILED


Este cara que ele está procurando e não acha.

fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor ivan » 04 Mai 2009 21:13

Fabim,

O main.o é a o arquivo(saída) objeto da compilação do seu projeto.
Reparei q vc usa " "(espaços em branco) no nome do diretório, tenta
retirá-los e vê o q acontece. Acredito q seja isto.

Ivan
"A mente que se abre a uma nova idéia jamais volta ao seu tamanho original." (Albert Einstein).
Avatar do usuário
ivan
Word
 
Mensagens: 618
Registrado em: 12 Out 2006 21:27

Mensagempor fabim » 04 Mai 2009 21:31

ivan escreveu:Fabim,

O main.o é a o arquivo(saída) objeto da compilação do seu projeto.
Reparei q vc usa " "(espaços em branco) no nome do diretório, tenta
retirá-los e vê o q acontece. Acredito q seja isto.

Ivan


Fora os espaços que eu vou testar amanhã lá na firma.

Executing: "C:\MCC18\bin\mcc18.exe" -p=18F14K50 /i"C:\MCC18" "MAIN.C" -fo="MAIN.o" -w3 -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-

Executing: "C:\MCC18\bin\mplink.exe" /l"C:\MCC18\lib" "project.lkr" "MAIN.o"

Eu que não entendi direito, ou o MPLAB, está procurando o MAIN.C dentro do diretorio do MCC18 ?

Será que eu configurei os paths incorretamente ??

fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Kleber » 04 Mai 2009 21:45

Veja se ajuda em algo.
http://asm51.eng.br/phpBB/viewtopic.php ... ght=#52154

No C18 praticamente direcionei todos os caminhos manualmente.
Kleber
Kleber
Nibble
 
Mensagens: 99
Registrado em: 17 Out 2006 20:41
Localização: São Paulo

Mensagempor v.vicente » 04 Mai 2009 23:35

Não sei se posso ajudar, mas também já ganhei uns cabelinhos brancos com o C18.
Quando criares um projeto novo ... vá no menu "Project">"Build Options">"Project".

Em "Show directories for:" seleciona "Include Search Path" clica em New e adiona o patch das includes que por padrão é "C:\MCC18\h"
Novamente em "Show directories for:" seleciona "Library Search Patch" clica em New e adiona o patch das libraries por padrão "C:\MCC18\lib"
e finalmente em "Show directories for:" seleciona "Linker-Script Search Patch" e adiona o patch dos arquivos de linker "C:\MCC18\lkr" ...

Sei que vc já deve ter feito isso mas não esquece de adionar na janela de Projeto o arquivo de linker do PIC q vc ta utilizando ...
v.vicente
 
Mensagens: 4
Registrado em: 05 Fev 2009 18:54

Mensagempor fabim » 04 Mai 2009 23:53

meu, é froid, amanhã vou rever tudo lá na firma.
É tão lindo usar o MPLAB para ASM, sem frescura, sem encheção, mais este C18 num me desce.
Como não tem cão, vou ter que caçar com essa anarquia mesmo.
O pessoal da mikroE, me disseram que vão incluir este porqueira deste modelo no próximo update do mikroC, aí perguntei um prazo previsto....

Mês 8/.....12.. a vão pros %#%#%#$%#&¨&%¨$#%#

O primeiro mikroC q eu utilizei, quando fiz propaganda aqui no forum e todo mundo acatou, era 3.2...

O primeiro que eu instalei e nem programava em C, ainda era versão 1.8.1.

O mikropascal eu comecei no 2.01..

aff... fazer o que né..

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor fabim » 05 Mai 2009 12:20

PROBLEMAS RESOLVIDOS.
Passos executados.
Desinstalei o MPLAB, e o C18.
Executar > regedit
Não deixei nem sompra de nenhum dos dois no registro.

Instalei o MPLAB ultima versão,
Instalei o MCC18, que um amigo aqui do furum me arrumou "obs.; selecionei todos os select´s na instalação"
Reiniciei a máquina, fui no setup e apontei para os paths LIB, H, LKR.
Fechei o programa, abri novamente.
Criei um projeto com o 18f14k50, mandei compilar, pronto 100% works..

AFF.

Agóra tem uma coisa que esta me intrigando.

No compilador que eu estou habituado a trabalhar.

VOLATILE SHORT BLABLA ABSOLUTE ENDEREÇO_DA_RAM
Estou dizendo o seguinte para o compilador.

VOLATILE SHORT BLABLA
COMPILADOR ESTA VARIAVEL É VOLATIL E INVIOLAVEL FAZ FAVOR DE NÃO USAR ELA PRA NADA, APENAS O MEU PROGRAMA PODE UTILIZAR ESTA VARIAVEL.
ABSOLUTE 0X0200
E FAZ FAVOR, ELA VAI ALOCAR O ENDEREÇO 0X0200 DA RAM

Estou lendo o help do C18, e me deparei com o
#Pragma idata
#pragma udata
volatile near
volatile far


Só que os exemplos das diretivas são tão vagos, que não há possibilidades de eu poder executar a lógica..

Alguém tem prática com isso ?

vai ser aplicado à adaptação de código para estas definições de ram.
Código: Selecionar todos
   // Buffer addresses in USB Ram
#define BuffEP0OUTAddress  (0x0410)
#define BuffEP0INAddress  ( BuffEP0OUTAddress + USB_BUFF_SIZE)
#define BuffEP1OUTAddress ( BuffEP0INAddress  + USB_BUFF_SIZE)
#define BuffEP1INAddress  ( BuffEP1OUTAddress + USB_BUFF_SIZE)

#define UsbStringBufferAddress ( BuffEP1INAddress  + USB_BUFF_SIZE)


    // the USB buffer descriptors


volatile short    BDEP0OUTStat  absolute 0x0400;
volatile short    BDEP0OUTCnt   absolute 0x0401;
volatile int      BDEP0OUTAdr   absolute 0x0402;

volatile short    BDEP0INStat   absolute 0x0404;
volatile short    BDEP0INCnt    absolute 0x0405;
volatile int      BDEP0INAdr    absolute 0x0406;

volatile short    BDEP1OUTStat  absolute 0x0408;
volatile short    BDEP1OUTCnt   absolute 0x0409;
volatile int      BDEP1OUTAdr   absolute 0x040A;

volatile short    BDEP1INStat   absolute 0x040C;
volatile short    BDEP1INCnt    absolute 0x040D;
volatile int      BDEP1INAdr    absolute 0x040E;


    // the USB buffers themselves
volatile short BuffEP0OUT[USB_BUFF_SIZE] absolute BuffEP0OUTAddress;
volatile short BuffEP0IN[USB_BUFF_SIZE]  absolute BuffEP0INAddress+1;
volatile short BuffEP1OUT[USB_BUFF_SIZE] absolute BuffEP1OUTAddress+1;
volatile short BuffEP1IN[USB_BUFF_SIZE]  absolute BuffEP1INAddress;


Abraços, fabim.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron

x