Wpis z mikrobloga

#stm32 #mikrokontrolery

Czemu przy 48 MHz jeden nop trwa dużo więcej niż teoretyczny jeden cykl zegara (20,83 ns)? Sprawdzane na oscyloskopie.
Podniesienie stanu na pinie przez HAL ma pewnie jakiś tam narzut, bo są jakieś asserty robione, ale przepisanie tego na rejestry niewiele pomogło.
  • 7
@revoolution: no chwila, a jak sobie to naklepię w asm, to nadal

przestaw pin na 1
nop
przestaw pin na 0

będzie powodowało stan wysoki na pinie kilkanaście razy dłuższy niż w teorii?
Czemu przy 48 MHz jeden nop trwa dużo więcej niż teoretyczny jeden cykl zegara (20,83 ns)? Sprawdzane na oscyloskopie.


@zwei: Bo źle to mierzysz. Ustawienie pinu to nie jest 1 cykl. Musisz załadować adres rejestru IO do rejestru procesora, załadować liczbę do drugiego rejestru procesora i dopiero wysłać to na port. Wszystko zakładając, że nie używasz HALa, bo on da ci narzut kilkudziesięciu cykli. Po drodze jest jest przepustowość pamięci flash