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

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

?? can.c

?? 基于S3C2410和Wince4.2操作系統(tǒng)的CAN總線驅(qū)動
?? C
字號:
#include<stdlib.h>
#include<string.h>

#include "CAN.h"
#include "def.h"
#include "2410addr.h"
#include "option.h"
#include "GUI.h"
#include "2410lib.h"
#include "lcd.h"
#include "spi.h"
#include "mcp2515.h"

char CAN_Message[8]={};

static int red=1;
static int green=1;
extern int temperature;
int DrawX=210;

#ifdef TFT
int DrawY=119;
#else
int DrawY=268;
extern ROW ROWList[MAXLine];
extern int activerow;
#endif

void can_initMessageStruct(CanMessage* msg)
{
	memset(msg,0,sizeof(CanMessage));
}

unsigned char mcp2515_getNextFreeTXBuf(unsigned char *txbuf_n)
{
	unsigned char res, i, ctrlval;
	unsigned char ctrlregs[MCP_N_TXBUFFERS] = { MCP_TXB0CTRL, MCP_TXB1CTRL, MCP_TXB2CTRL };
	
	res = MCP_ALLTXBUSY;
	*txbuf_n = 0x00;
	
	// check all 3 TX-Buffers
	for (i=0; i<MCP_N_TXBUFFERS; i++) {
		ctrlval = mcp2515_readRegister( ctrlregs[i] );
		if ( (ctrlval & MCP_TXB_TXREQ_M) == 0 ) {
			*txbuf_n = ctrlregs[i]+1; // return SIDH-address of Buffer
			res = MCP2515_OK;
			return res; /* ! function exit */
		}
	}
	
	return res;
}



unsigned char can_sendMessage(CanMessage* msg)
{
	unsigned char res, txbuf_n;
	unsigned char timeout = 0;
	

	
	do {
		res = mcp2515_getNextFreeTXBuf(&txbuf_n); // info = addr.
	} while (res == MCP_ALLTXBUSY);
//	txbuf_n=MCP_TXB0CTRL+1;
	
	if (res!=MCP_ALLTXBUSY) {
		mcp2515_write_canMsg( txbuf_n, msg);
		mcp2515_start_transmit( txbuf_n );
		return CAN_OK;
	}
	else {
		return CAN_FAILTX;
	}
}


void CAN_Write(char * value,int n)
{
   CanMessage msg;
   can_initMessageStruct(&msg);
   msg.identifier = CANDEFAULTIDENT;
   msg.extended_identifier = CANDEFAULTIDENTEXT;
   msg.dlc = n;
   msg.rtr = 0;
   strncpy(msg.dta,value,n);
   	
   can_sendMessage(&msg);

}


void CAN_Init(void)
{
    spi_init();
    mcp2515_Init(CAN_20KBPS);
    rGPGCON&=0xffffff3f;
    rGPGCON|=(1<<7);
    rGPGUP&=0xfff7;
    rGPGDAT|=(1<<3);
	rINTMSK &= ~(BIT_EINT8_23);
	rEINTMASK&=~(1<<11);
}


void __irq CAN_LISR(void)
{
    int temp;
    
    unsigned char stat, res;
	CanMessage msg;
	
	stat = mcp2515_readStatus();
	
	
	if ( stat & MCP_STAT_RX0IF ) {
		// Msg in Buffer 0
		mcp2515_read_canMsg( MCP_RXBUF_0,&msg);
		mcp2515_modifyRegister(MCP_CANINTF, MCP_RX0IF, 0);
		res = CAN_OK;
	}
	else if ( stat & MCP_STAT_RX1IF ) {
		// Msg in Buffer 1
		mcp2515_read_canMsg( MCP_RXBUF_1,&msg);
		mcp2515_modifyRegister(MCP_CANINTF, MCP_RX1IF, 0);
		res = CAN_OK;
	}
	else {
		res = CAN_NOMSG;
		mcp2515_modifyRegister(MCP_CANINTF, 0xff, 0x00);
	}	     
    strcpy(CAN_Message,msg.dta);
    
    for(temp=0;temp<strlen(CAN_Message);temp++)
      if(CAN_Message[temp]=='#')
        {
           CAN_Message[temp]='\0';
           break;
        }
    CAN_Data_Process(CAN_Message);
    
    
    temp=rEINTPEND;
    rEINTPEND=temp;
	temp = rSRCPND;
	rSRCPND = temp;
	temp = rINTPND;
	rINTPND = temp;
	
    rGPGDAT|=(1<<3);
    

}


