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

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

?? userspc3.c

?? profibus通信協議
?? C
?? 第 1 頁 / 共 2 頁
字號:
//WDT_INIT();

/* Enable the SPC3 interrupt in the interupt controller of the microprocessor */
 // SPC3_INTERRUPT_ENABLE = I_ENABLE;
//  GLOBAL_INTERRUPT_ENABLE = I_ENABLE;



for (;;)
	{ 
	
	          Send_watchdog(); 
			        
			  CKD_R_Data_Process();
			  
	       			  
			  if (OWN_ADDRESS!=T_OWN_ADDRESS)
			  {
			      OWN_ADDRESS = T_OWN_ADDRESS;	  
				  	
				  Spc3_Terminal_Ini();	
			  }
			  
	        
	          //=== Begin  of the endless loop ===/
	          zyk_wd_state = SPC3_GET_WD_STATE();    //for info.: the actuall WD State/
	          zyk_dps_state = DPS2_GET_DP_STATE();   //for info.: the actuall PROFIBUS DP State/

	          

	          //WDT_RE();  ****************************************************************************
	          DPS2_RESET_USER_WD();           //Trigger the user watchdog of the SPC3 //

       

              /*============ Handling of the output data =================*/

	          if (DPS2_POLL_IND_DX_OUT()) // are new output date available? 
		      {
		           //Confirm the receiving 
		          DPS2_CON_IND_DX_OUT();

		          // Get the pointer to the actual output data 
		          user_output_buffer_ptr = DPS2_OUTPUT_UPDATE();
                 
		          // Example: Copy the output data to the IO 
		          for (i=0; i<user_io_data_len_ptr->outp_data_len; i++)
		          {
		              //  (*((io_byte_ptr) + i)) = (*(((UBYTE *) user_output_buffer_ptr) + i));
		              Profi_R_Data[i] = (*(((UBYTE *) user_output_buffer_ptr) + i));
				  
				  }			
				  
				  //PROFI_R_Data_Process();數據輸入函數
		      }
               /*
			    i =spc3.is_reg.status[0];
				if (( i & 0x40))
				{
				   CKD_S_Data[0] |= 0x01;
				}
				else 
                {
				   CKD_S_Data[0] &= 0xfe;
				}
				*/
			 //  CKD_S_Data[0] |= 0x01;
               //============ Handling of the input data =================

	           // Write the input data from the periphery to the ASIC //
			   // test profi send data
			   
	           for (i=0; i<user_io_data_len_ptr->inp_data_len; i++)
		       {
			         *((io_byte_ptr) + i) = Profi_S_Data[i];//數據上傳
		             *(((UBYTE *) user_input_buffer_ptr) + i) = *((io_byte_ptr) + i);
				 //  *(((UBYTE *) user_input_buffer_ptr) + i) = Profi_S_Data[i];
		       }

	            // Give the actuall pointer / data to the SPC3/DPS2 an get a new pointer,
		          //   where the next input data can be written //
	            user_input_buffer_ptr = DPS2_INPUT_UPDATE();


                //== Handling of the external diagnosis and other user defined actions =====//

	            dps_chg_diag_srvc_byte_new = *((UBYTE*)(io_byte_ptr));
                 
	            if (user_diag_flag) // is a diagnosis buffer available? //
		        {
		                 // Is there a change in the service byte (1.input byte) //
		                 if (dps_chg_diag_srvc_byte_new == dps_chg_diag_srvc_byte_old)
			             {
			                   // no action //
			             }
		                 else
			             {     
			                  //== Handling of the external diagnosis  =====
			                  // only the least significant 3 byte are used 
			                  
							  
							  if ((dps_chg_diag_srvc_byte_new & 0x07) !=(dps_chg_diag_srvc_byte_old & 0x07))
				              {
				                    // Mask the 3 bits 
				                    diag_service_code = dps_chg_diag_srvc_byte_new & 0x07;

				                    // Write the length of the diagnosis data to the SPC3 
				                    if (dps_chg_diag_srvc_byte_new & 0x01)
					                      diag_len = 16;   // max. value of the IM308B 
				                    else
					                      diag_len = 6;
				                    diag_len = DPS2_SET_DIAG_LEN(diag_len);

				                    // Write the external diagnosis data to the SPC3 
				                    build_diag_data_blk ((struct diag_data_blk *)user_diag_buffer_ptr);

				                    // Set the service code             
				                    // 0x01 External diagnosis          
				                    // 0x02 Static   diagnosis          
				                    // 0x04 External diagnosis Overflow 
			                        i= DPS2_SET_DIAG_STATE(diag_service_code);


				                    // Trigger the diagnosis update in the SPC3
				                    DPS2_DIAG_UPDATE();

				                    // Store "no diagnosis buffer available"  
				                    user_diag_flag = FALSE;

				              }
                                
			                  dps_chg_diag_srvc_byte_old = dps_chg_diag_srvc_byte_new;

			             }
		  }
                 

        //================ Check the buffers and the state =================//

        // Is a new diagnosis buffer available //
		
	    if (DPS2_POLL_IND_DIAG_BUFFER_CHANGED())
		{
		    DPS2_CON_IND_DIAG_BUFFER_CHANGED(); //Confirm the indication 
		    user_diag_buffer_ptr = DPS2_GET_DIAG_BUF_PTR(); // Fetch the pointer 
		    user_diag_flag = TRUE; // Set the Notice "Diag. buffer availble      
		}
        
	}   //=== endless loop        ===//
   
	return;
}

