El número indica la dirección que tiene el registro en el mapa de memoria del pic, no tiene nada que ver que un registro sea de 8 bits.
Si tuviese un registro en última dirección de un mapa de 0xFFFF posiciones, la dirección de dicho registro sería 0xFFFE sin importar que el resto de los registros sea de 8 bits.
No encuentro ningún archivo de cabecera para 18F250
Llevas razon compañero. Se corresponde con el mapeo de la memoria ahora en el data
al buscar la organizacion de la memoria, he dado con lo que buscaba,
en otros pic al principio del data te muestra una tabla con las direciones de los puertos
y otras cosas, si... en este pic pic18F2550 se situa en la hoja 68 de 430 hay un apartado que dice:
SPECIAL FUNCTION REGISTER MAP FOR PIC18F2455/2550/4455/4550 DEVICEShay se define las direciones del :
#BYTE SSPADD = 0xFC8
#BYTE SSPCON1 = 0xFC6
#BYTE SSPCON2 = 0xFC5
#BYTE SSPBUF = 0xFC9 //FC9h SSPBUF
como bien ponia en el enlace que pegue anteriormente.
con respecto ala libreria dentro de esta pone:
/* header file for the MICROCHIP PIC18 microcontrollers
PIC18F2455
PIC18F2550
PIC18F4455
PIC18F4550
PIC18F2458
PIC18F2553
PIC18F4458
PIC18F4553
*/
podria valer la misma libreria pero con algunos cambios imagino...
la idea era como tenia definicas las cosas.
cosas conseguidas:
- se de donde sale lo de los registros del control y su famoso numerito:
- se que valen para mi pic eas definiciones
- se que :
#BYTE SSPADD = 0xFC8
#BYTE SSPCON1 = 0xFC6
#BYTE SSPCON2 = 0xFC5
#BYTE SSPBUF = 0xFC9
coasas que me faltan:
me puedes confirma estas cosillas...?
cosas que dudo si se corresponderan:
- SSPIF == 1) // interrupcion SSPbit 3 del PIR1 y PIR1 es
PIR1: PERIPHERAL INTERRUPT REQUEST (FLAG) REGISTER 1
- SSPOV == 1) // si hay overflow leo el buffer y borro dicho flagbit 6 del registro del
SSPCON1: MSSP CONTROL REGISTER 1 (I2C™ MODE)
- BF == 1) // si esta lleno el bufferBF
se corresponde con el bit 0 del registro
SSPSTAT: MSSP STATUS REGISTER (I2C™ MODE)
- RW == 0rw : RD or WR
de este no encontre nada ....
no ser que se coresponda con el bit 2 del
SSPSTAT: MSSP STATUS REGISTER
- DA == 1da : SPP data write
de este no encontre nada ....
- SSPIF = 0; // borro el flag de interrupcionPIR1: PERIPHERAL INTERRUPT REQUEST (FLAG) REGISTER 1
el bit 3 de este registro es el SSPIF (segun data)
SSPIF: Master Synchronous Serial Port Interrupt Flag bit
1 = The transmission/reception is complete (must be cleared in software)
0 = Waiting to transmit/receive
- SSPIE = 1; // Habilito interrupcion por SSPenable_interrupts(INT_SSP);
- PEIE = 1; // Habilito interrupcion de perifericosenable_interrupts(....); // no se con cual se correspondera o su hara falta
lo mas parecido que encontre en le data es el regidstro de control de interrupciones
PIE1,PIE2 estas partenecen a una lista de 10 , las cuales se usan para el control de inerrupciones (pag 99)
pero mas abajo encontre el PEIE:
INTCON: INTERRUPT CONTROL REGISTER(pag_101):
PEIE es el bit 6 del INTCON
pero en el fichero de cabecera de mi pic donde estan definidas los tipos de interrupciones no aparece
o no la reconozco y aparece con otro nombre
- GIE = 1; // Habilito las interrupciones globalesenable_interrupts(GLOBAL);
volvemos al codigo ...