亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wlan_phoenix.c

?? 利用PIC單片機來驅(qū)動WLAN卡
?? C
?? 第 1 頁 / 共 5 頁
字號:
//************************************************************************************************
//* WLAN PHOENIX DRIVER
//* LAST UPDATED 08/09/2008
//* FIRMWARE BY FRED EADY FOR NUTS AND VOLTS MAGAZINE's DESIGN CYCLE
//* CHANGES/ADDITIONS
//* 01/10/05	in wr_cf_data changed wr_cf_io16s to wr_cf_io16
//* 04/01/05	added WAIT input at RG4..Grounded CSEL at CF connector
//* 04/15/05	fixed arp response bap_write changed +8 to +16 to pick up 12 bytes of source/dest mac addr length and 4 bytes of data length
//* 04/15/05	added code to buffer_alloc_event_handler to handle possible new reclaimed FID
//* 04/15/05	added WEP capability
//*	04/15/05	changed fidrid buffer size to 256
//* 08/06/08	changed flags to structure format
//* 08/09/08	reworked the application to send 8-byte udp packet
//************************************************************************************************
//* THIS VERSION --
//* * NO WEP
//* * PARSES FOR COR ADDR
//* * DOES NOT CREATE CIS DUMP FOR USE WITHIN MPLAB AS DESCRIBED IN THE BOOK
//* * IP ADDRESS = 192.168.1.150
//* * SSID = PHOENIX_NETWORK
//************************************************************************************************

#include <pic18.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>
#include <htc.h>
#include "wlan_phoenix.h"


// PIC18LF6722 FUSES
__CONFIG(1,FCMDIS & IESODIS & HS);
__CONFIG(2,BORDIS & PWRTDIS & WDTDIS);
__CONFIG(3,LPT1DIS & MCLREN);
__CONFIG(4,DEBUGEN & LVPDIS & STVREN & XINSTDIS);
__CONFIG(5,UNPROTECT);
__CONFIG(6,WRTEN);
__IDLOC(0824);

__EEPROM_DATA(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);

#define esc 0x1B

#if (ad802_11Header)
	#define TxControl				0x0C	// Transmit frame structure TxControl field (use 802.11 Frame Structure header fields, generate a
											// TxExc event if frame transmit problem, don't generate a TxExc event if the transmit is successful)
	#define txdestaddr_offset		30		// Bytes from beginning of transmit frame structure to destination Ethernet MAC address
	#define txbssid_offset			18		// Bytes from beginning of transmit frame structure to BSS ID
	#define datalength_offset		44		// Bytes from beginning of transmit frame structure to to Length field
	#define rxsourceaddr_offset		30		// For receive only
	#define rxdestaddr_offset		18		// Bytes from beginning of receive frame structure to destination Ethernet MAC address
	#define rxbssid_offset			24		// Bytes from beginning of receive frame structure to BSS ID
#else
	#define TxControl				0x04	// Transmit frame structure TxControl field (use 802.3 Frame Structure header fields, generate a
													// TxExc event if frame transmit problem, don't generate a TxExc event if the transmit is successful)
	#define txbssid_offset			18		// Bytes from beginning of transmit frame structure to BSS ID

	#define txdestaddr_offset		46
	#define txsourceaddr_offset		52
	#define rxdestaddr_offset		46
	#define rxsourceaddr_offset		52
	#define datalength_offset		58		// Bytes from beginning of transmit frame structure to 802.3 byte-swapped format length field
#endif
#define rxdatalength_offset			44		// use the length from the 802.11 part of the header, as it
#define rxdata_offset				60
#define txdata_offset			    60

#define framestructure_size			46			// Number of bytes in Compact Flash data Frame Structure (including the unused 802.11 header bytes, but not the 802.3 header)
#define ethheader_size				14			// Number of bytes in the Compact Flash data Frame Structure 802.3 header
#define mac_length			     	6
#define snap_length					3
#define eth_mtu_buffer_size			1500
#define txframe_buffer_size			eth_mtu_buffer_size+framestructure_size+ethheader_size	