/*
   c:The written data
   pencolor: The color of data
   L:實際寫入文字區(qū)域的右邊界
   W:實際寫入文字區(qū)域的上邊界
   x_start:可以被寫入文字的最后一行的x坐標(biāo)
   y_start:可以被寫入文字的最后一行的y坐標(biāo)
   DrawX:全局變量,實際寫入文字區(qū)域的左邊界
   DrawY:全局變量,實際寫入文字區(qū)域的上邊界
*/
//void DrawData(char *c,int pencolor,int area_left,int area_right,int area_up,int down_x,int down_y)

void DrawData(char *c,int pencolor,int L,int W,int x_start,int y_start)
{
	int i,j;
	

	while(*c!='\0')
	{
		while((DrawX<L) && (*c!='\0')&&(DrawY>=y_start))  /*while the X coordinate don't exceed the scope of X limit*/ 
		{
			drawascii168(DrawX,DrawY,c,pencolor);  /*display the character*/
			DrawX+=8;
			c++;
		}

        DrawX=x_start;    /*exchange the next row*/  
      	if (DrawY <y_start)
        {

			for(j=W;j>=y_start-16;j--)
				for(i=x_start;i<L;i++)
				{
                   
                				
				     *(short *)(VideoAddrStart+(i*x_size+j)*2) = *(short *)(VideoAddrStart+(i*x_size+j-16)*2);
				  
				   
				}
						
			
			
			while((DrawX<L) && (*c!='\0'))  /*while the X coordinate don't exceed the scope of X limit*/ 
			{
				drawascii168(DrawX,y_start,c,pencolor);  /*display the character*/
				DrawX+=8;
				c++;

			}
			

        } 
        else     	                                           
        	DrawY-=16;
     }
}

