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

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

?? userspc3.c

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

/*********************************************************************

	公司名稱:	 揚州恒春電子
	模塊名	:	 Profibus DP從站接口程序 
	創建人	:	                                          
	日期	:	 2007/03/01	                                         
	功能描述:   利用ATMEG64L對SPC3進行配置,實現Profibus通訊                                
	其它說明:   編譯環境為Keil uVision2                                            
	版本	:	 V1.0

*********************************************************************/

#include "spc3dps2.h"
#include "iom64v.h"
#include <macros.h>
#include "eeprom.h"  
				
#define   Clr_run_led()      PORTB&=~BIT(PB2)	   /* show SPC3'states				*/
#define   Set_run_led()      PORTB|=BIT(PB2)	   /* show SPC3'states				*/

#define   Clr_SPC3_1_RESET()   PORTB&=~BIT(PB0)    /* SPC3-reset-Pin               */
#define   Set_SPC3_1_RESET()   PORTB|= BIT(PB0)    /* SPC3-reset-Pin               */

#define   Clr_WD()      PORTB &= ~BIT(PB3)	       /* 			*/
#define   Set_WD()      PORTB |= BIT(PB3)	       /* 			*/


#define BR_NUM	1					/* for serial baudrate		    */
#define SPC3_RESET_SET 1            /* reset-polarity               */
#define SPC3_INTERRUPT_ENABLE  EX0  /* external interrupt of SPC3   */
#define I_ENABLE 1                  /* enable interrupt             */
#define GLOBAL_INTERRUPT_ENABLE EA  /* global interrupt             */




/********************The time-out of WDT at 12 MHz ***********
		16MS 	WDTPRG=0x0
		32MS 	WDTPRG=0x1
		65MS 	WDTPRG=0x2
		131MS 	WDTPRG=0x3
		262MS 	WDTPRG=0x4
		542MS 	WDTPRG=0x5
		1MS 	WDTPRG=0x6
		2MS 	WDTPRG=0x7
**************************************************************/
/*
#define WDT_INIT() WDTPRG=0x5;\
		WDTRST=0x1E;\
		WDTRST=0xE1

#define WDT_RE() WDTRST=0x1E;\
		WDTRST=0xE1
*/


/*----------------------------------------------------------------------*/
/*                       STRUCTURES AND TYPEDEFS                        */
/*----------------------------------------------------------------------*/

struct  diag_data_blk
  {
  UBYTE                               stationstatus_1;
  UBYTE                               stationstatus_2;
  UBYTE                               stationstatus_3;
  UBYTE                               master_add;
  UBYTE                               ident_high;
  UBYTE                               ident_low;

  /*------------------ extern diag data  -----------------*/
  UBYTE                               header;
  UBYTE                               ext_diag_0;
  UBYTE                               ext_diag_1;
  UBYTE                               ext_diag_2;
  UBYTE                               ext_diag_3;
  UBYTE                               ext_diag_4;
  UBYTE                               ext_diag_5;
  UBYTE                               ext_diag_6;
  UBYTE                               ext_diag_7;
  UBYTE                               ext_diag_8;
  UBYTE                               ext_diag_9;
  UBYTE                               ext_diag_10;
  UBYTE                               ext_diag_11;
  UBYTE                               ext_diag_12;
  UBYTE                               ext_diag_13;
  UBYTE                               ext_diag_14;
  UBYTE                               ext_diag_15;
  UBYTE                               ext_diag_16;
  UBYTE                               ext_diag_17;
  };

enum ERRORCODES {IO_LENGTH_ERROR,INIT_ERROR,UNUSED};

/*----------------------------------------------------------------------*/
/*                       INTERNAL FUNCTIONS                             */
/*----------------------------------------------------------------------*/
void main (void);

void user_dps_reset (void);
void build_diag_data_blk (struct diag_data_blk*);
void user_error_function (enum ERRORCODES);
/*
void init_serial(void);
void send(UBYTE *str,UBYTE len);
*/
/*----------------------------------------------------------------------*/
/*                       LITERALS                                       */
/*----------------------------------------------------------------------*/


//  #define OWN_ADDRESS             19 //
#define IDENT_HIGH            0x0B    // 0x06         //
#define IDENT_LOW             0x9F    // 0xFA         // 


