亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲男人的天堂在线aⅴ视频 | 中文字幕乱码久久午夜不卡| 欧美日韩另类一区| 欧美私人免费视频| 欧美日韩专区在线| 宅男噜噜噜66一区二区66| 欧美日韩成人综合| 日韩欧美中文字幕精品| 久久网站最新地址| 国产精品久久三| 亚洲精品第一国产综合野| 亚洲精品国产a久久久久久 | 日韩激情视频网站| 免费观看在线色综合| 韩国女主播成人在线| 成人一区二区三区| 欧美在线免费观看视频| 欧美日韩国产影片| 久久男人中文字幕资源站| 国产亚洲人成网站| 亚洲婷婷综合久久一本伊一区| 亚洲综合色自拍一区| 日韩精品成人一区二区在线| 国产一区二区三区黄视频| av一区二区久久| 69久久夜色精品国产69蝌蚪网 | 国产成人8x视频一区二区| 99精品视频在线观看| 欧美日韩国产免费| 精品播放一区二区| 亚洲人成精品久久久久| 青娱乐精品视频| 成人性生交大片免费看视频在线| 在线观看成人小视频| 久久青草欧美一区二区三区| 亚洲乱码中文字幕| 日本欧美加勒比视频| a4yy欧美一区二区三区| 欧美一区二区美女| 日韩一区在线看| 激情综合五月婷婷| 欧美三区在线观看| 亚洲国产精品99久久久久久久久| 日韩精品欧美精品| 色琪琪一区二区三区亚洲区| 欧美精品一区二区三区蜜臀| 亚洲成人中文在线| 成人性视频网站| 精品久久久久久久人人人人传媒| 亚洲美女区一区| 丰满放荡岳乱妇91ww| 777a∨成人精品桃花网| 一区二区三区在线高清| 成人综合在线观看| 26uuu国产一区二区三区| 亚洲福中文字幕伊人影院| 成人深夜福利app| 精品日韩在线一区| 日韩中文字幕麻豆| 欧美三级乱人伦电影| 亚洲欧美一区二区不卡| 成人黄色av网站在线| 国产日产精品1区| 激情成人综合网| 日韩亚洲欧美在线观看| 午夜精品视频一区| 欧美日韩一二三| 亚洲一区在线播放| 在线观看一区日韩| 一区二区在线观看不卡| 91蝌蚪porny| 亚洲精品大片www| 色哟哟日韩精品| 亚洲一区欧美一区| 欧美喷潮久久久xxxxx| 午夜欧美2019年伦理| 欧美性极品少妇| 亚洲成av人在线观看| 欧美日韩aaa| 日韩电影免费在线观看网站| 欧美一级爆毛片| 精品亚洲成av人在线观看| 久久女同互慰一区二区三区| 国产酒店精品激情| 国产精品天干天干在线综合| 99久久婷婷国产综合精品电影| 国产精品丝袜黑色高跟| 色综合久久久久久久| 亚洲一区日韩精品中文字幕| 91精品在线一区二区| 精品亚洲porn| 国产精品短视频| 色综合久久天天| 亚洲成人免费在线| 日韩视频国产视频| 国产成人免费在线视频| 一区二区免费视频| 欧美不卡在线视频| bt7086福利一区国产| 香港成人在线视频| 26uuu精品一区二区三区四区在线| 国产精品69久久久久水密桃| 亚洲欧美激情在线| 日韩精品最新网址| 色综合视频一区二区三区高清| 亚洲第一福利视频在线| 久久久久青草大香线综合精品| 99re这里都是精品| 免费成人深夜小野草| 国产精品乱码人人做人人爱| 欧美老年两性高潮| 国产经典欧美精品| 亚洲五月六月丁香激情| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲一区二区欧美日韩| 久久这里只有精品6| 91国偷自产一区二区开放时间| 日韩电影在线看| 日韩美女视频一区| 久久久午夜精品理论片中文字幕| 在线观看亚洲一区| 粉嫩av一区二区三区粉嫩| 日韩黄色在线观看| 亚洲精品视频在线| 国产欧美一区二区精品性| 欧美二区乱c少妇| 99久久久国产精品| 国产成人无遮挡在线视频| 日韩av电影天堂| 亚洲影院在线观看| 亚洲欧洲日产国产综合网| 久久久久久电影| 欧美大片一区二区| 欧美一区日韩一区| 国产激情偷乱视频一区二区三区| 免费在线观看精品| 亚洲成人自拍偷拍| 亚洲精品乱码久久久久久黑人| 国产精品入口麻豆九色| 国产亚洲欧美一区在线观看| 欧美一区二视频| 欧美美女视频在线观看| 91高清视频在线| 一本久久a久久精品亚洲| 99久久久精品| 91女人视频在线观看| 成人福利视频网站| 99久久久国产精品| 一本色道久久综合亚洲91 | 日韩三级免费观看| 欧美精品三级日韩久久| 欧美性大战久久| 精品视频在线免费看| 欧美三级一区二区| 欧美日本国产一区| 日韩一区二区免费高清| 日韩视频免费直播| 久久蜜桃av一区精品变态类天堂 | 日韩无一区二区| 精品国产一区二区国模嫣然| 久久人人超碰精品| 国产精品久久久久久福利一牛影视 | 国产**成人网毛片九色 | 国产精品自拍一区| 国产二区国产一区在线观看| 国产乱码精品1区2区3区| 国产成人免费在线观看不卡| 岛国精品在线播放| 日本精品裸体写真集在线观看| 欧美视频第二页| 日韩欧美国产一区在线观看| 久久久久久久久久看片| 国产精品久久久久影视| 一区二区成人在线视频| 偷拍日韩校园综合在线| 韩国午夜理伦三级不卡影院| 成人高清视频在线| 欧美美女网站色| 久久亚洲捆绑美女| 一区二区三区在线观看动漫| 六月丁香婷婷色狠狠久久| 国产成人av网站| 欧美综合在线视频| 久久香蕉国产线看观看99| 亚洲九九爱视频| 另类综合日韩欧美亚洲| 91香蕉视频污| 精品国产伦一区二区三区观看体验| 国产精品国产三级国产aⅴ中文| 丝袜美腿一区二区三区| 成人晚上爱看视频| 日韩欧美激情一区| 亚洲一区二区三区精品在线| 国产麻豆一精品一av一免费| 欧美图片一区二区三区| 国产精品毛片久久久久久久| 日本伊人精品一区二区三区观看方式| 风间由美一区二区三区在线观看| 91精品国产黑色紧身裤美女| 欧美激情中文字幕一区二区|