Servus,
ich versuche mit einem Infineon XC164CM (40MHz, 1/Takfrequenz sind 25ns)
Easy Kit eine Verzögerung von 1ms mit folgendem Code zu erzeugen.
1 | #define COUNTER_1MS 2700UL // muss noch so verändert werden, dass 1ms herauskommt
|
2 |
|
3 |
|
4 | void delay(uword ms)
|
5 | {
|
6 | uword count_ms;
|
7 | ulong counter;
|
8 |
|
9 | for(count_ms=0 ; count_ms<ms ; count_ms++)
|
10 | for(counter=0 ; counter<COUNTER_1MS ; counter++); // Schleife für einzelne Millisekunden
|
11 | }
|
Die Frage ist, wie errechne ich den Wert COUNTER_1MS (hier 2700UL). Muss
man den Assembler anzeigen lassen und die Zyklen nach dem Befehlssatz
addieren? Oder gibt’s noch einfachere Wege?
Danke
Owen