#define CFG_LEN                 2
#define CONFIG_DATA_INP         0x17   //  0x16(7)  0x13(4)
#define CONFIG_DATA_OUTP        0x25   //4

/*----------------------------------------------------------------------*/
/*                       GLOBAL VARIABLES                               */
/*----------------------------------------------------------------------*/

UBYTE                   real_no_add_chg;
UBYTE                   this_station;
UBYTE                   cfg_akt [20];
UBYTE                   cfg_len_akt;
DPS2_IO_DATA_LEN   *user_io_data_len_ptr;

struct diag_data_blk    *diag_ptr;
DPS2_BUFINIT            dps2_buf;

UBYTE      *user_output_buffer_ptr;

UBYTE      *user_input_buffer_ptr;
UBYTE      *real_config_data_ptr;
void       *user_diag_buffer_ptr;

UBYTE                   ident_numb_high;
UBYTE                   ident_numb_low;
UBYTE                   dps_chg_diag_srvc_byte_new;
UBYTE                   dps_chg_diag_srvc_byte_old;
UBYTE                   diag_service_code;
UBYTE                   diag_len;
UWORD                   user_baud_value;
UBYTE                   user_diag_flag;
UBYTE                   *io_byte_ptr;
UBYTE                   i;
UBYTE                   zyk_wd_state;
UBYTE                   zyk_dps_state;
UBYTE                   prm_tst_buf[32]= {0,0,0,0,0,0,0,0,0,0,
											0,0,0,0,0,0,0,0,0,0,
											0,0,0,0,0,0,0,0,0,0,0,0};
UBYTE                   WD_Flag0;
UBYTE                   Isr_Flag1;
UBYTE                 	OWN_ADDRESS;	
UBYTE                 	T_OWN_ADDRESS;	
							
										
extern UBYTE            Profi_S_Data[8];
extern UBYTE            CKD_R_Data[14];
extern UBYTE            CKD_S_Data[9];
extern UBYTE            Profi_R_Data[8];
	
											
enum ERRORCODES error_code;


void twi_init(void);

unsigned char CKD_R_Data_Process(void);
void PROFI_R_Data_Process(void);

unsigned char  I2c_RS_Data_Comm(void);

void port_init(void)
{
 PORTA = 0x00;
 DDRA  = 0x00;
 PORTB = 0x00;
 DDRB  = 0xff;
 PORTC = 0x00; //m103 output only
 DDRC  = 0x00;
 PORTD = 0x00;
 DDRD  = 0x00;
 PORTE = 0x00;
 DDRE  = 0x00;
 PORTF = 0x00;
 DDRF  = 0x00;
 PORTG = 0x00;
 DDRG  = 0x00;
}

/*
void watchdog_ini(void)
{
  WDR();       //喂狗,清0,防止狗定時器益處
  WDTCR=0x0b;  //狗使能,欲分頻設為010,VCC=5V益處時間為65。2毫秒
 }
 
void watchdog_off(void) 
{
  WDTCR=BIT(WDCE);
  WDTCR=BIT(WDCE);  //對WDCE 和WDE 寫1
  WDTCR=0x00;            //WDE 寫0;禁止看門狗
 // WDTCR=0x00; 
} 
*/

void Send_watchdog(void)
{
     if (WD_Flag0)  
	 {
	         Clr_WD();
			 WD_Flag0 = 0;
     }
	 else
	 {
	         Set_WD();
			 WD_Flag0 = 1;
	 }
}
  

//call this routine to initialize all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts

 port_init();

 MCUCR = 0x80;
 EICRA = 0x00; //extended ext ints
 EICRB = 0x01; //extended ext ints
 EIMSK = 0x10;
 
 twi_init();
 
 SEI();
 
 //TIMSK = 0x00; //timer interrupt sources
 //ETIMSK = 0x00; //extended timer interrupt sources*/
 //re-enable interrupts
 //all peripherals are now initialized
}

void Terminal_Address_Ini(void)
{
 
   while(!CKD_R_Data_Process())
   {
       Send_watchdog();
   }
   
   
   if ((CKD_R_Data[1] >= 0x01) && (CKD_R_Data[1] <= 0x7d))
   {
       OWN_ADDRESS = CKD_R_Data[1];
   }
   else
   {
       OWN_ADDRESS = 0xff;
   }
 
}



