PDA

View Full Version : Olympic Timer MPH readout



Macgman2000
- 15th August 2005, 22:18
Hello,

I want to display miles per hour rather than seconds or milliseconds using Melanie's Olympic timer. Has anyone modified the code to do that? I would appreciate any help!

Best Regards,
Nick

Melanie
- 16th August 2005, 09:29
Kinda vague question...

If the Start and Stop Buttons are sensors between a known set distance, then all you need is the addition of a bit of math to give you mph.

If however you're counting pulses from a tacho or other sensor, then that code is probably not suitable.

Macgman2000
- 16th August 2005, 13:56
Hello Melanie,

I guess the question would be, where in your Olympic timer code can I add the math to calculate the speed d/t=s. Since it will be over a 10 foot distance I would want to use the hundredths of seconds variable you have in the code. I am expecting no slower than 5mph and no faster than 30mph.

Best Regards,
Nick

Melanie
- 16th August 2005, 18:17
This is the current Display Code...


DisplayLoop:
If ButStart=0 then RunningFlag=1
If ButStop=0 then RunningFlag=0
LCDOut $FE,$80,DEC2 Hours,":",DEC2 Minutes,":",DEC2 Seconds,".",DEC2 Hundredths
If OverflowError=1 then
If Seconds.0=1 then
LCDOut $FE,$8C,"ERR"
else
LCDOut $FE,$8C," "
endif
endif
If RunningFlag=1 then goto DisplayLoop
If ButReset=1 then goto DisplayLoop
Disable

You could completely rehash it, or simply tack-on the math and display like so (assuming a 2-lince LCD screen)...


DisplayLoop:
If ButStart=0 then RunningFlag=1
If ButStop=0 then RunningFlag=0
LCDOut $FE,$80,DEC2 Hours,":",DEC2 Minutes,":",DEC2 Seconds,".",DEC2 Hundredths
If OverflowError=1 then
If Seconds.0=1 then
LCDOut $FE,$8C,"ERR"
else
LCDOut $FE,$8C," "
endif
endif
If RunningFlag=1 then goto DisplayLoop

' *** perform math here - assume resultant variable mph is in tenths of mile/hour

LCDOut $FE,$C0,#mph DIG 2,#mph DIG 1,".",#mph DIG 0," mph "
If ButReset=1 then goto DisplayLoop
Disable

that way you get the elapsed Time ticking, with the mph only being displayed (to one decimal place per my above example) after the clock has stopped.

Macgman2000
- 17th August 2005, 13:41
Thanks Melanie !!!!

Best Regards,
Nick

Leonardo
- 17th August 2005, 17:47
Hello, You can send I code to me of olympic to timer of melanie to prove it. Thanks

Leonard






Hello,

I want to display miles per hour rather than seconds or milliseconds using Melanie's Olympic timer. Has anyone modified the code to do that? I would appreciate any help!

Best Regards,
Nick

Melanie
- 17th August 2005, 18:14
Search for 'Olympic Timer' on this forum and you can download it for yourself.

Leonardo
- 18th August 2005, 01:23
Hello Melanie,

Thank you for their answer, I have this code and I want that when it is I number 1 blink, I number 2 blink and I number 3 blink but I cannot make it you can give me some suggestion.

Thank you

SYMBOL LED1 = PORTB.0 'PIN 6
SYMBOL LED2 = PORTB.1 'PIN 7
SYMBOL LED3 = PORTB.2 'PIN 8



SYMBOL SW1 = PORTA.0 'PIN 17
SYMBOL SW2 = PORTA.1 'PIN 18
SYMBOL SW3 = PORTA.2 'PIN 1



LOW LED1
LOW LED2
LOW LED3

LOW SW1
LOW SW2
LOW SW3

TRISA = 1 'PUERTO A COMO ENTRADAS
TRISB = 0 'PUERTO B COMO SALIDAS

PAUSE 5000 'TIEMPO DE ESPERA PARA ARMAR LA ALARMA




LOOP:
IF SW1 = 1 THEN
PAUSE 3000
PORTB = %00000110
ENDif




IF SW2 = 1 THEN
PAUSE 6000 'TIMER 10 SEG
PORTB = %01011011
ENDIF


IF SW3 = 1 THEN
PAUSE 8000
PORTB = %01001111
ENDIF
GOTO LOOP









Search for 'Olympic Timer' on this forum and you can download it for yourself.

Melanie
- 18th August 2005, 09:05
Your question isn't exactly anything to do with the topic being discussed here Leonardo. Please post in the appropriate section adding which compiler you are using PBP or PBC and what PIC you are programming for.

Leonardo
- 19th August 2005, 00:24
Thank you, but then which is the section to ask the question, my compiler is PBP and the pic it is PIC16F628.

Thank you





Your question isn't exactly anything to do with the topic being discussed here Leonardo. Please post in the appropriate section adding which compiler you are using PBP or PBC and what PIC you are programming for.

Melanie
- 19th August 2005, 08:14
If you are using PBP, then I question why you are using PBC instructions like 'SYMBOL'?

I have absolutely no idea what you are trying to achieve, but the code below will at least do something... whether it is what you want is another matter.


LED1 var PORTB.0 'PIN 6
LED2 var PORTB.1 'PIN 7
LED3 var PORTB.2 'PIN 8

