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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 實現2個ps/2接口轉到1個USB接口功能
?? C
?? 第 1 頁 / 共 2 頁
字號:
//----------------------------------------------------------------------------
// C main line
//----------------------------------------------------------------------------

#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules

#include "main.h"
#include "timer.h"
#include "USB_mk.h"
#include "port.h"
#include "int_func.h"
#include "debug.h"

#define PORT0_UNUSED_PINS	0xFF	//@@all pins of port0 is unused
#define RED_LED				0x8
#define PORT1_UNUSED_PINS	0x84	// Pins 2,and 7

BOOL shouldSuspend;//@@a flag indicated suspend
BOOL shouldprotect;//@@a flag indicated protect is necessary or not
UINT16	protect_counter;//inorder to send a broke code and clear USB keyboard's first byte to protect the system

APP_TX_PACKET      report_packet;
APP_TX_PACKET_KB   report_packet_kb;

INT8            get_int1_new;
INT8            reg_int1_new;
BOOL			shouldstartms;//@@a flag indicated mouse timer start is necessary or not
INT8            ms_timer;
    UINT8           get_ms0;
    UINT8           get_ms1;   
    UINT8           get_ms2;
    UINT8           get_ms3;
    UINT8           get_ms4;
    

INT8            get_int0_new;
INT8            reg_int0_new; 
BOOL			shouldstartkb;//@@a flag indicated keyboard timer start is necessary or not
INT8            kb_timer;
    UINT8           get_kb0;
    UINT8           get_kb1;
    UINT8           get_kb2;
    UINT8           get_kb3;
    UINT8           get_kb4;
    UINT8           get_kb5;
    UINT8           get_kb6;
    UINT8           get_kb7;
		BOOL	R_GUI;
		BOOL	R_ALT;
		BOOL	R_SHIFT;
		BOOL	R_CTRL;
		BOOL	L_GUI;
		BOOL	L_ALT;
		BOOL	L_SHIFT;
		BOOL	L_CTRL;

static void	mk_init( void );//local function,can't be got out this file 
void mk_report_init( void );
void main()
{
		debug_turn_on_led();
	M8C_ClearWDT;// Clear Watchdog
    shouldSuspend = FALSE;
    OSC_CR0 = 0x1B;//24MHZ CPU
    M8C_EnableGInt;    
	M8C_EnableWatchDog;//Enable WDT
    MSTIMER_EnableInt();// Enable timer interrupt
	mk_init();

	int0_initialize();
	int1_initialize();	
	P02CR = 0x30;//0011 0000,INT0 is occur on falling edge
	P03CR = 0x30;//0011 0000,INT1 is occur on falling edge	
	INT_MSK0 = 0x22;//0010 0010,INT0 and INT1 is enabled
	    debug_turn_off_led();    
 
 	// Main loop
    for ( ;; )
    {
		// Clear Watchdog
		M8C_ClearWDT;
		//Execute USB idle routine
		usb_idle();//this function transmit USB signals
 	}   // end for (;;)
}

//--------------------------------------------------------------------------
//
// Function: mk_init
//
//  Description:
///     This function initializes all components of the mouse and keyboard application.
///
/// Returns:
///     void
//
//--------------------------------------------------------------------------
static void mk_init( void )
{
    port_init();
	port_drive_off( PORT0_UNUSED_PINS );// Drive all the unused pins to outputs for power savings.	
    P1DATA &= ~PORT1_UNUSED_PINS;
   	usb_init();// Initialized the USB UM
    timer_init();
    mk_report_init();
}

//--------------------------------------------------------------------------
//@@mouse_report_init
//--------------------------------------------------------------------------
void mk_report_init( void )
{
	get_int1_new=0x00;
	reg_int1_new=0x01;
	get_int0_new=0x00;
	reg_int0_new=0x01;
	ms_timer=0x00;
	kb_timer=0x00;
		R_GUI = FALSE;
		R_ALT = FALSE;
		R_SHIFT = FALSE;
		R_CTRL = FALSE;
		L_GUI = FALSE;
		L_ALT = FALSE;
		L_SHIFT = FALSE;
		L_CTRL = FALSE;
	protect_counter=0x0000;	
	shouldprotect = FALSE;
}

