I detected that transmitting 68 characters using RS232 at 460800hz takes 30-32000 tics to micro running at 480Mhz (HAL_UART_Transmit() takes 10 times more).Is there a method to disturb less to micro to make that transactions, perhaps using DMA?Is bet...
I have seen that it takes about 28 ticks to read registers, so I think my stm32h750 runs really at 17Mhz, it seems is not risk, so perhaps it exists another more fast stm32 micro that have more 17 MIPS
I would like read the gpio lines at fastest speed. As example it is possible to read first 4 ports by reading:uint16_t ports0123=GPIOC->IDR&0x000F; (it is very fast, takes 28 tics)It is possible to read ports GPIO_PIN_0-15 by connecting GPIOC->IDR to...
I would like use HRTIM timerA interruption event, so I where looking for the weak function to rewrite it but not found it.I found that I must set compilation flag USE_HAL_HRTIM_REGISTER_CALLBACKS to 1 and make all functions as weak. If I make so stro...
I made following two versions of the same software to process DMA data, one using floats and the second using uint32_t to try run faster, but as a surprise the first one run faster: //161
void process_data_ADC1()
{
float samples1=(2.0f/(float)ADC_B...
Uncomment that not worked to me, instead of using this: #define DELAY_US(us) \
do { \
uint32_t start = SysTick->VAL; \
uint32_t ticks = (us * SYSTICK_LOAD)-SYSTICK_DELAY_CALIB; \
while((start - SysTick->VAL) < ticks); ...
Now I used this code and -O2 optimization for speed and see a lot of improvements, here is a better code: a0=DWT->CYCCNT;
a1=DWT->CYCCNT;
i=GPIOC->IDR & GPIO_PIN_0;
a2=DWT->CYCCNT;
i=GPIOC->IDR & GPIO_PIN_0;
a3=DWT->CYCCNT;
i=GPIOC->I...
Of course, I used this to read registers: a0=HRTIM1->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].CNTxR;
a1=HRTIM1->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].CNTxR; I was surprised to see a difference of 28-32 ticks between the readings. This was annoying!I t...