only showing me cold shoulders and accusing me of criticizing in a moment of frust their "holy" arduino board
You should note that I've never even used an Arduino, so it most certainly isn't "holy" to me, and comments like this further justify my initial assessment of your poor attitude. My entire issue is your attitude, which sucks, and the unfounded assumptions you were willing to make to justify your problems (e.g. "the Arduino is too slow"). Frustration is not an excuse to ask for help in the manner you did, at least not if you expect people to actually want to help you. It causes you to come off as somewhat whiny, lazy (e.g. it's easy to compute how fast the mega168 can carry out instructions), and petulant, and it makes it seem like you are not looking for a solution but rather for someone to help you assign blame. In general, if you're going to ask people to take their time to help you with your problem, show some respect, humility, appreciation, and desire to get to the root of the problem. Otherwise exactly what incentive to people have to drop what they're doing to try to learn what they need to know to understand your project better than you?
I truly believe this is a case of your calling working code faulty for not conforming with an erroneous assumption about the protocol of your IR device. You were willing to make incorrect assumptions about the mega168, which makes it not unreasonable to think you are doing the same with other components of your device. If you want to really test your program and you suspect that pulseIn() isn't working, write your own pulse-measuring routine (it's not hard). Ideally, do as Massimo and Oracle suggested and look at the signal with an oscilloscope to see what's really going on and how that correlates to what you measure with your Arduino.
And note that I didn't suggest that adding delays would make things work, I only pointed out that the case
you said worked was special in that it had long delays built into the loop. I believe the case you assumed was working was in fact not, and the cases you thought weren't working in fact were. My exact words were that you should try adding delays to see if it made things work in the way
you expected, which is not the same as saying it would make things work correctly.
- Ben