📄 myrt_process.c
字号:
#include <linux/module.h>#include <asm/io.h>#include <math.h>#include <rtai.h>#include <rtai_shm.h>#include <rtai_sched.h>#include <rtai_nam2num.h>#include "parameters.h"static RT_TASK rt_task;static struct data_str *data;static void fun(int t){ unsigned int count = 0; float seno,coseno; while (1) { data->indx_counter = count; seno = sin(2*M_PI*1*rt_get_cpu_time_ns()/1E9); coseno = cos(2*M_PI*1*rt_get_cpu_time_ns()/1E9); data->sin_value = seno; data->cos_value = coseno; count++; rt_task_wait_period(); }}int init_module(void){ RTIME tick_period; rt_set_periodic_mode(); rt_task_init(&rt_task, fun, 1, STACK_SIZE, TASK_PRIORITY, 1, 0); data = rtai_kmalloc(nam2num(SHMNAM), sizeof(struct data_str)); tick_period = start_rt_timer(nano2count(TICK_PERIOD)); rt_task_make_periodic(&rt_task, rt_get_time() + tick_period, tick_period); return 0;}void cleanup_module(void){ stop_rt_timer(); rt_task_delete(&rt_task); rtai_kfree(nam2num(SHMNAM)); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -