#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <freertos/queue.h>
QueueHandle_t queue;
struct js{float a;unsigned long t;};
void rj(void *parameter){
js data;
while (true){
int ver=analogRead(26);
data.a=map(ver,0,4095,-10,10);
data.t=millis();
xQueueSend(queue,&data,pdMS_TO_TICKS(1000));
vTaskDelay(pdMS_TO_TICKS(100));
}
}
void pj(void *parameter){
js data1;
float velocity=0;
float time=0.0;
while(true){
if(xQueueReceive(queue,&data1,pdMS_TO_TICKS(100))){
time=data1.t/1000-time;
velocity+=data1.a*time;
Serial.println("time");
Serial.println(data1.t/1000);
Serial.println("vel");
Serial.println(velocity);
}}
}
void setup() {
pinMode(13,OUTPUT);
pinMode(26, INPUT);
pinMode(27,INPUT);
digitalWrite(13,HIGH);
Serial.begin(9600);
queue=xQueueCreate(10,sizeof(js));
xTaskCreatePinnedToCore(rj,"read",2048,NULL,1,NULL,0);
xTaskCreatePinnedToCore(pj,"process",2048,NULL,1,NULL,1);
}
void loop() {
}