240 likes | 544 Views
Puertos I/O. Puertos I/O. 56 lineas divididos en 7 puertos de 8 bits No todos accesibles en los pines del módulo RCM3XX0 Los pines suelen tener funciones alternativas. Puerto A. Funciona como todo entradas o todo salidas
E N D
Puertos I/O • 56 lineas divididos en 7 puertos de 8 bits • No todos accesibles en los pines del módulo RCM3XX0 • Los pines suelen tener funciones alternativas
Puerto A • Funciona como todo entradas o todo salidas • Comparte función con el bus de datos del puerto esclavo o del puerto auxiliar
Puerto B • Se puede programar cada línea como entrada o salida • Comparte función con el bus de direcciones del puerto auxiliar • PBDDR 1=salida 0=entrada
Puerto C • Cuatro entradas (impares) cuatro salidas (pares) • Comparte función con los puertos serie
Puerto D • Se puede programar cada línea como entrada o salida • Pueden funcionar en drenador abierto o como salidas normales • Pueden sincronizarse las salidas con un timer • Pines 4,5,6 y 7 pueden funcionar como puertos serie (B y A)
Puerto E • Se puede programar cada línea como entrada o salida • PE7 es el chip select del puerto esclavo • Cada linea puede ser un I/O strobe (registro de función) • Cuatro líneas pueden pedir interrupción (PE0, PE1, PE4, PE5) • Pueden sincronizarse las salidas con un timer
Puerto F • Se puede programar cada línea como entrada o salida • Pueden sincronizarse las salidas con un timer • Funciones alternativas : salidas PWM, entradas del encoder en cuadratura, Reloj del puerto serie síncrono
Puerto G • Se puede programar cada línea como entrada o salida • Pueden sincronizarse las salidas con un timer • Funciones alternativas : puerto serie síncrono
Funciones para escribir en registros BitRdPortI <SYSIO.LIB> SYNTAX: int BitRdPortI(int PORT, int bitnumber); KEYWORDS: parallel port PARAMETER1: address of internal I/O port. PARAMETER2: bit (0-7) to read value from. DESCRIPTION: Returns 1 or 0 matching the value of the bit read from the specified internal I/O port. All of the Rabbit internal registers have predefined macros corresponding to the register's name. PADR is #defined to be 0x30, etc. RETURN VALUE: Returns an integer equal to 1 or 0.
Funciones para escribir en registros RdPortI <SYSIO.LIB> SYNTAX: int RdPortI(int PORT); KEYWORDS: parallel port PARAMETER1: address of internal I/O port. DESCRIPTION: Reads an internal I/O port specified by the argument (use RdPortE for external port.) All of the Rabbit internal registers have predefined macros corresponding to the register's name. PADR is #defined to be 0x30, etc. RETURN VALUE: Returns an integer, the lower 8 bits of which contain the the result of reading the port specified by the first argument.
Funciones para escribir en registros BitWrPortI <SYSIO.LIB> SYNTAX: void BitWrPortI(int PORT, char *PORTShadow, int value, int bitcode); KEYWORDS: parallel port PARAMETER1: address of internal I/O port. PARAMETER2: address of variable shadowing current value of port. PARAMETER3: value to write to port. PARAMETER4: bit (0-7) to write value to. DESCRIPTION: Updates shadow register at bit with value (0 or 1) and copies shadow to I/O port. WARNING: a shadow register is REQUIRED for this function. All of the Rabbit internal registers have predefined macros corresponding to the register's name. PADR is #defined to be 0x30, etc. RETURN VALUE: None
Funciones para escribir en registros WrPortI <SYSIO.LIB> SYNTAX: void WrPortI(int PORT, char *PORTShadow, int data_value); KEYWORDS: parallel port PARAMETER1: address of internal I/O port. PARAMETER2: address of variable shadowing current value of port. PARAMETER3: value to write to port. DESCRIPTION: Writes an internal I/O port with 8 bits and updates shadow for that port. The variable names must be of form "Port" and "PORTShadow" for most efficient operation. A null pointer may be substited (use "NULL") if shadow support is not desired or needed. All of the Rabbit internal registers have predefined macros corresponding to the register's name. PADR is #defined to be 0x30, etc. RETURN VALUE: none
Ejemplos Configurar PF4 como salida: BitWrPortI(PFDDR, &PFDDRShadow,1, 4); Poner PF4 a 1: BitWrPortI(PFDR, &PFDRShadow,1, 4);