What about the good old analog stuff?
Code:ANSELB.0 = 0 ' Enable digital input circuitry to work properly on PortB,0
What about the good old analog stuff?
Code:ANSELB.0 = 0 ' Enable digital input circuitry to work properly on PortB,0
Maybe I do not see your point Henrik. How does this help?
Ioannis
Ioannis, The porta and portb default to digital input buffers DISABLED. They need to be set for digital operation before this type of use. Also I have to ask, Why are you counting pulses to get the RPM value? Seems like kind of a crude method. I would look at the time between leading edges and then compute the RPM value. Much faster...
Dave Purola,
N8NTA
EN82fn
Oh I see. I thought that was trivial and eagleman would have correct setup of PIC.
Ioannis
Trivial yes, but trivial stuff can bite you plenty hard and since no setup code what so ever was posted and "Turn off analog functions" is the solution to 20%* of the questions posted here I thought it was worth a shot :-)
* I have no data to back that number up.
/Henrik.
You are absolutely right. Too many times it was the reason for erratic behavior.
Ioannis
eagleman, as of this reply, you show 2 posts. Let us get to know you a bit. How long have you worked with PICs? How about PBP specifically? Is this your 1st project, or is it your 17th?
Since you're using a K40 part, you can use MFINTOSC for TIMER1. You can either use an INT0 (or IOC) type interrupt on PORTB.0, triggered by your tach pulse, or even just use TMR1GIE. In the ISR, move your TMR1H_L to your variable Tach, then clear TMR1H_L for next round. You should disable TMR1 before reading, then re-enable after you read your values. Also be sure to clear whatever Interrupt Flag got you to the ISR (INTOIF or TMR1GIF).
The math for converting Timer pulses (Tach) to RPM is:
RPM = (Clock / Tach) * 60
In this case,
RPM = (500,000 / Tach) * 60
Right off the bat it becomes obvious that you will have to enable LONG to handle the math.
I prefer to guide people to self discovery as opposed to handing out answers. If this doesn't make sense to you, ask specific questions. Be sure to tell us what you have tried and the results you got. (You did an excellent job in Post #1).
Bookmarks