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

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

?? main.c.bak

?? 富士通單片機(jī)MB902420系列 CAN Project: CAN0 will work as a simple Repeater. Received data will appear at P
?? BAK
字號(hào):
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES.                                             */
/*                 (C) Fujitsu Microelectronics Europe GmbH                  */
/*---------------------------------------------------------------------------
  MAIN.C
  - description
  - See README.TXT for project description and disclaimer.
/*---------------------------------------------------------------------------*/

#include "mb90425.h"

/*---------------------------------------------------------------------------
  #Defines
/*---------------------------------------------------------------------------*/


/*---------------------------------------------------------------------------
  Globals
/*---------------------------------------------------------------------------*/

#define TIMEOUT 50000    /* <<< timeout value, if CAN-data can not be send   */

/*---------------------------------------------------------------------------
  Functions
/*---------------------------------------------------------------------------*/

/* Note:
   The -A and -B versions include a CPU Detection Reset Circuit. 
   This must be cleared periodically to prevent program reset.

   The conditions for clearing the counter of this circuit are given below:
   1. Writing 0 to CL bit of LVRC register
   2. Internal reset
   3. Stopping main oscillation clock
   4. Transition to sleep mode
   5. Transition to time-base timer mode or timer mode
   6. Starting hold

*/
void clear_CPU_operation_detection (void)
{
 LVRC = 0x35;	        /* clears CPU operation detection */
}

/*---------------------------------------------------------------------------
  CAN
/*---------------------------------------------------------------------------*/
/*       Search for "<<<" There changes by the user may be required          */
#define SENT_DATA 0x0102030405060708
#define BTR_4M_250k 0x4980 /* BTR config  250 kBaud */
//#define BTR_16M_20k8_24_66_2 0x7EDF /* BTR config 20.8 kBaud */
//#define BTR_16M_33K0_22_68_3 0x6DD5 /* BTR config 33.0 kBaud */
//#define BTR_16M_33K3_22_68_3 0x4DD5 /* BTR config 33.3 kBaud */
//#define BTR_16M_83K3_24_66_2 0x7EC7 /* BTR config 83.3 kBaud */
//#define BTR_16M_100k_20_70_3 0x5CC7 /* BTR config  100 kBaud */
//#define BTR_16M_125k_16_68_2 0x4987 /* BTR config  125 kBaud */
//#define BTR_16M_500k_16_68_2 0x4981 /* BTR config  500 kBaud */
//#define BTR_16M_1M00_16_68_2 0x4980 /* BTR config  1.0 MBaud */

// The following macros convert from identifier value to the appropriate
// I/O register value and vise versa. These macros should be used for 
// constant identifier values.
// The actual order of ID bits in the register can be found in the manual.
// ID (11bit-IDs uses Bit 28..18
//    (29bit-IDs uses Bit 28...0

/*#define MSG2STD(msg) ( (unsigned short )(msg) >>  3 & 0x000000FF  \
                     | (unsigned short )(msg) << 13 & 0x0000FF00  )

#define MSG2EXT(msg) ( (unsigned long  )(msg) >> 21 & 0x000000FF  \
                     | (unsigned long  )(msg) >>  5 & 0x0000FF00  \
                     | (unsigned long  )(msg) << 11 & 0x00FF0000  \
                     | (unsigned long  )(msg) << 27 & 0xFF000000  )

#define STD2MSG(reg) ( ((unsigned short)(reg) & 0x000000FF) <<  3  \
                     | ((unsigned short)(reg) & 0x0000FF00) >> 13  )

#define EXT2MSG(reg) ( ((unsigned long )(reg) & 0x000000FF) << 21  \
                     | ((unsigned long )(reg) & 0x0000FF00) <<  5  \
                     | ((unsigned long )(reg) & 0x00FF0000) >> 11  \
                     | ((unsigned long )(reg) & 0xFF000000) >> 27  )
*/
void CAN_init(void)
{
  *(unsigned*)(0x003D00) = 0x81;
  CSR         = 0x81;                 /* bit 7: enable transmit output pin   */
                                      /* bit 0: stop bus operation           */
  while (!CSR_HALT)
    clear_CPU_operation_detection();
  
  TCANR       = 0xffff;               /* cancel all Transmissions            */

  BVALR       = 0;                    /* all message buffer are invalid      */
  // it is default.
  
  BTR         = BTR_4M_250k;          /* <<< set bit timing                  */
  *(unsigned*)(0x003D07) = 0x49;
  *(unsigned*)(0x003D06) = 0x80;

  *(unsigned*)(0x003D00) = 0x80;  
     CSR         = 0x0080;               /* activate can bus operation          */


  while (CSR_HALT)                    /* wait for Bus-connection             */
    clear_CPU_operation_detection();

    
  AMR0        = 0;                    /* <<< acceptance mask definition 0    */
  AMR1        = 0;                    /* <<< acceptance mask definition 1    */
}


