#### ## ## ## ## ## ## ####
_______ |__ __| | | | | | | |_|
##### ## ## ## ## ##### ## ##
## # ## ## # # ## ## # ### ## ## ## # #
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: *knock_act function seems with bug "if (kc->cnt){return;}". So while advance timer count and engine knocking -> no retard applied and knock event skipped. Condition should be moved to branch "if (knock_state == kc->state) {}" (if same state only, else change state and count from begin) *Separate gain needed for each cyl, not channel, but cyl (h[3] for example) *I tried intergator constant depended from rpm, data rise rapidly with rpm, so fixed constant works better. *I think noise window should be dropped and replaced with noise map (same bins as VE table). *I also tried to add additional condition for knock check. mean_val=mean_val*15/16+knock_val/16; if (knock_val>mean_val*configurable_constant) {KNOCK} *Also i added separate noise reference values for each cyl (h[4] for example), so threshold value = noise map value * reference value. And selfcalibration for reference values and gain possible, average of knock values when 2000<rpm<2500 and map<30kpa. If too big or too small then change gain. Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.