// // Created by cfif on 04.10.2022. // #include #include #include #include #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; 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); 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); } }