//--------------------------------------------------------------------------
// mouse_get_report
//
/// This function polls the optics, wheel and buttons for potential events to 
/// send over the radio.  It also builds the packet payload.
//--------------------------------------------------------------------------
BOOL mouse_get_report( void )
{
    BOOL            mouse_report_valid = FALSE;
    UINT8 			xsign;
    UINT8			ysign;
    
    UINT8           regx_ms0;
    UINT8           regy_ms0;  

    UINT8           check_ms;        

	get_int1_new = GET_INT1_NEW();
	
	if(get_int1_new==reg_int1_new && get_int1_new!=0x00)	
	{
		shouldstartms=TRUE;
	}
	else
	{
		shouldstartms=FALSE;		
		reg_int1_new=get_int1_new;
		ms_timer=0x00;
	}
//MOUSE	
	if(ms_timer==0x0A)
	{
		get_ms0=INT1_GET_BUTT();
		get_ms1=INT1_GET_X();
		get_ms2=INT1_GET_Y();
		get_ms3=INT1_GET_Z();
				
//		if(check_ms==get_ms4)//check sum end 
//		{
			regx_ms0=get_ms0;
			regy_ms0=get_ms0;
		
			report_packet.buttons = get_ms0 & 0x07;//0x07="0000 0111"
			
			xsign=regx_ms0 & 0x10;
			if(xsign == 0x10)
			{
				if((get_ms1==0x01) || (get_ms1==0x02))
				{
					report_packet.x=0xff;	
				}
//				else if(get_ms1==0x02)
//				{
//					report_packet.x=0xff;		
//				}
				else
				{
					get_ms1=get_ms1-1;
					get_ms1=get_ms1>>1;
					get_ms1=get_ms1|0x80;
//					if((get_ms1>=0xf0) && (get_ms1<=0xff))
//					{
						report_packet.x=get_ms1;			
//					}
//					else
//					{
//						report_packet.x=0xf0;									
//					}
				}
			}
			else// xsign!=0x10
			{	//clear the high bit start 
				get_ms1 = get_ms1 >>1;//cut the first bit
				get_ms1 = get_ms1 <<1;//
				get_ms1 = get_ms1 >>1;//cut the last bit
				//clear the high bit end 		
				
//				if((get_ms1>=0x00) && (get_ms1<=0x1f))
//				{
					report_packet.x=get_ms1;			
//				}
//				else
//				{	
//					report_packet.x=0x1f;									
//				}
			}// xsign

			ysign=regy_ms0 & 0x20;
			if(ysign != 0x20)
			{
				if(get_ms2==0x00)
				{
					report_packet.y=get_ms2;
				}
				else
				{
					get_ms2=get_ms2-1;
					get_ms2=~get_ms2;
					get_ms2=get_ms2>>1;
					get_ms2=get_ms2 | 0x80;
					
//					if((get_ms2>=0xf0) && (get_ms2<=0xff))
//					{
						report_packet.y=get_ms2;			
//					}
//					else
//					{
//						report_packet.y=0xf0;
//					}				
				}
			}
			else //ysign == 0x20
			{//clear the high bit start 
				if((get_ms2==0xff) || (get_ms2==0xfe))
				{
					report_packet.y=0x01;	
				}
				else
				{		
					get_ms2 = get_ms2 >>1;//cut the first bit
					get_ms2 = get_ms2 <<1;//
					get_ms2=~get_ms2;
					
					
					get_ms2 = get_ms2 >>1;//cut the last bit
					//clear the high bit end 	
//					if((get_ms2>=0x01) && (get_ms2<=0x0f))
//					{
						report_packet.y=get_ms2;			
//					}
//					else
//					{
//						report_packet.y=0x0f;									
//					}	
				}		
			}// ysign

			switch(get_ms3)
			{
			case 0x00: report_packet.z =0x00;break;
			case 0x01: report_packet.z =0xff;break;
			case 0x02: report_packet.z =0xfe;break;
			case 0x03: report_packet.z =0xfd;break;
			case 0x04: report_packet.z =0xfc;break;
			case 0x05: report_packet.z =0xfb;break;
			case 0x06: report_packet.z =0xfa;break;
			case 0x07: report_packet.z =0xf9;break;
			case 0xff: report_packet.z =0x01;break;
			case 0xfe: report_packet.z =0x02;break;
			case 0xfd: report_packet.z =0x03;break;
			case 0xfc: report_packet.z =0x04;break;
			case 0xfb: report_packet.z =0x05;break;
			case 0xfa: report_packet.z =0x06;break;
			case 0xf9: report_packet.z =0x07;break;
			case 0xf8: report_packet.z =0x08;break;
			default: report_packet.z = 0x00;
			}
//			report_packet.z=0x00;
			mouse_report_valid = TRUE;
			SET_INT1_NEW();
//		}
//		else //check_ms error!!
//		{
//			mouse_report_valid = FALSE;
//			SPIS_SET_MOUSE_NEW();			
//		}
	}
	else // nothing receive!!
	{
		report_packet.buttons = 0x00;
		report_packet.x = 0x00;
		report_packet.y = 0x00;
		report_packet.z = 0x00;
	}
    return ( mouse_report_valid );
}
//MOUSE	


