	
	//----------------------------------------------
	//[i] function_void set_hz int32;
	public void set_hz( int32 t )
	{
		int32 nT = 1000000000 / t;
		set_ns( nT );
	}
	//----------------------------------------------
	//[i] function_void set_us int32;
	public void set_us( int32 t )
	{
		int16 n = (int16)(t * 16);
		uint16 data = (uint)n;
		#.MEGA328.OCR1AH = data.8(uint8);
		#.MEGA328.OCR1AL = data.0(uint8);
	}
	//----------------------------------------------
	//[i] function_void set_ns int32;
	public void set_ns( int32 t )
	{
		int16 n = (int16)(t * 10 / 625);
		uint16 data = (uint)n;
		#.MEGA328.OCR1AH = data.8(uint8);
		#.MEGA328.OCR1AL = data.0(uint8);
	}
	//----------------------------------------------
	//[i] function_void start;
	public void start()
	{
		#.MEGA328.TIMSK1 | 0b0000_0010;
	}
	//----------------------------------------------
	//[i] function_void stop;
	public void stop()
	{
		#.MEGA328.TIMSK1 & 0b1111_1101;
		SOUND_OUT = 0;
	}
	//----------------------------------------------
	//ʱʼ
	// 16MHz, ƵΪ1, ƵΪ 16000000Hz
	//ֵΪ 23 * 256 + 112 = 6000
	//жƵΪ 16000000Hz / 6000 = 1000Hz
	void timer_init()
	{
		//ģʽ
		#.MEGA328.TCCR1A = 0;
		#.MEGA328.TCCR1B = 0b0000_1001;
		//ʱ
		#.MEGA328.OCR1AH = 23;
		#.MEGA328.OCR1AL = 112;
		//ʹж
		//MCU TIMSK | 0b0001_0000;
		//ж
		#.MEGA328.TIFR1 | 0b0000_0010;
	}
	//----------------------------------------------
	//жϷ
	interrupt [#.MEGA328.WATCH.TIMER1_COMPA] fast
	void timer1_compA()
	{
		//SOUND_OUT = ~SOUND_OUT;
		
		//#asm "sbic &SOUND_OUT"
		//#asm "cbi &SOUND_OUT"
		//#asm "sbis &SOUND_OUT"
		//#asm "sbi &SOUND_OUT"
		
		//˿д1仯
		SOUND_IN = 1;
	}
	
	
	