/*===== CAN Buffer ======= */

/* it is recommended not to use Buffer0 in general, 
   in order to prevent from Hit&Away trap           */

#define buffer1 1 // receive buffer

void CAN_buffer1(void)
{
  /* CAN: messagebuffer 1 will be used as receive-buffer                     */
  
  *(unsigned*)(0x000070) = 0x00;      /* message buffer are invalid                       */
 
  *(unsigned*)(0x003D09) = 0x00;       /* <<< 0:11bit                   */
  *(unsigned*)(0x003D08) = 0x02;      // 1:29bit indentifier
   
  *(unsigned*)(0x003B24) = 0xc7;      // Enable IDR1
  *(unsigned*)(0x003B25) = 0xf8;
  *(unsigned*)(0x003B26) = 0x02;  
  *(unsigned*)(0x003B27) = 0x38;  
//  IDR(1)      = 0x2000;  /* <<< ID e.g. 0x2000 = ID #1                       */
                         /*        (11bit-IDs uses Bit 28..18                */
                         /*        (29bit-IDs uses Bit 28...0                */
                         /* see Utility Bitmixer
                         /* or use defines: e.g. IDR(1) = MSG2STD(1);        */

  *(unsigned)(0x003D10) = 0x00;     /* <<< Acceptance Mask:                             */
                         /* 0 : full bit compare (full can)                  */
                         /* 1 : full bit mask (basic can)                    */
                         /* 2 : use acceptance mask 0                        */
                         /* 3 : use acceptance mask 1                        */
  *(unsigned*)(0x003D0E) = 0x00;  //disable Trx-Interrupt
//  TIER_TIE1   = 0;       /* <<< 0: disable / 1: enable Trx-Interrupt         */

//  RFWTR_RFWT1 = 0;       /* <<< 0: no wait for remote requeset               */

//  TRTRR_TRTR1 = 0;       /* <<< 0: Data / 1: Remote frame Trx                */

  *(unsigned*)(0x000070) = 0x02; /* message buffer are valid                         */

  *(unsigned*)(0x003b62) = 0x08; // Data Length Code; 8-byte length data register
}


#define buffer0 0 // send buffer

void CAN_buffer0(void)
{
  /* CAN: messagebuffer 0 will be used as send-buffer                        */
  BVALR_BVAL0 = 0;       /* message buffer are invalid                       */

  IDER_IDE0   = 1;       /* <<< 0:11bit 1:29bit indentifier                  */

  IDR(0)      = 0xc7f80238;  /* <<< ID e.g. 0x4000 = ID #2                       */
                         /*        (11bit-IDs uses Bit 28..18                */
                         /*        (29bit-IDs uses Bit 28...0                */
                         /* see Utility Bitmixer
                         /* or use defines: e.g. IDR(1) = MSG2STD(1);        */

  AMSR_AMS0   = 0;       /* <<< Acceptance Mask:                             */
                         /* 0 : full bit compare (full can)                  */
                         /* 1 : full bit mask (basic can)                    */
                         /* 2 : use acceptance mask 0                        */
                         /* 2 : use acceptance mask 1                        */

  TIER_TIE0   = 0;       /* <<< 0: diasble / 1: enable Trx-Interrupt         */
                         // study the interrupt handling program first!!!
  RFWTR_RFWT0 = 0;       /* <<< 0: no wait for remote requeset               */

  TRTRR_TRTR0 = 0;       /* <<< 0: Data / 1: Remote frame Trx                */

  BVALR_BVAL0 = 1;       /* message buffer are valid                         */
  
  DLCR(0) = 0x08; // 8-byte length data register
  
}


/*===== Readout Buffer x ======= */

unsigned char GetCanData (char  x, unsigned char *BufPtr)
{
  char Len, pos;
    
  *BufPtr++ = Len = DLCR(x);
  for (pos=0; pos<=Len;pos++)
    *BufPtr++ = DTR_BYTE(x, pos);
  return (Len); 
}

