Oh I see. I thought that was trivial and eagleman would have correct setup of PIC.
Ioannis
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