#define fidrid_buffer_size	256
unsigned int fidrid_buffer[fidrid_buffer_size];

#define rxframeheader_buffer_size	framestructure_size+ethheader_size				
char rxframeheader_buffer[rxframeheader_buffer_size];

char tple_data[1024];

char comframe_buffer[60];
unsigned int TxFID_buffers[3];
char free_TxFIDs;
unsigned int RxFID,i;
//char tempstring[];
char aux_data[2],macaddrc[6],bssidc[6],remotemacaddrc[6];  
unsigned int macaddri[3],ipaddri[2],bssidi[3],remotemacaddri[3],remoteipaddri[2];
unsigned int *addr,cmd_data,cor_addr;
char byte_read,data_H,data_L,cntrc,byteout;
unsigned int txlen,rxlen,chksum16,hdrlen,tcplen,tcpdatalen_in,cntri;
unsigned int tcpdatalen_out,ISN,portaddr,ip_packet_len;
unsigned long hdr_chksum,my_seqnum,client_seqnum,incoming_ack,expected_ack;
char error;
 

const char ssid[] = "PHOENIX_NETWORK";
//const char wepkey[] = {0x46,0xFA,0xF1,0x7C,0x83,0x99,0xC7,0x6B,0x85,0x81,0xEE,0x48,0x8A,0x00};
const char wepkey[] = {0x80,0x1E,0x6F,0x12,0xBB,0x5C,0xCA,0x53,0x50,0xAC,0xA4,0x4B,0x0A,0x00};

//******************************************************************
//*	IP ADDRESS DEFINITION
//*   This is the Ethernet Module IP address.
//*   You may change this to any valid address.
//******************************************************************
char ipaddrc[4]; // = {192,168,1,150};
char remoteipaddrc[4]; // = {192,168,1,100};
//******************************************************************
//*	Function Declarations
//******************************************************************
void interrupt USART(void);
void config_ip(void);
void init_USART1(void);
unsigned char CharInQueue(void);
void putch(unsigned char c);
int recvchar(void);
int sendchar(int data);
char phoenix_cfg(unsigned int cmd);
void wr_cf_data(char bapnum,char* buffer,unsigned int count);
void rd_cis(void);
void init_nic(void);
void wr_cf_addr(unsigned int addr);
void wr_cf_reg(unsigned int data, unsigned int reg_addr);
char rd_cf_reg(unsigned int reg_addr);
void wr_cf_io16(unsigned int data16,unsigned int addr);
void wr_cf_io16s(unsigned int data16,unsigned int addr);
unsigned int rd_cf_io16(unsigned int addr);
unsigned int rd_cf_io16s(unsigned int addr);
char send_command(unsigned int cmd, unsigned int parm0);
char rid_write(unsigned int fidrid, unsigned int* buffer, unsigned int count);
char bap_write(unsigned int fidrid,unsigned int offset,char* buffer, unsigned int count);
void rid_string_write(unsigned int fidrid, unsigned int ridlen, unsigned int* buffer);
char fid_read(unsigned int fid);
char rid_read(unsigned int rid);
void create_comframestructure(unsigned int len);
char allocate_buffer(unsigned int bufferlen);
char allocate_xmit_buffers(void);
unsigned int get_free_TxFID(void);
unsigned int swapbytes(unsigned int val);
void do_event_housekeeping(void);
void setipaddrs(void);
void cksum(void);
char echo_packet(void);
//void Delay_ms(unsigned int mticks);
char arp(void);
char arp_request(void);
void icmp(void);
void udp(void);
void tcp(void);
void send_tcp_packet(void);
void init_udp(void);
char send_udp(void);
char send_udp_discard(void);
void application_code(void);
//void assemble_ack(void);
void delay_ms(char delay);
char phoenix_max_datalen(unsigned int max_len);
void get_octet(void);
void get_frame(void);
void cls(void);
void display_menu(void);