/*---------------------------------------------------------------------------
  Interrupts
/*---------------------------------------------------------------------------*/


/*---------------------------------------------------------------------------
  MAIN.C
/*---------------------------------------------------------------------------*/
  
  volatile short k = 0xffff,kk;
  void disp( int x , int y );
  void sub(void); 
  void key(int z);
  void super( int m ,int l );
  void sub2(void);  
  void delay(int m);
  void sent(void);
  void receive(void); 
     
void main(void)
{
  unsigned char CanDataBuffer[9];
  unsigned long timeout;                   /* timeout-counter                */
  unsigned int i;

  InitIrqLevels();
  __set_il(7);          //allow all interrupt levels
  __EI();               // enable interrupts at all levels      


  /* User LEDs of Evaluation-Board: Flash-Can-100P */
 // PDR4 = 0xff; 
 // DDR4 = 0xff;

  /* Initialisation of LCD-controller */
  LCRL = 0x2d;  /* internal Resistor, Main Clock , 1/4 duty       */
  LCRH = 0x07;  /* use all 24 segment-lines SEG00...SEG23, DTCH=0 */

  PDR7 = 0xFF;
  DDR7 = 0x00;
  PDR8 = 0xFF;
  DDR8 = 0x00;

  *(volatile unsigned char __far*)(0x3970) = 0x00;
  *(volatile unsigned char __far*)(0x3969) = 0x00; 
  *(volatile unsigned char __far*)(0x3968) = 0x00;
  *(volatile unsigned char __far*)(0x3967) = 0x00;
  *(volatile unsigned char __far*)(0x3966) = 0x00;
  
  
  *(volatile unsigned char __far*)(0x3965) = 0xda;
  *(volatile unsigned char __far*)(0x3964) = 0xfa;     //???
  *(volatile unsigned char __far*)(0x3963) = 0x0e;
  *(volatile unsigned char __far*)(0x3962) = 0xfe;
  *(volatile unsigned char __far*)(0x3961) = 0xde;
  *(volatile unsigned char __far*)(0x3960) = 0xbe;


  /* initialize CAN */ 
  CAN_init();   
  CAN_buffer1();
  CAN_buffer0(); 
  delay(1);
   while(1)
  {
    clear_CPU_operation_detection();
    if(*(unsigned*)(0x000078))  //if RCR = 1
    receive();
   
        k=PDR8;
  	k=k<<8;
  	k+=PDR7;
  	kk=k;
  	if(k == 0x0fff)
  	{ 
  	 continue;
        }
    
        delay(1);
  	k=PDR8;
  	k=k<<8;
  	k+=PDR7; 
  	   
  	if(k != kk)
  	{
  	 continue; 
  	}
    		
        key(k); 
    
  } //while(1)
  
} // main() 

void send(void)
{
//  DTR_DWORD(0,0) = 0x01020304 ;
//  DTR_DWORD(0,1) = 0x05060708 ;
  *(volatile unsigned char __far*)(0x3964) = 0xda;
  DTR_DWORD(0,0) = 0x05060708;
  TREQR = 1 ;
}


void receive(void)
{      
  *(volatile unsigned char __far*)(0x3960) = 0xc6;
//   = 003b8f
// 003b8e
// 003b8d
// 003b8c
// 003b8b
// 003b8a
// 003b89

 super(*(unsigned*)(0x003b88),2) ;
 
 *(unsigned*)(0x000078) = 0;  
}

