Exemplo n.º 1
0
static void timer_code(void *arg)
{
    long long int t1, t2, t3;
    long int tdiff1, tdiff2, tdiff3;
    char buf[30];

    while (1) {

	/* a simple counter... */
	timer_count++;
	/* print the results every second */
	if (timer_count % 1000 == 0) {
	    t1 = rtapi_get_time();
	    t2 = rtapi_get_time();
	    rtapi_delay(rtapi_delay_max());
	    t3 = rtapi_get_time();
	    tdiff1 = t2 - t1;
	    tdiff2 = t3 - t2;
	    tdiff3 = t3 - t1;
	    long_long_to_dec_str(buf, t1);
	    rtapi_print("T1 = %s\n", buf);
	    long_long_to_dec_str(buf, t2);
	    rtapi_print("T2 = %s\n", buf);
	    long_long_to_dec_str(buf, t3);
	    rtapi_print("T3 = %s\n", buf);
	    rtapi_print("Tdiff1 = %ld\n", tdiff1);
	    rtapi_print("Tdiff2 = %ld\n", tdiff2);
	    rtapi_print("Tdiff3 = %ld\n", tdiff3);
	}
	/* put the task to sleep until the next interrupt */
	rtapi_wait();
    }

    return;
}
Exemplo n.º 2
0
int waitfor(void){
    rtapi_u32 buff;
    long long int starttime = rtapi_get_time();
    do {
        rtapi_delay(50000);
        HM2READ(remote->command_reg_addr, buff);
        if (rtapi_get_time() - starttime > 1000000000){
            rtapi_print_msg(RTAPI_MSG_ERR, "Timeout waiting for CMD to clear\n");
            return -1;
        }
    } while (buff);
    
    return 0;
}