Hallo! ich nehme mal folgendes an: du willst ne translation messen, die
als übliche SI-Einheit dargestellt werden soll. Wenn du die zeit
gemessen hast brauchst du nur noch wie du schon gesagt hast, v = s/t
also musst du für ergebnis in m/s die gemessene Zeit in MILI-Sekunden
haben! Du teilst dann den Wert des Weges in mm!! durch die gemessene
Zeit in ms. Die "mili" kürzen sich dann weg.
c code:
char t,v;
.
.
.
v = 200/t;
ASM-Code: // in main wird die rechnung v=s/t vollzogen(t in ms und s
ist 200mm)
processor 16F689
radix DEC
Carry EQU 0
RP0 EQU 5
RP1 EQU 6
t EQU 0x24
v EQU 0x25
C1cnt EQU 0x20
C2tmp EQU 0x21
C3rem EQU 0x23
GOTO main
main
MOVLW .200
BCF 0x03,RP0
BCF 0x03,RP1
MOVWF C2tmp
CLRF C3rem
MOVLW .8
MOVWF C1cnt
m001 BCF 0x03,RP0
BCF 0x03,RP1
RLF C2tmp,1
RLF C3rem,1
MOVF t,W
SUBWF C3rem,W
BTFSS 0x03,Carry
GOTO m002
BCF 0x03,RP0
BCF 0x03,RP1
MOVF t,W
SUBWF C3rem,1
BSF 0x03,Carry
m002 BCF 0x03,RP0
BCF 0x03,RP1
RLF v,1
DECFSZ C1cnt,1
GOTO m001
SLEEP
GOTO main
END