94 lines
1.7 KiB
C
94 lines
1.7 KiB
C
//
|
|
// Created by cfif on 04.10.2022.
|
|
//
|
|
|
|
#include <stddef.h>
|
|
#include <SystemDelayInterface.h>
|
|
#include <TaskAdc.h>
|
|
#include <CmsisRtosThreadUtils.h>
|
|
#include "fs_interface.h"
|
|
|
|
|
|
void TaskAdc_Init(
|
|
tTaskAdc *env,
|
|
tAdcs *adcs
|
|
) {
|
|
|
|
env->adcs = adcs;
|
|
|
|
//Инициализируем поток
|
|
InitThreadAtrStatic(&env->thread.attr, "TaskAcd", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
|
|
env->thread.id = 0;
|
|
}
|
|
|
|
|
|
uint32_t getVcc(tTaskAdc *env) {
|
|
double vcc;
|
|
//vcc = env->vcc / 0.219666667;
|
|
vcc = env->vcc;
|
|
|
|
return (uint32_t)vcc;
|
|
}
|
|
|
|
uint8_t bufAnswer[1024];
|
|
|
|
static _Noreturn void TaskAdc_Thread(tTaskAdc *env) {
|
|
/*
|
|
tFs *fs;
|
|
|
|
FIL file;
|
|
UINT bytes_read;
|
|
|
|
int step = 0;
|
|
|
|
while (1) {
|
|
|
|
|
|
FRESULT fr = f_open_i(fs, &file, "1:/LOG/04-06-23.LOG", FA_READ);
|
|
if (fr) {
|
|
asm("nop");
|
|
}
|
|
|
|
if (step == 1)
|
|
fr = f_lseek_i(fs, &file, 40000);
|
|
|
|
if (step == 2)
|
|
fr = f_lseek_i(fs, &file, 80000);
|
|
|
|
++step;
|
|
if (step == 3)
|
|
step = 0;
|
|
|
|
|
|
uint32_t t1 = SystemGetMs();
|
|
fr = f_read_i(fs, &file, bufAnswer, 1024, &bytes_read);
|
|
uint32_t t2 = SystemGetMs();
|
|
uint32_t t3 = t2 - t1;
|
|
|
|
if (t3 > 10) {
|
|
asm("nop");
|
|
}
|
|
|
|
f_close_i(fs, &file);
|
|
|
|
SystemDelayMs(100);
|
|
}
|
|
*/
|
|
for (;;) {
|
|
|
|
env->vcc = env->adcs->vccIo.get(&env->adcs->vcc, 1000);
|
|
|
|
env->vcc = 0;
|
|
|
|
SystemDelayMs(100);
|
|
}
|
|
}
|
|
|
|
void TaskAdc_StartThread(tTaskAdc *env) {
|
|
if (!env->thread.id) {
|
|
env->thread.id = osThreadNew((osThreadFunc_t) (TaskAdc_Thread), (void *) (env), &env->thread.attr);
|
|
} else {
|
|
osThreadResume(env->thread.id);
|
|
}
|
|
}
|