Millis not working with max6675 library

Hi all.
I encountered a problem on the bluepill board, the max6675 library with a mils delay refuses to work correctly.
For the library itself to work, a delay of 250 or more is required, but since the sketch uses a PID, such delays lead to unstable operation.

When using classic milis processing
if ((millis()-timer ) >= 500)
temp1 = thermocouple.readCelsius();
timer = millis();
The sensor is polled only at startup. The processing itself works correctly because printing into the serial comes with the required timings.
I also used an SPI display in the project, but the max6675 refused to work on the same bus. started using the second SPI for MAX.

Used libraries
#include <Wire.h>
#include <TFT_eSPI.h>
#include <SPI.h>
#include <STM32RTC.h>
#include <RotaryEncoder.h>
#include <max6675.h>
#include <PID_v1.h>

Could you please tell me how to get rid of delay. or perhaps there are alternatives?