void Spc3_Terminal_Ini(void)
{

volatile UBYTE  *loesch;
UWORD zaehl;

Set_SPC3_1_RESET();
//watchdog_ini();
for(i = 100; i ; i--);

//SPC3_RESET = !SPC3_RESET_SET;
Clr_SPC3_1_RESET();

//Set_run_led();

//SPC3_INTERRUPT_ENABLE = !I_ENABLE;  /* Set the interrupt parameters */

loesch = &spc3.int_req.b[0];        /* Delete the SPC3 internal RAM */

for (zaehl=0x16; zaehl<=0x05ff; zaehl++)
{
	*(loesch + zaehl) = 0;
}
//Clr_run_led(); 
//init_serial();	

/* activate the indication functions */
SPC3_SET_IND(GO_LEAVE_DATA_EX | WD_DP_MODE_TIMEOUT | NEW_GC_COMMAND |\
			   NEW_CFG_DATA | NEW_PRM_DATA | BAUDRATE_DETECT);

/* set the watchdog value in the SPC3, which checks the microprocessor */
//DPS2_SET_USER_WD_VALUE(20000);  // 
DPS2_SET_USER_WD_VALUE(SWAP_W(20000));

/* In this example the input and output bytes are transfered to the
   IO area, which is addressed by the io_byte_ptr. In the case of the IM183
   there is RAM. */


	io_byte_ptr = ((UBYTE  *) 0x110);

for (i=0; i<20; i++)
	{
	(*(io_byte_ptr + i)) = 3;
	}

this_station = OWN_ADDRESS;
ident_numb_high = IDENT_HIGH;
ident_numb_low =  IDENT_LOW;

/* Allow not the change of the slave address by the PROFIBUS DP      */
/* Attention: The set_slave_address service is not blocked by this */
real_no_add_chg = TRUE;


/* Reset the User und DPS */
user_dps_reset();

}