/* Keypad operation program */ 
 
  void key(int z)              
 {
 	switch(z)
 	{
 	 case 0x0ffe : send() ; break;
 	 case 0x0ffd : super(z,4) ; break;
 	 case 0x0ffb : super(z,4) ; break;
         case 0x0ff7 : super(z,4) ; break;
 	 case 0x0fef : super(z,4) ; break;
 	 case 0x0fdf : super(z,4) ; break;	
         case 0x0fbf : super(z,4) ; break;	
         case 0x0f7f : super(z,4) ; break;	
 	 case 0x0eff : super(z,4) ; break;	
 	 case 0x0dff : super(z,4) ; break;
 	 case 0x0bff : super(z,4) ; break;	
 	 case 0x07ff : super(z,4) ; break;	
 			
 	}
 }




   /*display number*/
 
  void disp( int x , int y )   /* x=addr , y=num */
{ 
	  switch(y)
	 {case 0 : *(volatile unsigned short __far*) x = 0xbe; break;
	 	case 1 : *(volatile unsigned short __far*) x = 0x06; break;
	 	case 2 : *(volatile unsigned short __far*) x = 0x7c; break;
	 	case 3 : *(volatile unsigned short __far*) x = 0x5e; break;
	 	case 4 : *(volatile unsigned short __far*) x = 0xc6; break;
	 	case 5 : *(volatile unsigned short __far*) x = 0xda; break;
	 	case 6 : *(volatile unsigned short __far*) x = 0xfa; break;
	 	case 7 : *(volatile unsigned short __far*) x = 0x0e; break;
	 	case 8 : *(volatile unsigned short __far*) x = 0xfe; break;
	 	case 9 : *(volatile unsigned short __far*) x = 0xde; break;
	 	case 0xa : *(volatile unsigned short __far*) x = 0xee; break;
	 	case 0xb : *(volatile unsigned short __far*) x = 0xf2; break;
	 	case 0xc : *(volatile unsigned short __far*) x = 0xb8; break;
	 	case 0xd : *(volatile unsigned short __far*) x = 0x76; break;
	 	case 0xe : *(volatile unsigned short __far*) x = 0xf8; break;
	 	case 0xf : *(volatile unsigned short __far*) x = 0xe8; break;
	 }                            
}



  /*Display multi-bit number*/
  
  void super( int m ,int l )          /*m=the content of the number , l=the length of the number */
{
	    int i,j,addr;
	    	
	  	for(addr=0x3960;addr<0x3966;addr++) 
  	 {
   	   disp(addr,0);   
  	 }
  	 
	    addr=0x3960;
	    
	   for(i=0;i<l;i++,addr++)
	   { 
	  	j=0x000f<<4*i;
	  	j=j&m;
	  	j=j>>4*i;
	    disp(addr,j);	    
	   }                               /*display k, use the lower 4 segments*/
  *(volatile unsigned char __far*)addr = 0xbe;	
} 





