Beispiel #1
0
/*
 * 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;
}
Beispiel #2
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);
}
Beispiel #3
0
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;
	}
}