unsigned int msecs;
char hours, mins, secs;
char chr_count,bytein;
char eeaddr,send_secs;
// ip_address_3.ip_address_2.ip_address_1.ip_address_0
// 192         .168         .1           .150
char ee_parms[14];
#define eedata_saved				0x00
#define local_ipaddr				0x01
#define	local_ipaddr3				0x01
#define	local_ipaddr2				0x02
#define	local_ipaddr1				0x03
#define	local_ipaddr0				0x04
#define rmt_ipaddr					0x05
#define	rmt_ipaddr3					0x05
#define	rmt_ipaddr2					0x06
#define	rmt_ipaddr1					0x07
#define	rmt_ipaddr0					0x08
#define loopsecs					0x09
#define local_udpaddr_hi			0x0A
#define local_udpaddr_lo			0x0B
#define remote_udpaddr_hi			0x0C
#define remote_udpaddr_lo			0x0D
#define eeparm_end					0x0E

char ipentry[3];
#define chr_3				0x00
#define chr_2				0x01
#define chr_1				0x02
//******************************************************************
//*	Flags
//******************************************************************
typedef struct
{
	char synflag:1;
	char finflag:1;
	char entryflag:1;
	char arpflag:1;
	char cisflag:1;
	char validchar:1;
	char exitflag:1;
	char eedataflag:1;
} SFLAGS;

SFLAGS flags;
//******************************************************************
//*	Macros
//******************************************************************
#define bitset(var, bitno) ((var) |= 1 << (bitno))
#define bitclr(var, bitno) ((var) &= ~(1 << (bitno)))
#define make8(var,offset)	((unsigned int)var >> (offset * 8)) & 0x00FF
#define	make16(varhigh,varlow)	(((unsigned int)varhigh & 0xFF)* 0x100) + ((unsigned int)varlow & 0x00FF)
#define make32(var1,var2,var3,var4) \
		((unsigned long)var1<<24)+((unsigned long)var2<<16)+ \
		((unsigned long)var3<<8)+((unsigned long)var4)		
#define make32i(var1,var2) ((unsigned long)var1<<16)+((unsigned long)var2)

//******************************************************************
//*	CIS
//******************************************************************
#define io_en_mask		0x01
#define rd_code_tuple	rd_cf_reg
#define rd_link_tuple	rd_cf_reg
#define rd_tuple_data	rd_cf_reg
#define rd_cor_data	    rd_cf_reg
#define wr_cor_data		wr_cf_reg
//******************************************************************
//*	PORT Definitions
//******************************************************************
#define AOUT	 LATA
#define BOPEN	 PORTB
#define COPEN    PORTC
#define data_in  PORTD
#define data_out LATD
#define PCTL     LATF
#define addr_hi	 LATG
#define addr_lo	 LATE
//******************************************************************
//*	CF I/O Definitions
//******************************************************************
#define OE			0x01
#define IORD		0x02
#define REG			0x04
#define	NC8			0x08
#define RSET		0x10
#define WE			0x40
#define IOWR		0x80
#define set_OE   	PCTL |= OE
#define clr_OE   	PCTL &= ~OE
#define set_IORD    PCTL |= IORD
#define clr_IORD   	PCTL &= ~IORD
#define set_IOWR   	PCTL |= IOWR
#define clr_IOWR   	PCTL &= ~IOWR
#define set_WE   	PCTL |= WE
#define clr_WE   	PCTL &= ~WE
#define set_RSET   	PCTL |= RSET
#define clr_RSET   	PCTL &= ~RSET
#define set_REG   	PCTL |= REG
#define clr_REG   	PCTL &= ~REG
#define IREQ		RF5
//******************************************************************
//*	PORT TRIS Definitions
//******************************************************************
#define TO_NIC		TRISD = 0x00
#define FROM_NIC	TRISD = 0xFF
#define SETUP_A	    TRISA = 0xFF;	
#define SETUP_C		TRISC = 0x80;
#define SETUP_E	    TRISE = 0x00;	\
					LATE = 0x00;