void delay(int m)
{  register long int i;
	 volatile register long int j=0;
	 int n;
	for(n=0;n<m;n++)
	{
	  for(i=0;i<50000;i++)
    {
    	 j++;
    }
    clear_CPU_operation_detection();
  }  
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲丝袜精品丝袜在线| 亚洲一区二区三区免费视频| 色综合天天综合狠狠| 青青草原综合久久大伊人精品| 久久久精品日韩欧美| 欧美日韩一区在线观看| 不卡在线观看av| 黄页视频在线91| 亚洲第一主播视频| 亚洲男人的天堂av| 国产午夜三级一区二区三| 欧美一区二区三区日韩| 色94色欧美sute亚洲线路二| 成人一二三区视频| 久久精品99国产精品日本| 一区二区三区蜜桃| 亚洲日本电影在线| 亚洲精品一区二区三区影院| 欧美日韩一区 二区 三区 久久精品| 成人性生交大片| 国模娜娜一区二区三区| 日本不卡视频在线观看| 亚洲国产视频a| 亚洲一区二区三区小说| 亚洲欧美日本在线| 国产精品久久久久久久浪潮网站| 精品动漫一区二区三区在线观看| 91精品国产综合久久香蕉麻豆| 色哟哟日韩精品| 91社区在线播放| 91视频观看视频| 色av成人天堂桃色av| 色哟哟一区二区三区| 色丁香久综合在线久综合在线观看| 不卡一区二区三区四区| 成a人片亚洲日本久久| 成人一级片在线观看| 波多野结衣中文一区| 成人教育av在线| 不卡的电视剧免费网站有什么| 国产.精品.日韩.另类.中文.在线.播放| 精品一区二区三区欧美| 久久精品国产99国产精品| 久久99久久99小草精品免视看| 人人超碰91尤物精品国产| 日本不卡视频在线观看| 九九在线精品视频| 国产美女在线观看一区| 成人一区二区视频| 99精品欧美一区| 91豆麻精品91久久久久久| 欧美日韩一区二区三区在线| 欧美日韩精品系列| 91精品国产色综合久久ai换脸 | 日韩欧美成人一区| 日韩欧美亚洲一区二区| 3d成人动漫网站| 精品粉嫩超白一线天av| 国产欧美视频一区二区三区| 国产精品福利一区| 亚洲激情成人在线| 日韩精品亚洲一区| 麻豆国产精品777777在线| 国产美女主播视频一区| 91香蕉视频黄| 欧美日韩成人在线| 久久久三级国产网站| 国产精品久久久久久久久动漫| 亚洲精品欧美二区三区中文字幕| 日韩在线播放一区二区| 国产美女在线观看一区| 在线影院国内精品| 日韩精品自拍偷拍| 日韩美女视频一区二区| 奇米色一区二区| caoporn国产精品| 91精品国产综合久久国产大片| 久久精品人人爽人人爽| 一区二区三区欧美亚洲| 久国产精品韩国三级视频| 91丨porny丨国产入口| 日韩欧美一区二区视频| 国产精品久久看| 日本中文字幕一区二区视频| 成人高清视频在线| 欧美一级国产精品| 亚洲欧美国产77777| 极品少妇一区二区三区精品视频| 99久久er热在这里只有精品15| 欧美色成人综合| 国产免费观看久久| 日韩成人一级大片| 色综合天天在线| 久久精品亚洲麻豆av一区二区 | 亚洲一区二区综合| 国产精选一区二区三区| 精品视频免费在线| 国产精品免费久久| 久久99精品国产麻豆不卡| 欧美中文一区二区三区| 国产免费久久精品| 国内精品久久久久影院薰衣草| 欧美在线观看视频一区二区三区| 久久蜜桃一区二区| 美女脱光内衣内裤视频久久影院| 色综合久久久久综合体| 国产精品久久久久影院老司| 青青青伊人色综合久久| 欧美性色aⅴ视频一区日韩精品| 久久只精品国产| 美女国产一区二区| 欧美日韩精品三区| 亚洲综合一二三区| 99精品欧美一区二区三区综合在线| 久久精子c满五个校花| 日韩av中文字幕一区二区| 91啪亚洲精品| 中文字幕一区二区三区不卡在线| 久久精品国产精品亚洲精品| 欧美女孩性生活视频| 亚洲专区一二三| 在线看国产一区二区| 日韩一区日韩二区| aaa国产一区| 中文字幕成人av| 粉嫩av一区二区三区| 久久久久久久久久看片| 国产原创一区二区三区| 欧美一级日韩免费不卡| 美日韩黄色大片| 日韩美女在线视频 | 国内精品不卡在线| 欧美一级高清大全免费观看| 亚洲成年人影院| 欧美日韩精品电影| 视频在线观看一区| 欧美一级日韩免费不卡| 日本欧美一区二区在线观看| 制服视频三区第一页精品| 日本一不卡视频| 日韩亚洲欧美一区二区三区| 激情综合色综合久久综合| 久久久久免费观看| 国产一区二区伦理片| 国产欧美一区二区精品性| 国产成人在线视频网址| 综合久久久久综合| 欧美主播一区二区三区| 日韩二区三区在线观看| 欧美精品一区二区三区蜜桃视频| 国产精品一区二区视频| 国产精品网站在线观看| 91丝袜国产在线播放| 香港成人在线视频| 精品国产乱码久久久久久免费| 国产一区二区三区四区五区美女| 久久精品欧美一区二区三区麻豆| 国产成人综合网| 一区二区在线观看av| 欧美日韩国产美| 激情综合一区二区三区| 国产精品美女视频| 欧美日韩综合色| 狠狠久久亚洲欧美| 中文字幕一区二区三区乱码在线| 欧美三级乱人伦电影| 久久精品99久久久| 亚洲人成伊人成综合网小说| 欧美日韩国产高清一区| 国产麻豆午夜三级精品| 亚洲欧美日韩人成在线播放| 777xxx欧美| 成人在线综合网站| 丝袜美腿亚洲色图| 国产精品久久久久久久蜜臀| 欧美美女黄视频| 国产91清纯白嫩初高中在线观看| 亚洲精品福利视频网站| 精品少妇一区二区三区视频免付费 | 久久99在线观看| 国产精品毛片a∨一区二区三区| 欧美伊人精品成人久久综合97| 麻豆国产精品777777在线| 亚洲同性同志一二三专区| 日韩欧美中文字幕一区| 91在线视频官网| 国模无码大尺度一区二区三区| 一区二区三区日韩欧美精品| 2019国产精品| 欧美日韩在线不卡| 成人91在线观看| 国内成人自拍视频| 午夜精品久久久久久久99樱桃 | 婷婷综合久久一区二区三区| 久久天堂av综合合色蜜桃网| 欧美色图天堂网| 精品久久久久香蕉网| 欧美午夜电影一区| caoporen国产精品视频| 石原莉奈一区二区三区在线观看|