亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产不卡免费视频| 亚洲黄色录像片| 一区二区三区在线影院| 国产精品一区二区在线观看不卡 | 日韩精品中午字幕| 欧美日韩国产片| 欧美人与禽zozo性伦| 日韩无一区二区| 最新不卡av在线| 亚洲sss视频在线视频| 欧美激情中文字幕| 成人免费的视频| 91麻豆国产福利精品| 99国产精品久| 91精品久久久久久久99蜜桃| 欧美一级理论性理论a| 久久久久97国产精华液好用吗| 欧美成人a∨高清免费观看| 国产亚洲精品bt天堂精选| 久久九九国产精品| 亚洲成人一二三| 久草在线在线精品观看| 久久99精品久久久久| 91麻豆文化传媒在线观看| 色综合久久久久综合体| 日韩欧美电影一区| 亚洲成人手机在线| 国产精品18久久久久久久久 | 欧美专区亚洲专区| 国产人久久人人人人爽| 免费看欧美女人艹b| 日本韩国欧美三级| 成人免费在线观看入口| 激情综合五月婷婷| 欧美日韩国产高清一区| 亚洲免费大片在线观看| 成人免费高清在线| 欧美国产视频在线| 丁香六月久久综合狠狠色| 日韩精品一区二区三区四区视频| 亚洲裸体在线观看| 丁香六月久久综合狠狠色| 国产人成一区二区三区影院| 韩国三级中文字幕hd久久精品| 日韩亚洲国产中文字幕欧美| 人妖欧美一区二区| 4438成人网| 国内精品在线播放| 久久精品网站免费观看| 成人免费av资源| 中文字幕亚洲电影| 精品婷婷伊人一区三区三| 奇米在线7777在线精品| 欧美一区永久视频免费观看| 日韩精品91亚洲二区在线观看| 欧美久久久久久蜜桃| 久草热8精品视频在线观看| 中文字幕第一区| 欧美在线观看视频一区二区| 久久精品国产亚洲a| 国产精品久久一级| 欧美日韩亚洲丝袜制服| 欧美成人一区二区三区| 亚洲欧美韩国综合色| 在线观看欧美日本| 蜜臀av一区二区在线观看| 玉米视频成人免费看| 亚洲欧美日韩人成在线播放| 色一情一伦一子一伦一区| 天天色图综合网| 亚洲国产精品二十页| 日本韩国欧美一区二区三区| 国产一区二区不卡在线| 丝袜美腿亚洲一区二区图片| 国产精品黄色在线观看| 欧美成人a∨高清免费观看| 在线看日本不卡| 风流少妇一区二区| 韩国女主播成人在线观看| 亚洲国产精品久久久久秋霞影院 | 日韩三级在线免费观看| 国产精品久久久久9999吃药| 宅男噜噜噜66一区二区66| 99国产精品久久| 成人高清免费观看| 国产麻豆一精品一av一免费| 久久国产福利国产秒拍| 日韩高清欧美激情| 蜜臀久久99精品久久久久久9| 一区二区成人在线| 亚洲综合一二区| 亚洲一区二区三区美女| 一二三区精品视频| 亚洲国产精品尤物yw在线观看| 中文字幕va一区二区三区| 国产99精品国产| 亚洲婷婷国产精品电影人久久| 久久奇米777| 亚洲国产电影在线观看| 中文字幕乱码一区二区免费| 国产精品久久久久久亚洲毛片| 国产精品无码永久免费888| 日本一区二区动态图| 亚洲午夜三级在线| 久久99精品国产麻豆婷婷| 成年人午夜久久久| 日韩一区二区免费高清| 久久噜噜亚洲综合| 亚洲一区二区三区四区不卡| 国内外成人在线视频| 欧美精品日韩一本| 成人av电影在线播放| 久久超碰97中文字幕| 蜜臀va亚洲va欧美va天堂| 国产精品原创巨作av| 色婷婷综合久久久中文一区二区 | 91精品福利在线| 欧美美女黄视频| 亚洲欧美在线aaa| 青青草91视频| 欧美日韩大陆一区二区| 国产精品久久久久久福利一牛影视| 开心九九激情九九欧美日韩精美视频电影 | 欧美一区二区久久久| 国产精品成人一区二区三区夜夜夜 | 三级久久三级久久久| 国产女同性恋一区二区| 精品国产乱码久久久久久影片| 亚洲精品水蜜桃| 色综合一区二区| 青草国产精品久久久久久| 日韩国产高清在线| 欧美色爱综合网| 一区二区三区在线高清| 国产成人a级片| 久久亚洲精品小早川怜子| 亚洲午夜久久久久| 欧美性xxxxxx少妇| 夜夜嗨av一区二区三区| www.66久久| 亚洲日穴在线视频| 91免费版在线| 日韩va欧美va亚洲va久久| 欧美岛国在线观看| 激情深爱一区二区| 国产日韩欧美在线一区| av在线播放不卡| 一区二区三区成人在线视频| 欧美日韩在线播放三区四区| 秋霞电影网一区二区| 久久精品亚洲国产奇米99| 91在线视频官网| 午夜av电影一区| 久久色成人在线| 色婷婷综合激情| 久久99精品久久久久婷婷| 亚洲人成伊人成综合网小说| 欧美丰满少妇xxxbbb| 成人av片在线观看| 美日韩一区二区| 亚洲已满18点击进入久久| 久久视频一区二区| 91精品国产aⅴ一区二区| 懂色av一区二区三区蜜臀| 久久99日本精品| 无码av免费一区二区三区试看| 亚洲欧洲色图综合| 欧美性大战xxxxx久久久| 日本美女一区二区三区视频| 亚洲人成亚洲人成在线观看图片| 日韩午夜激情免费电影| 91福利资源站| 91在线观看高清| 国产在线视频一区二区| 五月综合激情婷婷六月色窝| 亚洲三级免费观看| 亚洲三级在线免费观看| 亚洲色图色小说| 中文字幕永久在线不卡| 国产精品欧美一区二区三区| 国产情人综合久久777777| 久久精品男人天堂av| 久久午夜国产精品| 久久久精品日韩欧美| 日本一区二区综合亚洲| 亚洲免费在线看| 亚洲国产美国国产综合一区二区| 一区二区视频在线看| 一二三四社区欧美黄| 日本aⅴ精品一区二区三区| 蜜臀av亚洲一区中文字幕| 国产传媒日韩欧美成人| 91在线视频播放| 日韩视频免费观看高清完整版在线观看 | 欧美男男青年gay1069videost| 欧美一级高清大全免费观看| 2021国产精品久久精品| ...中文天堂在线一区| 毛片不卡一区二区| 国产激情视频一区二区在线观看 |