void user_dps_reset (void)
{

enum SPC3_INIT_RET dps2_init_result;            /* result of the initial. */



DPS2_SET_IDENT_NUMBER_HIGH(ident_numb_high);    /* Set the Identnumber    */
DPS2_SET_IDENT_NUMBER_LOW(ident_numb_low);

SPC3_SET_STATION_ADDRESS(this_station);         /* Set the station address*/



SPC3_SET_HW_MODE(SYNC_SUPPORTED | FREEZE_SUPPORTED | INT_POL_LOW | USER_TIMEBASE_10m);//888888888888888888888888888888888888888											/* Set div. modes of the  */
		
		
												/* SPC3                   */
if (!real_no_add_chg)
	{
	DPS2_SET_ADD_CHG_ENABLE();                  /* Allow or allow not the */
	}                                           /* address change         */
else
	{
	DPS2_SET_ADD_CHG_DISABLE();
	}


/* initialize the length of the buffers for DPS2_INIT() */
dps2_buf.din_dout_buf_len = 244;
dps2_buf.diag_buf_len = sizeof(struct diag_data_blk);
dps2_buf.prm_buf_len = 20;
dps2_buf.cfg_buf_len = 10;

dps2_buf.ssa_buf_len = 0;       /* Suspend the address change service  */


/* initialize the buffers in the SPC3    


               */
		//dps2_buf_init( &xxx, DPS2_IBUF_PTR, TRUE, _USE_SPEC_PRM_BUF__)	
//loesch= &spc3.int_req.b[0];  
dps2_init_result = dps2_buf_init(&dps2_buf, TRUE, _USE_SPEC_PRM_BUF__);	   
			   
//dps2_init_result = SPC3_INIT(&dps2_buf);  // 
if(dps2_init_result != SPC3_INIT_OK)
	{       // Failure //
	for(;;)
		{
		error_code = INIT_ERROR;
		user_error_function(error_code);
		}
	}

/* Get a buffer for the first configuration */   
real_config_data_ptr = (UBYTE *) DPS2_GET_READ_CFG_BUF_PTR();

/* Set the length of the configuration data */
DPS2_SET_READ_CFG_LEN(CFG_LEN);

/* Write the configuration bytes in the buffer */
*(real_config_data_ptr) = CONFIG_DATA_INP;      /* Example 0x13 */
*(real_config_data_ptr + 1) = CONFIG_DATA_OUTP; /* Example 0x23 */

/* Store the actuall configuration in RAM for the check in the 
   check_configuration sequence (see the modul intspc3.c)       */
cfg_akt[0] = CONFIG_DATA_INP;
cfg_akt[1] = CONFIG_DATA_OUTP;
cfg_len_akt = 2;


/* Calculate the length of the input and output using the configuration bytes*/
user_io_data_len_ptr = dps2_calculate_inp_outp_len (real_config_data_ptr,(UWORD)CFG_LEN);
if (user_io_data_len_ptr != (DPS2_IO_DATA_LEN *)0)
	{
	/* Write the IO data length in the init block */
	DPS2_SET_IO_DATA_LEN(user_io_data_len_ptr);
	}
else
	{
	for(;;)
		{
		error_code =IO_LENGTH_ERROR;
		user_error_function(error_code);
		}
	}


/* Fetch the first input buffer */
user_input_buffer_ptr = DPS2_GET_DIN_BUF_PTR();

/* Fetch the first diagnosis buffer, initialize service bytes */
dps_chg_diag_srvc_byte_new = dps_chg_diag_srvc_byte_old = 0;
user_diag_buffer_ptr = DPS2_GET_DIAG_BUF_PTR();
user_diag_flag = TRUE; 

/* for info: get the baudrate                */
user_baud_value = SPC3_GET_BAUD();

/* Set the Watchdog for the baudrate control */
SPC3_SET_BAUD_CNTRL(0x1E);

/* and finally, at last, los geht's start the SPC3 */
SPC3_START();

}


