Пример #1
0
int main(){

	printf("init: comienza\n");

	if (crear_proceso("simplon")<0){
                printf("Error creando simplon\n");
	}
	/*if (crear_proceso("dormilon")<0)
                printf("Error creando dormilon\n");*/
	
	/* Este programa causa una excepción */
	if (crear_proceso("excep_arit")<0)
		printf("Error creando excep_arit\n");

	/* Este programa crea otro proceso que ejecuta simplon a
	   una excepción */
	if (crear_proceso("excep_mem")<0)
		printf("Error creando excep_mem\n");
	
	/* No existe: debe fallar */
	if (crear_proceso("noexiste")<0)
		printf("Error creando noexiste\n");

	espera();
	printf("init: termina\n");
	return 0; 
}
Пример #2
0
// Escreve um caractere no LCD
void LCDputchar(int c)
{
		FIO3PIN0 = c;
		FIO4SET = LCD_RS;		// RS=1: caractere
		FIO4SET = LCD_E;
		FIO4CLR = LCD_E;
		espera(8);
}
Пример #3
0
// Escreve um comando para o LCD
void LCDcomando(int c)
{
		FIO3PIN0 = c;
		FIO4CLR = LCD_RS;		// RS=0: comando
		FIO4SET = LCD_E;
		FIO4CLR = LCD_E;
		espera(20);
}
Пример #4
0
int main(int argc, char *argv[]) {

	guiWindow *wdwPpal = NULL;

	/****************************************************** 
	  Creacion del proceso hijo, encargado del compilador
	  y los pipes de comunicacion con el 
	 ******************************************************/

	pipe(pipePH);
	pipe(pipeHP);
	pipe(pipeERR);

	if ( (pid=fork()) == -1 ) {
		perror("FORK");
		exit(-1);
		}

	if ( pid == 0 ) {
		// Hijo

		close(pipeHP[0]);
		dup2(pipeHP[1], 1);
		close(pipePH[1]);
		dup2(pipePH[0],0);
		close(pipeERR[0]);
		dup2(pipeERR[1], 2);

		// Espera hasta que el usuario haya cargado en el entorno
		// los ficheros del compilador y codigo fuente

		espera();
	
	} else {
		// Padre
		close(pipeHP[1]);
		close(pipePH[0]);
		close(pipeERR[1]);

		strERR = fdopen(pipeERR[0], "r");
		}


	// Construir aplicacion
	// FXApp *application = new FXApp("SEFASGEN","Infinity Inc.");
	Sefasgen application("SEFASGEN", "SFGSoft");	

	// Arrancar
	application.init(argc, argv);

	application.create();

	// guiWindow
	wdwPpal = new guiWindow(&application);
	wdwPpal->create();

	return application.run();
	}
/* Escreve um caractere no LCD */
void LCDputchar(int c)
{
FIO3PIN0 = c;
FIO4SET = LCD_RS;
FIO4SET = LCD_E;
c++; c--;
FIO4CLR = LCD_E;
espera(8);
}
/* Escreve um comando para o LCD */
void LCDcomando(int c)
{
FIO3PIN0 = c;
FIO4CLR = LCD_RS;
FIO4SET = LCD_E;
c++; c--;
FIO4CLR = LCD_E;
espera(20);
}
/* Configura Timer e LCD */
void LCDinit(void)
{
/* Configura portas I/O do LCD */
FIO3DIR |= 0xff;
FIO4DIR  |= LCD_E | LCD_RS;
espera(20);
LCDcomando(0x38);	/* Configura LCD para 2 linhas */
LCDcomando(1);		/* Limpa display */
LCDcomando(0x0c);	/* Apaga cursor */
}
void LCDcomando(int c)
{
espera(5);	/* Espera 5ms */
FIO3CLR = 0xff;	/* Zera os dados do LCD */
FIO3SET = c & 0xff;
FIO4CLR = LCD_RS;	/* RS=0: Comando */
FIO4SET = LCD_E;	/* Liga LCD_E */
c++; c--;		/* tempo */
FIO4CLR = LCD_E;	/* Desliga LCD_E */
}
void LCDputchar(int c)
{
espera(5);	/* Espera 1ms */
FIO3CLR = 0xff;	/* Zera os dados do LCD */
FIO3SET = c & 0xff;
FIO4SET = LCD_RS;	/* RS=1: Caractere ASCII */
FIO4SET = LCD_E;	/* Liga LCD_E */
c++; c--;		/* tempo */
FIO4CLR = LCD_E;	/* Desliga LCD_E */
}
Пример #10
0
// Configura LCD
void LCDinit(void)
{
		// Configura portas I/O do LCD
		FIO3DIR |= 0xff;		// Dados do LCD como saidas
		FIO4DIR |= LCD_E | LCD_RS;	// EN e RS do LCD como saidas
		espera(20);
		LCDcomando(0x38);		// Configura LCD para 2 linhas
		LCDcomando(1);		// Limpa display
		LCDcomando(0x0c);		// Apaga cursor
}
Пример #11
0
int disparo(int b){

	int cruzamento_zero, j;


	for(j=0; j<10000; j++){	
		cruzamento_zero = leitura_adc();
//		printf("ADC %d\n", cruzamento_zero);
		if(cruzamento_zero>50){			
			if (b==0){
				saida_lampada("1");
			}
			if(b!=0){			
				espera(b);
				saida_lampada("1");
				espera(1);
				saida_lampada("0");
			}
		}
	}
}
Пример #12
0
void* calcular(void *arg) {

	long id = (long) arg;


	sem_wait(&semaforo);

	count += 1 ;
	printf ("entro el hilo %ld \n",id);
	espera(500);
	printf ("salio el hilo %ld \n",id);
	sem_post(&semaforo);


	pthread_exit(0);

}
Пример #13
0
int main()
{
	int i;

	printf("simplon: comienza\n");
	for (i=0; i<TOT_ITER; i++) printf("simplon: i %d\n", i);
	//fijar_prio(30); /* Augmentam la prioritat */
	

	/* Prova de prioritats, deixarem que el simplon2 heredi del pare*/
	if (crear_proceso("dormilon")<0){
                printf("Error creando dormilon\n");
	}
	//fijar_prio(10); //Aqui debería activarse la interrupción de Software.
	espera();

	
	printf("simplon: termina\n");
	return 0;
}