
//ͨģNRF2401SPIӿ
//оƬ:	AVRоƬ


	public void port_init()
	{
		CE.D0_DIR = 1;
		CE.D0_OUT = 0;
		
		CSN.D0_DIR = 1;
		CSN.D0_OUT = 1;
		
		IRQ.D0_DIR = 0;
		IRQ.D0_OUT = 1;
	}
	
	public unit spi
	{
		public link bit SCK_DIR;	//ʱ
		public link bit SCK_IN;		//ʱ
		public link bit SCK_OUT;	//ʱ
		
		public link bit MISO_DIR;	//ݶ˿
		public link bit MISO_IN;	//ݶ˿
		public link bit MISO_OUT;	//ݶ˿
		
		public link bit MOSI_DIR;	//дݶ˿
		public link bit MOSI_IN;	//дݶ˿
		public link bit MOSI_OUT;	//дݶ˿
		
		//=============================================
		//ʼ
		public void init()
		{
			SCK_DIR = 1;
			SCK_OUT = 0;
			
			MOSI_DIR = 1;
			MOSI_OUT = 0;
			
			MISO_DIR = 0;
			MOSI_OUT = 1;
		}
		//=============================================
		//дһֽ
		public void write_byte( uint8 data )
		{
			loop( 8 ) {
				MOSI_OUT = data.7(bit);
				#asm "nop"
				SCK_OUT = 1;
				#asm "nop"
				SCK_OUT = 0;
				data << 1;
			}
		}
		//=============================================
		//һֽ
		public uint8 read_byte()
		{
			MOSI_OUT = 0;
			uint8 data;
			loop( 8 ) {
				data << 1;
				SCK_OUT = 1;
				#asm "nop"
				data.0(bit) = MISO_IN;
				#asm "nop"
				SCK_OUT = 0;
			}
			return data;
		}
	}