void user_error_function(enum ERRORCODES errors)
{
	char	ch;
	/* An error has occured -> user defined actions */
	/* you can check the error_code                 */
	ch=errors;
	while (1);

}


void build_diag_data_blk (struct diag_data_blk * diag_ptr)
  {
  diag_ptr -> header                 = (diag_len - 6);       /* subtract the fixed */
  diag_ptr -> ext_diag_0             = prm_tst_buf[0];   /* DP diagnosis       */
  diag_ptr -> ext_diag_1             = prm_tst_buf[1];
  diag_ptr -> ext_diag_2             = prm_tst_buf[2];
  diag_ptr -> ext_diag_3             = prm_tst_buf[3];
  diag_ptr -> ext_diag_4             = prm_tst_buf[4];
  diag_ptr -> ext_diag_5             = prm_tst_buf[5];
  diag_ptr -> ext_diag_6             = prm_tst_buf[6];
  diag_ptr -> ext_diag_7             = prm_tst_buf[7];
  diag_ptr -> ext_diag_8             = prm_tst_buf[8];
  diag_ptr -> ext_diag_9             = prm_tst_buf[9];
  diag_ptr -> ext_diag_10            = prm_tst_buf[10];
  diag_ptr -> ext_diag_11            = prm_tst_buf[11];
  diag_ptr -> ext_diag_12            = prm_tst_buf[12];
  diag_ptr -> ext_diag_13            = 0;
  diag_ptr -> ext_diag_14            = 0;
  diag_ptr -> ext_diag_15            = 0;
  diag_ptr -> ext_diag_16            = 0;
  diag_ptr -> ext_diag_17            = 0;
  }