void main()
{


init_devices();


Terminal_Address_Ini();

Spc3_Terminal_Ini();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情久久久久久久久久久久久久久久| 亚洲一区二区黄色| 欧美大片免费久久精品三p| 欧美在线色视频| 欧美日韩中字一区| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲女同一区二区| 一区二区三区四区国产精品| 亚洲男人天堂一区| 午夜婷婷国产麻豆精品| 日韩精品乱码免费| 久久精品国产网站| 成人动漫一区二区在线| 色婷婷国产精品| 91精品国产麻豆国产自产在线| 日韩一区二区三区免费看| 欧美大胆一级视频| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品女同一区二区三区| 一区二区三区国产豹纹内裤在线| 亚洲丰满少妇videoshd| 经典三级在线一区| 本田岬高潮一区二区三区| 在线观看不卡一区| 精品少妇一区二区三区视频免付费 | 日本成人中文字幕在线视频| 精品一区二区免费视频| 不卡大黄网站免费看| 欧美日韩国产乱码电影| 精品久久久久香蕉网| 中文字幕在线观看不卡| 亚洲一区二区三区中文字幕在线| 毛片基地黄久久久久久天堂| 不卡电影免费在线播放一区| 制服丝袜亚洲精品中文字幕| 国产精品欧美一级免费| 婷婷国产在线综合| 国产成人免费9x9x人网站视频| 色综合久久中文字幕| 欧美r级在线观看| 亚洲一区电影777| 国产精品一二三四| 欧美日韩国产三级| 综合婷婷亚洲小说| 国产美女娇喘av呻吟久久| 色天天综合色天天久久| 欧美成人aa大片| 亚洲午夜成aⅴ人片| 成人免费视频一区| 精品国产一区a| 午夜成人在线视频| 91成人免费在线视频| 国产精品毛片久久久久久久| 久久99久久99| 日韩欧美中文字幕公布| 午夜免费久久看| 91激情在线视频| 亚洲男人的天堂av| 成人18视频日本| 国产欧美一区二区精品忘忧草| 日韩va亚洲va欧美va久久| 色狠狠桃花综合| 中文字幕中文字幕一区| 成人免费视频免费观看| 精品免费99久久| 久久疯狂做爰流白浆xx| 欧美精选午夜久久久乱码6080| 亚洲激情图片一区| 91国产丝袜在线播放| 亚洲三级在线免费| 91麻豆免费看片| 亚洲免费在线视频一区 二区| aaa国产一区| 成人免费在线视频观看| 色呦呦一区二区三区| 一区二区三区在线影院| 欧美亚一区二区| 图片区日韩欧美亚洲| 555夜色666亚洲国产免| 天天综合日日夜夜精品| 91精品国产91热久久久做人人| 日韩精品高清不卡| 日韩欧美一区二区三区在线| 极品少妇一区二区三区精品视频| 欧美mv日韩mv| 成人一道本在线| 一区二区三区丝袜| 欧美伦理电影网| 美女视频一区在线观看| 久久久久久毛片| 91在线精品一区二区| 亚洲成av人影院| 日韩一二在线观看| 岛国精品在线观看| 一区二区视频在线看| 欧美婷婷六月丁香综合色| 免费不卡在线观看| 国产日韩av一区二区| 成人教育av在线| 亚洲高清免费一级二级三级| 精品免费视频一区二区| 波多野结衣在线一区| 亚洲午夜精品在线| 久久精品夜夜夜夜久久| 91小视频在线观看| 免费视频一区二区| 亚洲人成精品久久久久久| 91精品国产入口| www.日韩精品| 天堂资源在线中文精品| 中文字幕精品在线不卡| 在线不卡中文字幕播放| 国产成人亚洲精品青草天美| 亚洲丰满少妇videoshd| 亚洲国产精品黑人久久久| 欧美日本一区二区| 成人18视频在线播放| 蜜桃视频第一区免费观看| 亚洲免费看黄网站| 精品国产凹凸成av人导航| 欧美制服丝袜第一页| 国产精品91一区二区| 亚洲国产成人精品视频| 久久久久高清精品| 91精品国产一区二区三区香蕉| 成人国产视频在线观看| 黑人精品欧美一区二区蜜桃| 亚洲永久精品大片| 亚洲四区在线观看| 欧美激情在线观看视频免费| 555www色欧美视频| 欧美日韩国产一级| 欧美亚洲动漫另类| 一本色道久久综合亚洲aⅴ蜜桃| 韩国av一区二区| 日本不卡123| 亚洲成av人片在线观看| 亚洲乱码国产乱码精品精的特点 | 91色在线porny| 国产乱码字幕精品高清av| 日本午夜一区二区| 亚洲午夜私人影院| 亚洲午夜国产一区99re久久| 亚洲女女做受ⅹxx高潮| 国产精品国产精品国产专区不蜜| 久久久久久99久久久精品网站| 制服.丝袜.亚洲.中文.综合| 欧美久久一二三四区| 欧美色偷偷大香| 欧美精品自拍偷拍动漫精品| 欧美群妇大交群中文字幕| 欧美在线小视频| 欧美电影影音先锋| 91精品婷婷国产综合久久| 欧美一区中文字幕| 日韩欧美国产三级| 久久久久久久网| 亚洲国产裸拍裸体视频在线观看乱了 | 国产综合色精品一区二区三区| 九色综合国产一区二区三区| 狠狠色丁香婷婷综合久久片| 国产一区二区精品在线观看| 久久机这里只有精品| 国产福利电影一区二区三区| av一二三不卡影片| 91福利国产成人精品照片| 欧美久久久久久久久| 久久亚洲春色中文字幕久久久| 久久精品日韩一区二区三区| 国产免费成人在线视频| 亚洲精品日韩专区silk| 日韩avvvv在线播放| 国产成人精品影视| 91丨国产丨九色丨pron| 欧美日韩成人在线一区| 久久免费的精品国产v∧| 亚洲免费av观看| 日韩电影一区二区三区| 国产麻豆日韩欧美久久| 色综合天天做天天爱| 日韩视频免费观看高清完整版| 国产午夜精品理论片a级大结局| 亚洲女同ⅹxx女同tv| 青草av.久久免费一区| 成人看片黄a免费看在线| 欧美日韩精品欧美日韩精品| 久久久蜜桃精品| 亚洲一区二区三区三| 国产在线播放一区二区三区| 91免费国产在线| 精品99久久久久久| 一级女性全黄久久生活片免费| 六月丁香婷婷久久| 日本高清不卡视频| 久久女同性恋中文字幕| 亚洲成av人片www| 成人免费av资源| 精品久久国产字幕高潮| 亚洲高清不卡在线观看| 99久久精品免费看国产|