Ejemplo n.º 1
0
/*
 * PORTC:デコーダー1,2: p~i:PORTC 7~4 RB7:C RB6:B RB5:A RB4:G1  H~A:8~0 RB3:C RB2:B RB1:A RB0:G1
 * PORTD:16~9 Anode: RD7~RD0
 * PORTC:8~1  Anode: RC7~RC0
 */
void main( )
{
    TRISB = 0b00000001;//PORTB RB7~RB1:output,RB0:Input
    TRISC = 0x00;//PORTC output
    TRISD = 0x00;//PORTD output


    PORTC = 0x00;//portc init
    PORTD = 0x00;//portd init
    INTEDG = 1;	// 割込み条件を立上がりエッジにする
    INTF = 0;	// RB0/INT外部割込みフラグをクリア
    INTE = 1;	 // RB0/INT外部割込み許可
    GIE = 1;	 // すべての割り込み許可
    while(1){
        dynamic1();
        PORTC=0x00;
        dynamic2();
        PORTC=0x00;
        dynamic3();
        PORTD=0x00;
        dynamic4();
        PORTD=0x00;
    }
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
    //system("rm -f *pgm");
    //system("rm -f *ppm");
    int algoritmo = -1;
    int error = 0;
    int tam = -1;
    int iteraciones = -1;
    int tam_tarea = -1;

    if (argc > 1) {
        algoritmo = atoi(argv[1]);
        if (algoritmo < 0 || algoritmo > 1) {
            error = 1;
        }
    } else {
        error = 1;
    }

    if (argc > 2) {
        tam = atoi(argv[2]);
        if (tam < 1 || !is_power_of_two(tam)) {
            error = 1;
        }
    } else {
        error = 1;
    }

    if (argc > 3) {
        iteraciones = atoi(argv[3]);
        if (iteraciones < 1) {
            error = 1;
        }
    } else {
        error = 1;
    }

    if (argc > 4) {
        tam_tarea = atoi(argv[4]);
        if (algoritmo == 1 && tam_tarea < 1) {
            error = 1;
        }
    }
    if (algoritmo == 1 && argc < 5) {
        error = 1;
    }

    if (error) {
        //only one node should print errors
        MPI_Init(&argc, &argv);
        int com_rank;
        MPI_Comm_rank(MPI_COMM_WORLD, &com_rank);
        if (com_rank == 0) {
            ayuda(argv[0]);
        }
        MPI_Finalize();
        return EXIT_SUCCESS;
    }

    switch (algoritmo) {
    case 0:
        continuous_rows_version(argc, argv);
        break;
    case 1:
        dynamic2(argc, argv);
        break;
    case 2:
        //sparse_rows_version(argc, argv);
        break;
    case 3:
        //dynamic_row_assignment(argc, argv);
        break;
    }
    return EXIT_SUCCESS;
}