Martin Fischer schrieb:
>
1 | > void delay(_IO uint32_t time){
|
2 | > while(time--);
|
3 | > }
|
4 | >
|
Solche delay-Schleifen sind irgendwie Kokolores.
Wenn Du im ms Bereich bleibst, kannst Du auf den Systick zurückgreifen.
Im µs Bereich nehme ich den Cyclecounter (der wird mit jedem ALU Takt um
eins erhöht). Die Doku dazu findest Du bei ARM. Im ST RefManual steht
dazu nichts. Vorteil des Cyclecounter ist, dass er keine ISR benötigt,
somit keine Rechenzeit kostet. Der Cyclecounter liegt bei 0xE000EDFC,
0xE0001000 und das Zählerregister bei 0xE0001004.
Bei Fragen fragen.