
Assemble Level code for a Microprocessor controlled CDI Ignition Unit.
- or -
Post a project like this4520
£75(approx. $100)
- Posted:
- Proposals: 4
- Remote
- #191458
- Awarded
Description
Experience Level: Intermediate
Hi All,
I am looking for an Assembly level programmer.
I have designed a small programmable CDI Ignition unit based on the old PIC16F84 microprocessor. I measure the engine RPM by counting the number of timing loops (of 100us) between two consecutive input sensor signals. From this measurement, I use a lookup table to read out the correct delay between the sensor input and firing the plug, for that measured RPM. The unit works well and is currently in use on a number of engines already. Because the clock frequency is only 4MHz and the timing loops are 100us, there is significant error in the timing advance at higher RPM.
If the exact delay for perfect timing is equivelent, say, 578us, then my system will count 5 timing loops (500us) and look up the delay in the table for that value, creating an error. This can cause an error of more than 2 degrees at high RPM. This can be seen when using a timing light, the 'wobble' is very discernible.
I could use a faster microprocessor (40MHz) and thus reduce the error to only 10% of current but I still want to get it perfect, ie, zero 'wobble'.
I need a programmer who can:
1. Recommend a more suitable microprocessor whose assemble code they are familiar with.
2. Write a more accurate RPM measuring code
3. Transfer/replace my 16F84 code to the new processor.
There are other feature it would be useful to have so this will be an ongoing project.
I am looking for an Assembly level programmer.
I have designed a small programmable CDI Ignition unit based on the old PIC16F84 microprocessor. I measure the engine RPM by counting the number of timing loops (of 100us) between two consecutive input sensor signals. From this measurement, I use a lookup table to read out the correct delay between the sensor input and firing the plug, for that measured RPM. The unit works well and is currently in use on a number of engines already. Because the clock frequency is only 4MHz and the timing loops are 100us, there is significant error in the timing advance at higher RPM.
If the exact delay for perfect timing is equivelent, say, 578us, then my system will count 5 timing loops (500us) and look up the delay in the table for that value, creating an error. This can cause an error of more than 2 degrees at high RPM. This can be seen when using a timing light, the 'wobble' is very discernible.
I could use a faster microprocessor (40MHz) and thus reduce the error to only 10% of current but I still want to get it perfect, ie, zero 'wobble'.
I need a programmer who can:
1. Recommend a more suitable microprocessor whose assemble code they are familiar with.
2. Write a more accurate RPM measuring code
3. Transfer/replace my 16F84 code to the new processor.
There are other feature it would be useful to have so this will be an ongoing project.

Gary W.
100% (24)Projects Completed
32
Freelancers worked with
27
Projects awarded
36%
Last project
18 Jan 2021
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies