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.