SW1 var PORTA.0 'PIN 17
SW2 var PORTA.1 'PIN 18
SW3 var PORTA.2 'PIN 1

TRISA=%00000111
TRISB=0
CMCON=%00000111

LOW LED1
LOW LED2
LOW LED3

PAUSE 5000 'TIEMPO DE ESPERA PARA ARMAR LA ALARMA

LOOP:
IF SW1 = 1 THEN
PORTB = %00000110
Pause 3000
ENDif

IF SW2 = 1 THEN
PORTB = %01011011
Pause 6000
ENDIF

IF SW3 = 1 THEN
PORTB = %01001111
Pause 8000
ENDIF

PORTB=0
GOTO LOOP
END

I don't know how you have your switches connected, but you should ensure the PIC pins on PORTA are not left floating at any time.

Next time, if it is PBP you are using, post your question in the Mel PICBASIC Pro category as a New Thread.

Leonardo
- 19th August 2005, 16:34
Hello, I feel much to bother Mellanie but until now I am learning to use the PBP and I need to make these questions to be everything an expert in PBP as you are it.

What attempt is the following thing:
When sw1 is on to timer by 3 seg digit to number 1
When sw2 is on to timer by 6 seg digit to number 2
When sw3 is on to timer by 8 seg digit to number 3

If when igniting pic is other pin in 0 then shows it immediately according to his I number, but if all sw1, sw2, sw3 are 0 they are in delay to timer. Also I want that when anyone of the digit ignites this seg does blink 1.

Thanks again

Code is:
'************************************************* ***************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2005 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 16/08/05 *
'* Version : 1.0 *
'* Notes :FOR PIC16F628, *
'* : USE PBP *
'************************************************* ***************

SYMBOL LED1 = PORTB.0 'PIN 6
SYMBOL LED2 = PORTB.1 'PIN 7
SYMBOL LED3 = PORTB.2 'PIN 8
SYMBOL LED4 = PORTB.4 'PIN 9

SYMBOL SW1 = PORTA.0 'PIN 17
SYMBOL SW2 = PORTA.1 'PIN 18
SYMBOL SW3 = PORTA.2 'PIN 1

LOW LED1
LOW LED2
LOW LED3

LOW SW1
LOW SW2
LOW SW3

TRISA = 1 'PUERTO A COMO ENTRADAS
TRISB = 0 'PUERTO B COMO SALIDAS

LOOP0:
IF SW1 = 0 AND SW2 = 0 AND SW3 = 0 THEN LOOP
IF SW1 = 1 AND SW2 = 0 AND SW3 = 0 THEN LOOP1
IF SW1 = 1 AND SW2 = 1 AND SW3 = 0 THEN LOOP2
IF SW1 = 1 AND SW2 = 1 AND SW3 = 1 THEN LOOP3


LOOP:
IF SW1 = 1 THEN
PAUSE 3000
PORTB = %00000110 'DIGIT NUMBER 1
ENDif

IF SW2 = 1 THEN
PAUSE 6000 'TIMER 10 SEG
PORTB = %01011011 'DIGIT NUMBER 2
ENDIF

IF SW3 = 1 THEN
PAUSE 8000
PORTB = %01001111 DIGIT NUMBER 3
ENDIF

GOTO LOOP

LOOP1:

PORTB = %00000110 ' DIGIT NUMBER 1
GOTO LOOP1

LOOP2:
PORTB = %01011011 'DIGIT NUMBER 2
goto LOOP2

LOOP3:
PORTB = %01001111 'DIGIT NUMBER 3
GOTO LOOP3


GOTO LOOP0


















If you are using PBP, then I question why you are using PBC instructions like 'SYMBOL'?

I have absolutely no idea what you are trying to achieve, but the code below will at least do something... whether it is what you want is another matter.


LED1 var PORTB.0 'PIN 6
LED2 var PORTB.1 'PIN 7
LED3 var PORTB.2 'PIN 8

SW1 var PORTA.0 'PIN 17
SW2 var PORTA.1 'PIN 18
SW3 var PORTA.2 'PIN 1

TRISA=%00000111
TRISB=0
CMCON=%00000111

LOW LED1
LOW LED2
LOW LED3

PAUSE 5000 'TIEMPO DE ESPERA PARA ARMAR LA ALARMA

LOOP:
IF SW1 = 1 THEN
PORTB = %00000110
Pause 3000
ENDif

IF SW2 = 1 THEN
PORTB = %01011011
Pause 6000
ENDIF

IF SW3 = 1 THEN
PORTB = %01001111
Pause 8000
ENDIF

PORTB=0
GOTO LOOP
END

I don't know how you have your switches connected, but you should ensure the PIC pins on PORTA are not left floating at any time.

Next time, if it is PBP you are using, post your question in the Mel PICBASIC Pro category as a New Thread.

NavMicroSystems
- 19th August 2005, 17:56
Hello, I feel much to bother Mellanie but until now I am learning to use the PBP and I need to make these questions to be everything an expert in PBP as you are it.

Leonardo,

first of all you should make yourself familiar with the "Forum Rules"

Melanie has already asked you twice to start a new thread in an appropriate category.

Please see: THIS (http://www.picbasic.co.uk/forum/showpost.php?p=8765&postcount=2)