/*

void init_serial(void)
{	
    SCON  = 0x40;      //SCON:  mode1(8bit UART,variable);SM1=1
	T2CON=0x30;         //RCLK=1;  TCLK=1;
    PCON |= 0x00;       //SMOD=0; 
	switch (BR_NUM)      //---------根據波特率號設置T2--------------------/
    {
     case 1:{TH2=0x0ff; TL2=0x0d0;RCAP2H=0x0ff;RCAP2L=0x0d0;}
            break;      //  /---9.6K---/
     case 2:{ TH2=0x0ff; TL2=0x0e8;RCAP2H=0x0ff;RCAP2L=0x0e8;}
            break;      //  /---19.2K--/
     case 3:{ TH2=0x0ff; TL2=0x0f0;RCAP2H=0x0ff;RCAP2L=0x0f0;}
	 		break;     //  /---38.4K--/
     case 4:{ TH2=0x0ff; TL2=0x0f8;RCAP2H=0x0ff;RCAP2L=0x0f8;}
	 		break;     //   /---57.6K--/
     case 5:{ TH2=0x0ff; TL2=0x0fc;	RCAP2H=0x0ff;RCAP2L=0x0fc;}
			break;      //  /---115.2K-/
     case 6:{ TH2=0x0ff; TL2=0x0fe;RCAP2H=0x0ff;RCAP2L=0x0fe;}
	 		break;      //  /---230.4K-/
     default:
	        break;
    } 
	ES=1; //enable serial port interrupt
    REN=1;//enable reception
	TR2=1;//enable T2
 }
*/