#define SETUP_F		TRISF = 0x28;	\
					LATF = 0xFB;
#define SETUP_G		TRISG = 0x00;	\
					LATG = 0xE0;	
			        //CE1 = 0;		
				    //CE2 = 1;


#define  BSS			0x01		//infrastructure network
#define  IBSS			0x02		//ad-hoc network
#define  SSID			0x03		//SSID for desired connection
#define  MAX_DATALEN	0x04		//Set maximum data length
#define  NIC_RATE		0x05		//Set NIC speeds
#define  WEP_KEYID		0x06		//use WEB Key 0-3
#define  WEP_KEY_64		0x07
#define  WEP_KEY_128	0x08		//WEP key value
#define  WEP_ON			0x09
#define  WEP_OFF		0x0A
#define  WEP_AUTH_SK	0x0B
#define  WEP_AUTH_OS	0x0C
#define  WEP_AUTH_ALL	0x0D

#define		TIMER3ON		 TMR3ON = 1
#define		TIMER3OFF		 TMR3ON = 0
#define		disable_TMR3int  TMR3IE = 0
#define		enable_TMR3int	 TMR3IE = 1
#define		disable_RXint	 RCIE = 0
#define		enable_RXint	 RCIE = 1
#define		enable_GLOBALint IPEN = 0;				\
							 GIE = 1;				\
							 PEIE = 1;
#define		disable_GLOBALint IPEN = 0;				\
							 GIE = 0;				\
							 PEIE = 0;

#define BAUD1	57600		//desired baud rate
#define FOSC	20000000	//oscillator frequency
#define DIVIDER1 ((unsigned int)(FOSC/(16 * BAUD1) -1))
//1,2,4,8,16,32,64,128 or 256 bytes 
#define USART_RX_BUFFER_SIZE  16      
#define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE - 1 )
// 1,2,4,8,16,32,64,128 or 256 bytes 
#define USART_TX_BUFFER_SIZE  16      
#define USART_TX_BUFFER_MASK ( USART_TX_BUFFER_SIZE - 1 )

unsigned char USART_RxBuf[USART_RX_BUFFER_SIZE],USART_TxBuf[USART_TX_BUFFER_SIZE];
unsigned char USART_TxHead,USART_TxTail,USART_RxHead,USART_RxTail;

void delay_ms(char delay)
{
	char a,b,c;

	c = delay;
	do{
	a=0x06;
    do
    {
	b=0x00;
	while(--b);
	}while(--a);
    b=0x7B;
	while(--b);
	}while(--c);
}

unsigned int swapbytes(unsigned int val)
{
	char temphi,templo;
	
	temphi = make8(val,1);
	templo = make8(val,0);
	return(make16(templo,temphi));
}

void dump(unsigned int FID)
{
	unsigned int temp,i;
	 	temp = rd_cf_io16(Offset0_Register);
		if(!(temp & BAP0Busy_Bit_Mask))
		{
		 wr_cf_io16(FID,Select0_Register);
	     wr_cf_io16(0,Offset0_Register);
	     do{
			temp = rd_cf_io16(Offset0_Register);
		   }while(temp & BAP0Busy_Bit_Mask);
         
		 for(i=0;i<120;++i)
		  fidrid_buffer[i] = rd_cf_io16(Data0_Register);
         }
}

void putch(unsigned char c)
{
   while(!TRMT) 	// TRMT1 is set when TSR is empty
      continue;

  TXREG1 = c;		// load the register
}