BOOL kb_get_report( void )
{
    BOOL            kb_report_valid = FALSE;
    UINT8           form_kb0=0x00;  

	get_int0_new = GET_INT0_NEW();
	
	if(get_int0_new==reg_int0_new && get_int0_new!=0x00)	
	{
		shouldstartkb=TRUE;
	}
	else
	{
		shouldstartkb=FALSE;		
		reg_int0_new=get_int0_new;
		kb_timer=0x00;
	}
	
	if(kb_timer==0x0A)
// KEYBOARD	
//	if(get_kb_new==0x01)
	{
		//debug_turn_on_led();

		protect_counter=0x0000;	
		shouldprotect = TRUE;

		//debug_glimpse();//just for debug!!!! 
	// decide which code should be send to pc start!
		get_kb0=INT0_GET_DATA_KB_00();
		get_kb1=INT0_GET_DATA_KB_01();
		get_kb2=INT0_GET_DATA_KB_02();
		get_kb3=INT0_GET_DATA_KB_03();
		get_kb4=INT0_GET_DATA_KB_04();
		get_kb5=INT0_GET_DATA_KB_05();
		get_kb6=INT0_GET_DATA_KB_06();
		get_kb7=INT0_GET_DATA_KB_07();
	
		//initial value
		report_packet_kb.kb0 = 0x00;
		report_packet_kb.kb1 = 0x00;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线免费看| 日韩毛片一二三区| 久久精品久久久精品美女| 日韩欧美亚洲一区二区| 精品影视av免费| 欧美经典一区二区| av亚洲精华国产精华精| 亚洲精品欧美二区三区中文字幕| 欧美在线观看你懂的| 午夜免费久久看| 欧美成人乱码一区二区三区| 国内成人自拍视频| 亚洲欧美日韩在线不卡| 7777精品伊人久久久大香线蕉| 激情综合色播激情啊| 中文字幕高清不卡| 欧美精品日韩一区| 国产91精品露脸国语对白| 怡红院av一区二区三区| 欧美变态凌虐bdsm| 99精品久久99久久久久| 免费成人av资源网| 国产精品免费观看视频| 欧美日韩极品在线观看一区| 精品亚洲欧美一区| 一区二区免费视频| 精品国精品国产| 91国产免费观看| 国产精品一区二区在线看| 亚洲高清不卡在线观看| 欧美国产激情一区二区三区蜜月| 欧美在线视频不卡| 成人亚洲精品久久久久软件| 日韩成人dvd| 亚洲欧美日韩国产另类专区 | 波多野结衣中文字幕一区二区三区 | 国产 日韩 欧美大片| 亚洲成在人线免费| 精品sm捆绑视频| 欧洲人成人精品| 成人午夜电影网站| 天天综合天天综合色| 亚洲欧洲精品一区二区精品久久久| 欧美一区二区三区思思人 | 在线影院国内精品| 成人网在线播放| 精品亚洲成a人| 五月激情六月综合| 一区二区三区精品在线| 国产精品看片你懂得 | 中文字幕精品—区二区四季| 日韩亚洲欧美综合| 欧美日韩国产综合一区二区 | 亚洲一区免费视频| 中文字幕亚洲在| 久久久av毛片精品| 日韩精品专区在线影院观看| 欧美日韩精品电影| 欧美日韩一区二区在线观看| 91成人国产精品| 99久久久久久99| 成人在线视频一区| 成人在线视频首页| 成人教育av在线| 成人午夜视频网站| 波多野结衣中文字幕一区二区三区 | 综合色天天鬼久久鬼色| 久久久www成人免费毛片麻豆| 精品欧美久久久| 日韩片之四级片| 3d动漫精品啪啪一区二区竹菊| 欧美日韩一区精品| 欧美日韩国产美女| 在线成人免费视频| 欧美一级黄色录像| 日韩欧美国产一区二区三区| 91精品国产综合久久久久久久久久 | 欧美一区二区三区视频在线观看 | 不卡的av中国片| 国产成人aaa| 成人做爰69片免费看网站| 成人一区二区三区在线观看| 成人中文字幕合集| 91视频免费看| 欧美视频第二页| 欧美一区二区精品| 精品99久久久久久| 亚洲国产高清不卡| 亚洲视频一区二区在线| 一区二区三区欧美| 亚洲成人av中文| 老汉av免费一区二区三区| 黑人精品欧美一区二区蜜桃| 久久精品二区亚洲w码| 国产一区 二区| av网站免费线看精品| 在线亚洲一区二区| 正在播放亚洲一区| 久久综合给合久久狠狠狠97色69| 日韩欧美高清在线| 精品国产乱码久久久久久老虎| 国产欧美一区视频| 亚洲美女在线国产| 蜜臀久久99精品久久久久宅男 | 不卡视频一二三四| 欧美精品第1页| 久久久精品黄色| 1000部国产精品成人观看| 亚洲成人免费视| 韩国中文字幕2020精品| 91亚洲国产成人精品一区二区三| 欧美三级电影在线看| 久久色在线视频| 一区二区三区中文字幕精品精品| 午夜精品福利一区二区三区蜜桃| 久久99最新地址| 97精品超碰一区二区三区| 欧美一级爆毛片| 中文字幕在线观看一区二区| 日韩**一区毛片| 成人福利视频在线看| 欧美一区二区精美| 中文字幕日本乱码精品影院| 免费在线视频一区| 99久久99久久综合| 欧美一区二区精品| 亚洲美女偷拍久久| 国产成人精品免费在线| 在线成人高清不卡| 1024成人网| 国产精品888| 欧美二区在线观看| 亚洲色图视频免费播放| 久久精品国产一区二区| 欧美性猛交xxxxxxxx| 国产精品午夜电影| 麻豆一区二区三| 欧美三级日韩三级| 亚洲视频精选在线| 国产精品一级在线| 欧美一区二区二区| 亚洲一区二区三区不卡国产欧美| 成人午夜激情视频| 久久美女艺术照精彩视频福利播放| 亚洲v精品v日韩v欧美v专区| 91伊人久久大香线蕉| 国产日韩在线不卡| 国内不卡的二区三区中文字幕 | 日韩精品专区在线影院重磅| 亚洲一区二区三区四区五区中文| 成人av网址在线| 国产日韩精品一区| 国产一区二区不卡| 欧美精品一区二区三区在线播放| 日精品一区二区三区| 欧美色大人视频| 亚洲高清免费视频| 在线观看亚洲专区| 亚洲自拍与偷拍| 色综合视频一区二区三区高清| 日本一区二区高清| 成人夜色视频网站在线观看| 国产日韩欧美不卡| 夫妻av一区二区| 国产精品久久久久久久浪潮网站 | 精品乱人伦一区二区三区| 午夜欧美视频在线观看| 欧美日韩aaaaa| 午夜视频一区二区三区| 欧美丰满一区二区免费视频| 三级欧美韩日大片在线看| 欧美日韩电影在线| 日本亚洲三级在线| 日韩欧美中文一区二区| 精品一区中文字幕| 国产日韩欧美综合在线| 丰满少妇在线播放bd日韩电影| 国产精品视频第一区| 91在线一区二区| 亚洲一区二区三区四区在线观看 | 久久综合九色综合97婷婷| 韩国午夜理伦三级不卡影院| 精品国产免费人成在线观看| 狠狠色丁香久久婷婷综| 中文字幕va一区二区三区| 91香蕉视频mp4| 午夜久久电影网| 日韩美女一区二区三区| 成人在线综合网| 一区二区免费视频| 日韩女优视频免费观看| 国产99精品在线观看| 一区二区三区免费看视频| 精品婷婷伊人一区三区三| 九九在线精品视频| 中文字幕色av一区二区三区| 欧美午夜理伦三级在线观看| 老司机免费视频一区二区| 国产精品美女视频| 欧美自拍偷拍一区|