[問題] Linux c/c++ timer計時問題

看板C_and_CPP (C/C++)作者 (有緣人)時間15年前 (2011/03/21 16:56), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串1/1
程式碼如下.. void Sigtest(int sig) { static int a=0; static int switcha=0; a++; switcha=dm355_gio_read( BUTTON_TP_GPIO ); if(switcha==0) { dm355_gio_write( GPIO_LED_EN ,a&0x01); } } void *Timerkeythread(void *arg) { printf("TestTimer start"); signal(SIGALRM,Sigtest); struct itimerval delay; memset(&delay, 0, sizeof(delay)); delay.it_value.tv_sec=1; delay.it_value.tv_usec=0; delay.it_interval.tv_sec=0; delay.it_interval.tv_usec=500000; setitimer(ITIMER_REAL,&delay,NULL); } int main(int argc,char *argv[]) { pthread_create(&timethread, NULL,Timerkeythread,&value); pthread_join (timethread, NULL); return 0; } 產生一個thread進入Timerkeythread函式本例是 每0.5s計時一次,降的寫法有那裡有錯嗎?因為小弟 測試他只有一段時間可以過了那段時間他就不會計時了 大概30秒左右 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.164.6

03/22 19:30, , 1F
寫成這樣你的程式立刻就會結束了吧 怎麼會有計時到?
03/22 19:30, 1F

03/22 21:43, , 2F
他不是有 join會等 thread結束 ?
03/22 21:43, 2F

03/22 21:46, , 3F
那個Timerkeythread瞬間就跑完啦.. main也就瞬間跑完= =
03/22 21:46, 3F

03/23 16:46, , 4F
我是寫在systemserver裡它還是會計時到...
03/23 16:46, 4F

03/23 16:50, , 5F
已找到答案while(1){pause();}加在thread裡就ok拉
03/23 16:50, 5F
文章代碼(AID): #1DXnBIar (C_and_CPP)
文章代碼(AID): #1DXnBIar (C_and_CPP)