//******************************************************************
//*	Init USART Function
//******************************************************************
void init_USART1(void)
{
  SPBRG1 = DIVIDER1;	//load baud rate divisor	
  TRISC7 = 1;			//receive pin
  TRISC6 = 0;			//transmit pin
  TXSTA1 = 0x04;		//high speed baud rate	
  RCSTA1 = 0x80;		//enable serial port and serial port pins

  
  USART_RxTail = 0x00;	//flush receive buffer 
  USART_RxHead = 0x00;
  USART_TxTail = 0x00;	//flush transmit buffer
  USART_TxHead = 0x00;
  RC1IP = 1;			//receive interrupt = high priority
  TX1IP = 1;			//transmit interrupt = high priority
  RC1IE = 1;			//enable receive interrupt
  PEIE = 1;				//enable all unmasked peripheral interrupts
  GIE = 1;				//enable all unmasked interrupts
  CREN = 1;			//enable USART1 receiver
  TX1IE = 0;			//disable USART1 transmit interrupt
  TXEN = 1;			//transmitter enabled
}

void interrupt USART(void)
{
  unsigned char data,tmphead,tmptail;

	if((TMR3IF && TMR3IE))
	{
		TMR3IF = 0;
		TMR3H = 0xEC;	
		TMR3L = 0x77;

		if(++msecs == 1000)
		{
			msecs = 0;
			++secs;
			++send_secs;
		}
		if(secs == 60)
		{
			secs = 0;
			++mins;
		}
		if(mins == 60)
		{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人在线综合网| 欧美色图12p| 久久精品一区二区| 99久久精品免费| 国产精品久久久久久久久免费樱桃 | 风间由美一区二区三区在线观看| 国产精品白丝jk黑袜喷水| 欧美丝袜第三区| 最新日韩av在线| 大尺度一区二区| 2024国产精品| 欧美国产日韩在线观看| 久久久夜色精品亚洲| 精品免费日韩av| 久久精品人人做| 精品国产91久久久久久久妲己| 亚洲国产精品久久久久秋霞影院| www.亚洲人| 成人短视频下载| 国产91丝袜在线播放| 精品一区二区三区av| 蜜桃视频一区二区三区| 日韩黄色小视频| 丝袜诱惑亚洲看片| 奇米影视在线99精品| 亚洲国产精品影院| 亚洲第一电影网| 日韩精品电影一区亚洲| 一区二区欧美在线观看| 香蕉加勒比综合久久| 亚洲欧美另类在线| 亚洲高清不卡在线| 日本伊人午夜精品| 久久精品久久久精品美女| 精品一区二区三区日韩| 麻豆精品精品国产自在97香蕉 | 日本电影亚洲天堂一区| 色综合久久中文综合久久牛| 色菇凉天天综合网| 欧美精品日韩精品| 精品国产乱码久久久久久图片| 久久久久97国产精华液好用吗| 国产欧美一二三区| 一区二区三区精密机械公司| 午夜国产精品影院在线观看| 国内不卡的二区三区中文字幕| 国产毛片一区二区| 制服丝袜一区二区三区| 欧美成人a视频| 欧美韩日一区二区三区| 亚洲第一会所有码转帖| 精品一区二区综合| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | xnxx国产精品| 在线观看日韩精品| 26uuu久久天堂性欧美| 亚洲激情在线激情| 国产高清不卡二三区| 69av一区二区三区| 亚洲一线二线三线视频| www.亚洲人| 国产精品久久二区二区| 久88久久88久久久| 日韩欧美一区在线| 日韩和欧美一区二区| 在线免费一区三区| 亚洲欧美另类久久久精品| 国产成人免费网站| 久久网站最新地址| 国产乱码精品一区二区三| 欧美不卡在线视频| 久久er99热精品一区二区| 日韩一卡二卡三卡四卡| 日本欧美久久久久免费播放网| 欧美日韩在线播放| 丝袜脚交一区二区| 91精品国产综合久久婷婷香蕉| 天天综合天天综合色| 在线成人av影院| 免费美女久久99| 337p粉嫩大胆色噜噜噜噜亚洲 | 久久久久高清精品| 韩国成人在线视频| 久久久91精品国产一区二区三区| 黄色日韩三级电影| 欧美国产一区二区| 91丨九色丨蝌蚪丨老版| 一区二区视频免费在线观看| 欧美日韩中文另类| 轻轻草成人在线| www久久精品| a美女胸又www黄视频久久| 亚洲摸摸操操av| 欧美剧情片在线观看| 乱一区二区av| 国产精品成人免费在线| 欧美羞羞免费网站| 久久成人综合网| 国产精品人妖ts系列视频| 色8久久精品久久久久久蜜| 亚洲成av人片观看| wwwwww.欧美系列| 99re6这里只有精品视频在线观看| 一区二区三区在线视频免费 | 国产麻豆欧美日韩一区| 中文字幕的久久| 91黄视频在线观看| 麻豆精品一二三| 中文字幕五月欧美| 欧美一区二区三区喷汁尤物| 成熟亚洲日本毛茸茸凸凹| 有码一区二区三区| 欧美变态口味重另类| 91蜜桃在线免费视频| 免费在线观看成人| 亚洲精品欧美二区三区中文字幕| 3d成人动漫网站| 97精品久久久久中文字幕| 另类中文字幕网| 一区二区三区四区激情| 久久精品免视看| 亚洲欧洲日本在线| 欧美一区二区三区视频在线| 不卡区在线中文字幕| 免费成人在线播放| 一区二区免费在线播放| 中文字幕国产一区二区| 日韩视频免费观看高清完整版在线观看 | 欧美男人的天堂一二区| 国产盗摄一区二区三区| 日本不卡在线视频| 亚洲免费在线播放| 国产精品免费视频一区| 欧美大片在线观看一区| 欧美伊人精品成人久久综合97| 国产91色综合久久免费分享| 久久精品国产亚洲一区二区三区| 亚洲美女精品一区| 最新高清无码专区| 国产偷v国产偷v亚洲高清| 欧美草草影院在线视频| 欧美一区二区网站| 欧美狂野另类xxxxoooo| 欧美三级电影网| 色综合激情久久| 色综合久久天天| 成人精品在线视频观看| 国产精品888| 国产成a人无v码亚洲福利| 韩国精品主播一区二区在线观看| 日韩成人dvd| 蜜桃传媒麻豆第一区在线观看| 午夜一区二区三区在线观看| 亚洲制服丝袜一区| 一区二区三区精品| 亚洲国产视频网站| 丝袜诱惑制服诱惑色一区在线观看| 亚洲线精品一区二区三区| 亚洲综合丝袜美腿| 五月婷婷久久综合| 日本人妖一区二区| 麻豆精品视频在线观看视频| 久久国内精品自在自线400部| 久久精品免费观看| 国产精品一级在线| 99久久婷婷国产综合精品| 91视频在线看| 欧美日韩亚洲综合在线| 91麻豆精品国产综合久久久久久| 91精品国产入口| 国产亚洲人成网站| 亚洲三级在线免费观看| 婷婷开心激情综合| 久久国产剧场电影| 成人午夜碰碰视频| 欧美性淫爽ww久久久久无| 欧美一级黄色大片| 国产精品污www在线观看| 亚洲人妖av一区二区| 图片区小说区国产精品视频| 蜜桃91丨九色丨蝌蚪91桃色| 国产成人免费视频网站| 不卡视频在线观看| 欧美精品久久久久久久久老牛影院| 日韩一级高清毛片| 亚洲天堂2014| 蜜桃一区二区三区在线| 99综合影院在线| 在线电影一区二区三区| 中文在线资源观看网站视频免费不卡| 亚洲色图欧美在线| 久久99国产精品麻豆| 91在线观看地址| 欧美成人国产一区二区| 亚洲美女一区二区三区| 久久av中文字幕片| 欧美性大战久久| 中文子幕无线码一区tr| 久久精品国产亚洲a| 欧美影院精品一区|