void CAN_Data_Process(char * message)
{
   int i=0,x,y;
   int temperature_temp;
   char buf[4];
   char head[13]={"EINT"};
   char tail[7]={" is on"};
   switch(message[0])
   {
     case '1':
         temperature_temp=atoi(&message[1]);
         
         #ifdef TFT
         x=130;
         y=175;
         #else
         x=250;
         y=330;
         #endif
         
         sprintf(buf,"%d\0",temperature);   			
	//	 drawascii168(x,y,buf,rgb(0,0,255));
		 drawascii168space(x,y,4,rgb(0,0,255));
		 
		 temperature=temperature_temp;
         sprintf(buf,"%d",temperature_temp);			    
		 drawascii168(x,y,&message[1],rgb(255,255,0));
         
         break;
     case '2'://red led     
         #ifdef TFT
         x=70;
         y=125;
         #else
         x=150;
         y=240;
         #endif     
         if(message[1]=='1')
         {
           Led4_On_or_Off(TRUE);
           
           
           #ifdef TFT
           eraseHZ(x,y,rgb(0,0,255));
           drawtext(x,y,"開",1,0,rgb(255,255,0));
           #else
           eraseHZ24(x,y,rgb(0,0,255));
           drawtext24(x,y,"開",1,3,rgb(255,255,0));
           #endif
         }  
         else
         {
           Led4_On_or_Off(FALSE);
           #ifdef TFT
           eraseHZ(x,y,rgb(0,0,255));
           drawtext(x,y,"關(guān)",1,0,rgb(255,255,0));
           #else
           eraseHZ24(x,y,rgb(0,0,255));
           drawtext24(x,y,"關(guān)",1,3,rgb(255,255,0));
           #endif
         }
         break;
     case '3'://green led
         #ifdef TFT
         x=70;
         y=65;
         #else
         x=150;
         y=140;
         #endif     
         if(message[1]=='1')
         {
           Led1_On_or_Off(TRUE);
           #ifdef TFT
           eraseHZ(x,y,rgb(0,0,255));
           drawtext(x,y,"開",1,0,rgb(255,255,0));
           #else
           eraseHZ24(x,y,rgb(0,0,255));
           drawtext24(x,y,"開",1,3,rgb(255,255,0));
           #endif
         }
         else
         {
           Led1_On_or_Off(FALSE);
           #ifdef TFT
           eraseHZ(x,y,rgb(0,0,255));
           drawtext(x,y,"關(guān)",1,0,rgb(255,255,0));
           #else
           eraseHZ24(x,y,rgb(0,0,255));
           drawtext24(x,y,"關(guān)",1,3,rgb(255,255,0));
           #endif
         }
         break;
     case '4':
         strcat(head,&message[1]);
         strcat(head,tail);
         
         #ifdef TFT
         DrawData(head,rgb(255,255,0),315,119,160,39);
         #else
         DrawActiveline(320,268,600,head,rgb(255,255,0),rgb(0,0,255));
         #endif
         
         break;
   
   }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久一本精品| 亚洲男同性恋视频| 色综合久久六月婷婷中文字幕| 一区二区三区日韩欧美| 久久综合色8888| 色先锋资源久久综合| 国产一区视频网站| 亚洲在线视频网站| 久久精品视频免费观看| 欧美精品色综合| 91蝌蚪porny成人天涯| 久久99热狠狠色一区二区| 亚洲欧美日韩系列| 久久夜色精品一区| 欧美精品黑人性xxxx| 91麻豆国产精品久久| 国产精品一区一区三区| 日本免费新一区视频| 亚洲乱码精品一二三四区日韩在线| www久久久久| 欧美一区二区三区不卡| 91精品91久久久中77777| 国产成人精品在线看| 捆绑变态av一区二区三区| 亚洲国产成人精品视频| 中文字幕字幕中文在线中不卡视频| 国产亚洲精品免费| wwwwww.欧美系列| 久久综合五月天婷婷伊人| 欧美狂野另类xxxxoooo| 91久久免费观看| 91丨porny丨最新| 91丨porny丨国产| 成人av电影在线网| 国产成人精品亚洲午夜麻豆| 国产在线一区观看| 久久电影网站中文字幕| 麻豆高清免费国产一区| 蜜桃av一区二区| 精品中文字幕一区二区| 另类专区欧美蜜桃臀第一页| 蜜臀久久99精品久久久久久9 | 免费久久99精品国产| 亚洲图片欧美视频| 亚洲丰满少妇videoshd| 亚洲国产日韩精品| 亚洲国产美女搞黄色| 亚洲国产精品影院| 日韩欧美高清一区| 26uuu亚洲综合色| 久久色成人在线| 欧美精品一区二区三区在线播放 | 9191久久久久久久久久久| 91黄色激情网站| 91在线一区二区| 91视频精品在这里| av网站一区二区三区| 国产成人精品三级| 国产成人在线视频免费播放| 久久91精品国产91久久小草 | 亚洲精品亚洲人成人网在线播放| 国产精品免费视频一区| 欧美国产精品久久| 久久久久久久久久久久电影| 欧美激情综合五月色丁香| 国产欧美一区二区三区沐欲| 国产亚洲精品aa午夜观看| 国产亚洲欧美色| 国产精品久久久久久久久晋中| 国产精品久久久久精k8| 国产精品国产三级国产普通话蜜臀| 国产精品三级av| 亚洲精品视频免费观看| 一区二区三区在线免费观看 | 午夜精品爽啪视频| 亚洲黄色录像片| 午夜精品久久久久久久蜜桃app| 日韩电影在线观看电影| 亚洲精品一二三区| 日韩影院精彩在线| 国产乱码精品一区二区三 | 亚洲图片欧美综合| 天天综合色天天综合色h| 蜜臂av日日欢夜夜爽一区| 国产乱子伦视频一区二区三区| 高清不卡一区二区在线| 91日韩精品一区| 欧美日韩精品福利| 欧美精品一区二区在线播放| 国产精品大尺度| 亚洲电影视频在线| 理论电影国产精品| av亚洲精华国产精华精| 91美女蜜桃在线| 51精品国自产在线| 日本一区二区动态图| 一区二区三区四区在线| 蜜桃精品在线观看| 成人理论电影网| 欧美日韩免费高清一区色橹橹 | 色屁屁一区二区| 日韩精品一区二区三区四区| 久久综合99re88久久爱| 依依成人综合视频| 久久99九九99精品| 在线免费观看一区| 精品国产一二三区| 亚洲精品国产高清久久伦理二区| 日日摸夜夜添夜夜添精品视频| 国产一区二区成人久久免费影院| 欧美又粗又大又爽| 久久青草欧美一区二区三区| 亚洲自拍都市欧美小说| 国精品**一区二区三区在线蜜桃| 在线视频中文字幕一区二区| 久久久久久久久久久久久女国产乱| 一区二区三区四区精品在线视频| 国产一区二区三区观看| 在线欧美一区二区| 国产欧美久久久精品影院| 一区二区欧美精品| av影院午夜一区| 日韩三区在线观看| 亚洲国产精品高清| 日韩电影免费一区| 91国产精品成人| 国产精品国产三级国产aⅴ无密码| 麻豆精品在线视频| 欧美四级电影在线观看| 国产精品美女一区二区三区| 另类综合日韩欧美亚洲| 久久国产精品一区二区| 91精彩视频在线| 亚洲人成小说网站色在线 | 成人精品国产免费网站| 99久久99久久免费精品蜜臀| 久久综合精品国产一区二区三区| 亚洲影院免费观看| 91农村精品一区二区在线| 久久综合丝袜日本网| 亚洲成人av在线电影| 色呦呦国产精品| 国产网红主播福利一区二区| 日本不卡视频在线| 欧美在线高清视频| 亚洲蜜桃精久久久久久久| 成人免费毛片片v| 日韩欧美国产成人一区二区| 天天操天天色综合| 在线一区二区观看| 亚洲免费高清视频在线| av不卡免费在线观看| 国产精品三级av| 99re8在线精品视频免费播放| 日本一区二区三区在线观看| 国内精品国产成人| 精品国产露脸精彩对白| 日本视频中文字幕一区二区三区| 在线观看视频欧美| 亚洲视频中文字幕| 色综合一区二区| 亚洲美女在线一区| 在线观看视频91| 亚洲激情av在线| 欧美三级蜜桃2在线观看| 亚洲国产aⅴ成人精品无吗| 风流少妇一区二区| 中国色在线观看另类| 久久99久久久欧美国产| 久久亚洲综合色一区二区三区| 国产高清不卡一区| 国产日韩欧美精品电影三级在线 | 久久精品男人天堂av| 国产乱子轮精品视频| 国产欧美日韩另类一区| 99视频国产精品| 一级精品视频在线观看宜春院| 成人一区二区三区视频在线观看| 日韩三级电影网址| 国产精品996| 一区二区三区成人| 91精品国产综合久久精品| 美女视频免费一区| 国产欧美一区二区精品婷婷| 色噜噜狠狠色综合中国| 奇米影视一区二区三区小说| 国产亚洲欧美色| 欧美亚洲禁片免费| 蓝色福利精品导航| 久久久久久久精| 91精品国产一区二区三区蜜臀 | 亚洲欧美日本韩国| 欧美精品成人一区二区三区四区| 日韩av高清在线观看| 91精品国产高清一区二区三区蜜臀 | 欧美不卡视频一区| 国产一级精品在线| 国产精品理论片在线观看| 精品视频在线免费| 亚洲国产精品嫩草影院|