Autor Tema: Definicion de registros para compilar con CCS un poquito mas comodos ....  (Leído 2209 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado wqtrp

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 170
bien, de a poco nos vamos inspirando, a ver si se puede  ayudar en esto ...

la idea es acceder de una manera un poco mas comoda a los distintos registros ed cada chip....
Uds habran visto q con el C18 vienen unos lindos archivos .H y muy comodos de usar, diria q realmente muy intuitivos.....
y sino, revisen por ej. el p18F452.h q viene por alli....
.... no seria lindo poner PORTA.RA3=0 y listo.....

tomemos por ej. el portc de alli y veamos la definicion.....


extern volatile near union {
  struct {
    unsigned RC0:1;
    unsigned RC1:1;
    unsigned RC2:1;
    unsigned RC3:1;
    unsigned RC4:1;
    unsigned RC5:1;
    unsigned RC6:1;
    unsigned RC7:1;
  };
  struct {
    unsigned T1OSO:1;
    unsigned T1OSI:1;
    unsigned :1;
    unsigned SCK:1;
    unsigned SDI:1;
    unsigned SDO:1;
    unsigned TX:1;
    unsigned RX:1;
  };
  struct {
    unsigned T1CKI:1;
    unsigned CCP2:1;
    unsigned CCP1:1;
    unsigned SCL:1;
    unsigned SDA:1;
    unsigned :1;
    unsigned CK:1;
    unsigned DT:1;
  };
} PORTCbits;

espectacular esto .....

solo q en CCS no funciona

asi q habra q manejarlo un cachitin....

a la primer linea le sacamos todo y solo dejamos la union....
el  PORTCbits lo dejamos, queda lindo y clarito....
pero q pasa, aun asi no funciona en CCS.....
asi q a cada estruc habra q ponerle un nombre antes del (, del tipo (sa, sb ...etc)  pq parece q si o si debe tener un nombre

si alguien sabe como armar la union esta para q no sean necesarios los nombres en cada struct seria fabuloso..... asi q esperemos q alguien se ilumine...

bueno, cuando tenga algo mas sigo escribiendo

suerte ..... y q alguien se inspire ....



Desconectado wqtrp

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 170
RE: Definicion de registros para compilar con CCS un poquito mas comodos ....
« Respuesta #1 en: 03 de Octubre de 2004, 05:42:00 »
---------------------------------------------------------------------
wqtrp ¿ Y no sería más fácil hacer: include<registros.h>?

registros.h

#byte INTCON = 0x0B
.
.
.

#bit T0IF = 0x0B.2
.
.
.

---------------------------------------------------------------------

si, seria mas facil, el problema es q para cada micro esos datos estan en una posicion distinta, con lo cual hay q hacer un .h por cada archivo o uno solo condicionado por alguna definicion.

ademas el metodo del 0x0b.2 me parece muy arido y ya es bastante arido el C en si mismo

con lo cual continuare con la muy buena definicion q trae el C18 y tratare de adaptarla un poco.

alguien sabe como puedo definir una struct sobre otra (union) sin tener q ponerle nombre a cada estructura para acceder a ella???

Gracias..... y suerte.