Exemplo n.º 1
0
void __display(NODE *temp, int (*a)[10], int *row, int *col){
	if(temp ==0) return ;
	++*row;
	__display(temp->left, a, row, col);
	a[*row][(*col)++] = temp->data;
	__display(temp->right, a, row, col);
	--*row;
	return;
}
Exemplo n.º 2
0
void __display(struct node *temp, int(*a)[10],
    int *row, int *col)
{
    if (temp == 0)
        return;
    ++(*row);
    __display(temp->left, a, row, col);
    a[*row][(*col)++] = temp->data;
    __display(temp->right, a, row, col);
    --(*row);
    return;
}
Exemplo n.º 3
0
int ( *__display (NODE *temp) )[10]
{
  static int a[10][10] = {{0,}, };
  static int col=0;
  static int row = -1;
  if ( temp==0 )
    return a;
  ++row;
  __display( temp->left );
  a[row][col++] = temp->data;
  __display( temp->right );
  --row;

  return a;
}
Exemplo n.º 4
0
/************* Programa Principal *************************/
int main()
{
	ADPCFG = 0xFFFF; //configura a porta B (PORTB) como entradas/saidas digitais
	TRISB=0; //a PORTB como saída
	_TRISC13=1; //PORTC<13>=1; pino T2CK (infravermelho)de entrada
	_TRISC14=0; //Saída Latch
	TRISD=0x0001; //Saída Latch
	_TRISE0=0; //Saida para ventoinha
	IFS0=0; //Flag de interrupção do timer1
	IEC0 = IEC0 | 0x00C9; // bit 3 do registrador IEC0 habilita a interrupção do timer1 (IEC0bits.T1IE=1)
	IFS1 = 0; //Interrupção externa 1
	IEC1 = IEC1 | 0x0001; //Habilitando a interrupção externa 1
	IPC0 = 0x1002; //Prioridade 2 para a INT0
	PR1 = 6400; //O registrador de periodo PR1 é igual a 6400 20% duty cycle
	PR2 = 7; //total para completar um volta da ventoinha
	PR3 = 62500; //1s timer 3 prescaler 1:256
	T = 32000; //periodo para 500Hz
	T1CON=0x0000; //Prescaler fica em 1.
	T2CON=0x8002; //habilita o timer 2 com TCS
	T3CON=0x0030; //timer 3 prescaler 256
	TMR1 = 0; //Zerar os timers
	TMR3 = 0;

	while(1)//laço infinito
	{
	    __display(x,y,w,z); //Exibir o número de voltas/segundo
		__criatividade(); //Alterar a frequência para checarmos a diferença no número de volta

		//FMS
		switch(est_ini)
		{
			case 0 : prox_est = 1; //Próximo estado
					 duty = 2; //Duty Cycle 20%
					 break;
			case 1 : prox_est = 2; //Próximo estado
					 duty = 8; //Duty Cycle 80%
					 break;
			case 2 : prox_est = 0; //Próximo estado
					 duty = 5; //Duty Cycle 50%
					 break;
		}

	}
}
Exemplo n.º 5
0
void display(NODE *temp){
	int i,j;
	int row = -1;
	int col = 0;
	int a[10][10] = {0,};

	system("clear");
	__display(temp, a, &row, &col);
	for(i=0; i<10; i++){
		for(j=0; j<10; j++){
			if(a[i][j]!=0)
				printf("%4d", a[i][j]);
			else
				printf("%4c", ' ');
		}
		printf("\n");
	}
	getchar();
}