Contenido>Indice>Intro CursoC51

USO DE LOS CONTROLES _at_ Y _ORDER_


Aquí. el orden de las variables no debe cambiar y se deben corresponder con las posiciones de los registros del reloj. La directiva #pragma ORDER ordena a C51 que coloque los objetos en orden de direcciones crecientes, con el primer elemento en la dirección más baja. El linker se utiliza para fijar la dirección de todo el bloque en memoria.

Módulo MAIN.C
#pragma ORDER
unsigned char xdata RTC_segundos ;
unsigned char xdata RTC_minutos ;
unsigned char xdata RTC_horas ;

main() {   RTC_minutos = 1 ; }

Fichero de entrada para el linker MAIN.LIN

main.obj  to main  XDATA(?XD?MAIN(0fa00h))

Alternativamente, el control _at_ obliga a que C51 ponga los objetos en las direcciones especificadas en el fichero fuente:

unsigned char xdata RTC_segundos _at_ 0xfa00 ;
unsigned char xdata RTC_minutos _at_ 0xfa01 ;
unsigned char xdata RTC_horas _at_ 0xfa02 ;

main()   {    RTC_minutos = 1 ;
      }

...lo que felizmente resulta auto-explicativo. 


   Contenido>Indice>Intro CursoC51