コード例 #1
0
ファイル: main.c プロジェクト: yuwentengbo/Wind-pendulum
 int main(void)
 {	
	u8 rx_buf[10];
	System_init();
	TIM_Cmd(TIM3,ENABLE);
	TIM_Cmd(TIM4,ENABLE);
	 
	while(1)
	{
		while(1)
		{
			if(NRF24L01_RxPacket(rx_buf) == 0)
			{
				break;
			}
		}
		switch(rx_buf[0])
		{
			case '1':	run1();										break;
			case '2':	run2();										break;
			case '3':	run3();    delay_ms(3000);  PCout(0) = 0;	break;
			case '4':	run4();    delay_ms(3000);  PCout(0) = 0;   break;
			case '5':	run5(); 									break;
			default:		   									    break;
		}
		rx_buf[0] = 0;
	}
	
	return 0;
 }
コード例 #2
0
/****************************************************
* thread func
*****************************************************/
static void worker_thread_func(cross_thread_type5 * obj)
{
    if(!obj) {
        LOG_ERROR("para error in test \r\n");
        return;
    }

    int ret;

    if(obj->m_id.invoke == general_run) {
        ret = general_run(obj->task);
    } else if(obj->m_id.invoke == run1) {
        ret = run1(obj->task,obj->para1);
    } else if(obj->m_id.invoke == run2) {
        ret = run2(obj->task,obj->para1,obj->para2);
    } else if(obj->m_id.invoke == run3) {
        ret = run3(obj->task,obj->para1,obj->para2,obj->para3);
    } else if(obj->m_id.invoke == run4) {
        ret = run4(obj->task,obj->para1,obj->para2,obj->para3,obj->para4);
    } else if(obj->m_id.invoke == run5) {
        ret = run5(obj->task,obj->para1,obj->para2,obj->para3,obj->para4,obj->para5);
    } else {
        LOG_ERROR("un recongize type\r\n");
        ret = -100;
    }
    
    if(obj->call_back) {
        if(obj->m_id.invoke == general_run) {
            (*(obj->call_back))(ret,0);
        } else if(obj->m_id.invoke == run1) {
            (*(obj->call_back))(ret,1,obj->para1);
        } else if(obj->m_id.invoke == run2) {
            (*(obj->call_back))(ret,2,obj->para1,obj->para2);
        } else if(obj->m_id.invoke == run3) {
            (*(obj->call_back))(ret,3,obj->para1,obj->para2,obj->para3);
        } else if(obj->m_id.invoke == run4) {
            (*(obj->call_back))(ret,4,obj->para1,obj->para2,obj->para3,obj->para4);
        } else if(obj->m_id.invoke == run5) {
            (*(obj->call_back))(ret,5,obj->para1,obj->para2,obj->para3,obj->para4,obj->para5);
        } else {
            (*(obj->call_back))(ret,0);
        }
    }

    free(obj);
}
コード例 #3
0
ファイル: induce_segf.cpp プロジェクト: divakarvi/Book-SPCA
int main(){
	printf("\nStack grows downward from a high address.\n\n");
	printf("If [stack_begin, stack_end] is the vm area, \n");
	printf("then stack starts near stack_end grows "
	       "towards stack_begin.\n\n");
	printf("run1(): goes beyond stack_end, seg faults.\n");
	printf("run2(): within stack_end, but overwrites return addr.\n");
	printf("run3(): within stack_end and jumps over return addr."
	       " No memory error reported.\n");
	printf("run4(): toward and within stack_begin, "
	       "but overwrites return addr.\n");
	printf("run5(): toward and beyond stack_begin,"
	       " does not overwrite %%rsi, no memory error reported.\n");
	printf("run6(): toward stack_begin, no %%rsi overwrite, "
	       "stack_begin not crossed because of prior call.\n");
	
	int i;
	printf("run = ");
	scanf("%d", &i);
	switch(i){
	case 1:
		run1();
		break;
	case 2:
		run2();
		break;
	case 3:
		run3();
		break;
	case 4:
		run4();
		break;
	case 5:
		run5();
		printf("getpid() again = %ld \n", syscall(__NR_getpid));
		break;
	case 6:
		run6();
		break;
	}
}
コード例 #4
0
void ImFCSCalibrationWizard::on_btnStep4_clicked()
{
    emit run4();
    ui->widget5->setEnabled(true);
}