void teste_macros(){ int i, portC=0, size=8*sizeof(int); printf(":: TESTE DAS MACROS ::\n"); printf("\nTestando a macro set_bit(var,bit): \n"); getchar(); for(i = 0; i < 2*size ; i++){ mostra_bin(portC); printf("\t -> \t"); mostra_bin(set_bit(portC,i)); printf("\n"); } printf("\nTestando a macro clear_bit(var,bit): \n"); getchar(); for(i = 0; i < 2*size; i++){ mostra_bin(portC); printf("\t -> \t"); mostra_bin(clear_bit(portC,i)); printf("\n"); } printf("\nTestando a macro cpl_bit(var,bit): \n"); getchar(); for(i = 0; i < 2*size; i++){ mostra_bin(1<<i); printf("\t -> \t"); mostra_bin(cpl_bit(portC,i)); printf("\n"); } }
void thr_run(void * args) { int * a = (int*)args; //se quiser usar o valor de a tem que deferenciar ex. *a while (1) { #ifdef debug printf("Thread %d: running...\n", getid()); printf("Thread arg= %d\n", *a); printf("Iteration number= %d\n", i); #endif PORTB = 127 & *a; _delay_ms(250); cpl_bit(PORTB, PB4); _delay_ms(250); /*free cpu to run another thread with yield method()*/ yield(); } finish(*a); }