/*
#pragma disable		//disable interrupt in sending
void send(UBYTE *str,UBYTE len) 
{
	UBYTE k=0;
    do 
    {
        SBUF=*str;
		while(TI==0); 
    	TI=0;
        k++;
		str++;
    } while(k<len);
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无人码麻豆乱码1区2区| 色8久久人人97超碰香蕉987| 日韩一级大片在线观看| 天堂蜜桃91精品| 日韩欧美在线一区二区三区| 亚洲国产日产av| 欧美欧美午夜aⅴ在线观看| 日日夜夜一区二区| 精品播放一区二区| 成人av午夜影院| 亚洲在线一区二区三区| 欧美一区二区三区视频| 国产精品综合二区| 亚洲精品欧美在线| 精品国产精品一区二区夜夜嗨| 国产一区久久久| 一区二区三区四区在线播放| 91精品国产一区二区三区蜜臀| 国产米奇在线777精品观看| 国产精品免费aⅴ片在线观看| 色婷婷久久99综合精品jk白丝| 日韩成人一级片| 国产婷婷一区二区| 欧美视频一区二区| 久久精品国产一区二区| 国产精品三级电影| 91精品久久久久久久久99蜜臂| 激情综合网天天干| 一区二区三区不卡视频在线观看| 日韩午夜在线观看视频| 丁香婷婷综合网| 天天综合日日夜夜精品| 欧美高清在线一区| 欧美美女黄视频| www..com久久爱| 蜜臀久久99精品久久久画质超高清| 久久久精品免费网站| 欧美亚洲综合久久| 丁香一区二区三区| 麻豆国产精品一区二区三区 | 狠狠色综合日日| 亚洲影视在线播放| 中文字幕久久午夜不卡| 91精品国产综合久久久久| 成人禁用看黄a在线| 久久精品国产亚洲高清剧情介绍| 成人免费在线视频观看| 久久精品视频一区二区| 91精品国产手机| 欧美三日本三级三级在线播放| 国产福利一区二区三区| 日韩高清在线不卡| 亚洲v中文字幕| 中文字幕一区二区在线观看| 亚洲国产精品国自产拍av| 欧美本精品男人aⅴ天堂| 欧美日本在线播放| 91成人免费在线视频| jizz一区二区| 成人黄色电影在线| 成人自拍视频在线观看| 国产综合久久久久影院| 国产综合一区二区| 国产精品一区二区无线| 久久国产免费看| 美女在线视频一区| 日本不卡一区二区| 丝袜美腿亚洲综合| 亚洲图片欧美综合| 亚洲成人资源网| 亚洲国产精品视频| 亚洲一区二区三区不卡国产欧美| 亚洲三级在线免费| 亚洲午夜精品17c| 亚洲国产欧美在线| 丝袜诱惑亚洲看片| 另类小说色综合网站| 国产一区二区三区四区五区美女 | 欧美视频三区在线播放| 91黄色激情网站| 欧美日韩中文精品| 在线电影一区二区三区| 日韩精品一区二区三区四区视频| 精品久久久久99| 久久影院午夜片一区| 国产精品免费人成网站| 亚洲最新视频在线观看| 婷婷成人激情在线网| 蜜臀精品一区二区三区在线观看 | 自拍偷在线精品自拍偷无码专区 | 欧美日韩高清一区二区三区| 欧美一级xxx| 久久五月婷婷丁香社区| 中文字幕精品在线不卡| 亚洲综合在线第一页| 日本亚洲欧美天堂免费| 国产999精品久久久久久绿帽| 色伊人久久综合中文字幕| 777奇米成人网| 国产午夜精品久久久久久久| 亚洲欧美偷拍卡通变态| 日本亚洲欧美天堂免费| 91在线云播放| 日韩三级在线观看| 亚洲天堂福利av| 裸体健美xxxx欧美裸体表演| 欧美蜜桃一区二区三区| 久久理论电影网| 亚洲风情在线资源站| 国产aⅴ综合色| 6080国产精品一区二区| 国产精品电影院| 蜜桃av一区二区| 91免费看`日韩一区二区| 日韩亚洲电影在线| 亚洲精品国产精品乱码不99| 国产揄拍国内精品对白| 欧美日韩精品免费观看视频| 日本一区二区视频在线| 蜜桃久久av一区| 欧美无人高清视频在线观看| 中文在线资源观看网站视频免费不卡| 午夜精品久久久久久不卡8050| 国产91丝袜在线18| 欧美一个色资源| 亚洲午夜精品17c| 91黄色激情网站| 中文字幕中文乱码欧美一区二区| 国产一区二区三区av电影| 日韩欧美国产综合在线一区二区三区| 久国产精品韩国三级视频| 欧美一a一片一级一片| 亚洲欧洲成人精品av97| 国产精品一区二区在线观看不卡| 91麻豆精品久久久久蜜臀| 亚洲最新视频在线播放| 色噜噜久久综合| 亚洲欧美自拍偷拍色图| aa级大片欧美| 国产精品午夜免费| 成人免费精品视频| 国产精品乱码人人做人人爱| 国产69精品久久777的优势| 欧美激情综合五月色丁香小说| 国内久久婷婷综合| 亚洲精品在线免费播放| 国产裸体歌舞团一区二区| 欧美mv和日韩mv国产网站| 久久精品久久99精品久久| 日韩欧美综合在线| 激情综合网av| 久久综合久久综合亚洲| 国产美女精品人人做人人爽| 2020国产精品久久精品美国| 国产一区二区三区久久久| 国产精品女主播av| av成人动漫在线观看| 日韩视频在线观看一区二区| 精品国产乱码久久久久久影片| 亚洲综合免费观看高清完整版| 91最新地址在线播放| 一个色在线综合| 91精品国产综合久久婷婷香蕉 | 久久国产麻豆精品| 国产婷婷色一区二区三区四区| 国内精品在线播放| 国产精品拍天天在线| 色综合久久天天| 亚洲va中文字幕| 精品少妇一区二区三区视频免付费 | 欧洲亚洲精品在线| 免费观看一级欧美片| 日本一区二区成人| 欧洲精品一区二区| 精品一二三四在线| 国产精品久久久久久久久免费丝袜| 91在线国内视频| 久久精品国产色蜜蜜麻豆| 国产精品丝袜在线| 欧美日韩mp4| 国产夫妻精品视频| 亚洲二区视频在线| 国产人成一区二区三区影院| 色88888久久久久久影院野外| 日韩高清国产一区在线| 1024成人网色www| 久久视频一区二区| 欧美日韩国产免费一区二区| 国产成人在线免费| 日韩av中文字幕一区二区| 亚洲欧洲www| 一区二区三区电影在线播| 精品精品国产高清一毛片一天堂| 色噜噜狠狠一区二区三区果冻| 国产麻豆91精品| 久久精品国产澳门| 亚洲电影第三页| 最新国产成人在线观看| 久久久久久久久久久黄色| 精品视频免费在线|