Hallo an alle,
ich hoffe, Ihr könnt mir weiterhelfen.
Ich bin grad dabei eine Routine zu schreiben, welche das Speedsignal aus
dem CAN-BUS raus filtert und in Rechtecksignale für ne Navi umwandelt.
Das funktioniert auch soweit in den Grundzügen, allerdings viel zu
ungenau.
Mein größtes Problem ist, das die Impulse "nachziehen", also wenn das
Auto hält gibt das Modul noch ein paar Impulse raus und man kann sehen,
wie das Navi langsam weiter läuft, obwohl das Auto steht, nach ca. 1Sek.
springt das Navi an die reale Stelle zurück.
hier mal die Routine für die Impulswandlung:
1 | void speedimpuls(unsigned int hi, unsigned int low)
|
2 | {
|
3 | double impuls;
|
4 | double i;
|
5 |
|
6 | impuls = hi + low;
|
7 | if (impuls == 0) return;
|
8 |
|
9 | impuls = (hi * 256) + low;
|
10 | impuls = impuls / 80;
|
11 |
|
12 | for (i=820; i>=impuls; i--);
|
13 |
|
14 | PORTB |= (1<<SPEEDIMP);
|
15 | for (i=0; i<200; i++);
|
16 | PORTB &= ~(1<<SPEEDIMP);
|
17 |
|
18 | }
|
hi = Hoher Bytewert
low = kleiner Bytewert
Hoffe, mir kann einer weiterhelfen oder ein Beispielcode, link oder
ähnliches geben, womit ich weiter komme.
Gruß
Hermy