/* * Both MCF5270 and MCF5271 are members of the MPC5271 family. Try to * determine which one we are running on, based on the Chip Identification * Register (CIR). */ int print_cpuinfo(void) { char buf[32]; unsigned short cir; /* Chip Identification Register */ unsigned short pin; /* Part identification number */ unsigned char prn; /* Part revision number */ char *cpu_model; cir = mbar_readShort(MCF_CCM_CIR); pin = cir >> MCF_CCM_CIR_PIN_LEN; prn = cir & MCF_CCM_CIR_PRN_MASK; switch (pin) { case MCF_CCM_CIR_PIN_MCF5270: cpu_model = "5270"; break; case MCF_CCM_CIR_PIN_MCF5271: cpu_model = "5271"; break; default: cpu_model = NULL; break; } if (cpu_model) printf("CPU: Freescale ColdFire MCF%s rev. %hu, at %s MHz\n", cpu_model, prn, strmhz(buf, CONFIG_SYS_CLK)); else printf("CPU: Unknown - Freescale ColdFire MCF5271 family" " (PIN: 0x%x) rev. %hu, at %s MHz\n", pin, prn, strmhz(buf, CONFIG_SYS_CLK)); return 0; }
//------------------------------------------------------ // void nuevaPieza(void) // // Descripción: // Introduce una nueva pieza en juego //------------------------------------------------------ void nuevaPieza(void){ int rand = (mbar_readShort(MCFSIM_TCN1) % NUM7); //Cogemos un numero aleatorio modulo 7 int i,j; if(estado.primeraPieza == NO_PPIEZA){ piezaAux = piezaSiguiente; } switch(rand) { //Elegimos una pieza al azar para ser la siguiente case PIEZA_I: piezaSiguiente = iTetri; break; case PIEZA_S: piezaSiguiente = sTetri; break; case PIEZA_Z: piezaSiguiente = zTetri; break; case PIEZA_T: piezaSiguiente = tTetri; break; case PIEZA_O: piezaSiguiente = oTetri; break; case PIEZA_J: piezaSiguiente = jTetri; break; case PIEZA_L: piezaSiguiente = lTetri; break; } pintaPiezaSiguiente(rand); //Pintamos la piezaSiguiente en su matriz de leds if(estado.primeraPieza == PPIEZA){ piezaAux = piezaSiguiente; estado.primeraPieza = NO_PPIEZA; } for(i = 0;i < MAX_TAMANO;i++) { for(j = 0;j < MAX_TAMANO;j++) { piezaAux.matrizPiezaLive[i][j]=piezaAux.matricesPieza[0][i][j]; } } piezaAux.anchura = evaluaAnchura(piezaAux); piezaAux.altura = evaluaAltura(piezaAux); piezaAux.posicion[POS_Y] = - (piezaAux.altura); //La altura inicial de la pieza será -Altura para que caiga progresivamente pAux2pActual(); pintaTPieza(piezaActual); }
void uart_port_conf(int port) { u16 temp; /* Setup Ports: */ switch (port) { case 0: temp = mbar_readShort(MCF_GPIO_PAR_UART) & 0xFFF3; temp |= (MCF_GPIO_PAR_UART_U0TXD | MCF_GPIO_PAR_UART_U0RXD); mbar_writeShort(MCF_GPIO_PAR_UART, temp); break; case 1: temp = mbar_readShort(MCF_GPIO_PAR_UART) & 0xF0FF; temp |= (MCF_GPIO_PAR_UART_U1RXD_UART1 | MCF_GPIO_PAR_UART_U1TXD_UART1); mbar_writeShort(MCF_GPIO_PAR_UART, temp); break; case 2: temp = mbar_readShort(MCF_GPIO_PAR_UART) & 0xCFFF; temp |= (0x3000); mbar_writeShort(MCF_GPIO_PAR_UART, temp); break; } }