Kod: Markera allt
long currentTime = micros();
microsSinceLastChange = (currentTime - timeOfLastPinChange);
timeOfLastPinChange = currentTime; Kod: Markera allt
long currentTime = micros();
microsSinceLastChange = (currentTime - timeOfLastPinChange);
timeOfLastPinChange = currentTime; Antar att du kör med pull-upp i processorn, Det fungerar inte med 10k i serie så om du har pull-upp så sätt som nedan.ankan skrev:Har testat nu och det fungerade inget vidare tyvärr.
Med motståndet blev signalen så pass svag så jag inte fick några avbrott längre och kondingen vet jag inte om den gjorde någon skillnad.
Tycker tyvärr inte att filtret gjorde någon skillnad annars.
Kollade med oscilloskopet och det ser ut som att jag får mest störningar runt 0-10khz.
PHermansson skrev:Vid varje nivåändring på Int-pinnen (void pinChange) så sparas aktuell tid (timer-värde, ges av micros() ). Det aktuella timervärdet minus det förra timervärdet = tiden mellan att pinnen har ändrat nivå = pulslängden.
Kod: Markera allt
long currentTime = micros(); microsSinceLastChange = (currentTime - timeOfLastPinChange); timeOfLastPinChange = currentTime;
Tack du, jag kan allt använda en uC. Lärde mig Pic med Asm i slutet av 90-talet med hjälp av datablad och genom att analysera färdiga program.Icecap skrev:Och allt detta trams med att använda en timer är för dom som inte kan använda en µC.