Hallo,
ich habe mir einen kleinen Algorithmus ausgedacht, den ich auf einem
PIC18F in Assembler implementieren will.
Jedoch habe ich Probleme, wie ich am besten mit Nachkommastellen umgehen
soll.
Ich habe zum testen schnell ein C# Programm geschrieben um zu prüfen ob
er auch funktioniert.
1 | static void Main(string[] args)
|
2 | {
|
3 | double t0 = 1.0 / 1000;
|
4 | double tn = t0;
|
5 | double wi = 100000 / 1.0;
|
6 |
|
7 | for(int i = 0; i < 1000; ++i)
|
8 | {
|
9 | Console.WriteLine("Stepper motor make one step.");
|
10 |
|
11 | double timer0Count = tn * 1000000;
|
12 |
|
13 | Console.WriteLine("Timer 0 wait {0} micro seconds.", timer0Count);
|
14 |
|
15 | tn = (1.0 / (1.0 / tn + tn * wi));
|
16 | }
|
17 |
|
18 | Console.ReadLine();
|
19 | }
|
In C# konnte ich ja noch bequem double oder float benutzen, den Luxus
habe ich ja auf dem PIC nicht.
Eigentlicher Sinn ist es den Timer 0 Wert zu berechnen.
Da mein PIC mit 8MHz arbeitet und der Timer0 einen Prescaler von 1:2 hat
brauche ich den berechneten Wert also in Mikro Sekunden.
Kann mir jemand helfen, die Rechnung in eine komfortablere Form zu
bringen, sodass ich auf dem PIC vielleicht ohne Nachkommastellen rechnen
kann?