TONE duty cycle

Hi everyone, i am trying to make dashboard for LFS game. I need to make two square waves, one for my tachometer and other for speedometer. Square wave should be from 0 to 300 Hz, but it could be 30-350 Hz. The problem is that tachometer stops understanding Tone pulse over 160 Hz , because duty cycle is 50% , it should be 70-80 % (i tried with digitalWrite and delay, it worked very well). Can i somehow change Tone.cpp library for higher duty cycle, or i need something else ?