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

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

?? comm._c

?? 一個正在應用的步進電機控制程序,包括電機的調速,正反,細分,通訊控制
?? _C
字號:
/*******************************************************
/*ICC-AVR application builder : 2004-3-11 12:02:11
// Target : atMega16
// Crystal: 8.0000Mhz
通訊模塊  單工雙向485接口
******************************************************/
#include <string.h>
#include <iom32v.h>
#include <math.h>
#include <stdlib.h>
#include <macros.h>
#include <eeprom.h>
#include "eeprom_l.h"
#include "comm.h"
#include "main.h"
#include "delay.h"
#include "key.h"
	 
#pragma data:data
unsigned char state2;
//state2.0 disable_data    //1:輸入數據無效,0有效;
//state2.1 remote		   //1:遙控輸入有效,0:本地輸入有效
//state2.7 p99			   //P99指令使能
unsigned char state1;		   				   					  
//state1.2 PE  
//state1.3 DOR
//state1.4 FE
//state1.5 
//state1.6 
unsigned char pump_tab;		//機器號								   
extern unsigned int speed;
extern unsigned char state_other;
extern unsigned char state0;
extern unsigned char key;
extern unsigned char in_out_number;
extern unsigned char state;
//state0.5接收消息有效標志

/* 通信變量定義 */
char txd_frm[15];         //物理層發送緩沖區
char txd_frm_len;          //物理層發送數據長度
char rxd_frm[15];         //物理層接收緩沖區
char rxd_frm_len;          //物理層接收數據長度
char tx485_busy;		   //485發送工作判忙
char txd_cnt;			   //發送數據計數器
char rxd_cnt;			   //接收數據計數器
char rxd_ins_flag;		   //一幀接收數據中有E8或E9標志
char txd_ins_flag;		   //一幀發送數據中有E8或E9標志
char txd_ins_data;		   //發送數據
char rxd_data;			   //接收數據
char mac_txd_th;		   //發送狀態 0發送完畢,1發送幀頭,2發送中間數據
char rxd_h_ok;			   //接收開始標志
char fcs1;				   //異或校驗
char rxd_mesg_addr;		   //接收地址
char rxd_mesg_len;		   //應用層接收數據長度
char rxd_mesg[15];		   //應用層接收數據緩沖區
char txd_mesg_addr;		   //發送地址
char txd_mesg_len;		   //應用層發送數據長度
char txd_mesg[15];		   //應用層發送數據緩沖區
/*********任務管理*************/
char pri[16];
char act[16];           //任務寄存器
char rxd_llc_job;       //物理層收任務寄存器
char txd_llc_job;       //物理層發任務寄存器
char rs485_app_job;     //應用層任務寄存器
char att_n_max;
extern struct cal
       {
	   unsigned  int       test_time;
	   unsigned  long int  dispvol;
	   unsigned  long int  test_dispvol;
	   float               dispk;
	   unsigned  long int  run_time;
	   };
extern struct cal cal0;
/*****************************************************************
功能: serial_int
描述: 運行串行口 FSAs.
參數: 無.
返回無.
影響無.
*****************************************************************/
#pragma interrupt_handler serialri_int:iv_USART_RX
#pragma interrupt_handler serialti_int:iv_USART_TX

/* 通信物理層發送中斷程序模塊 */
void serialti_int(void)
{ 
	char i;
	    UCSRA=RS485_UCSRA|0b01000000;   /*清發送完中斷標志位*/
		if(mac_txd_th==1)
		{ UDR=0xe9;
		  txd_cnt=0;
		  txd_ins_flag=0;
		  tx485_busy=1;
		  mac_txd_th=2;
		}
		else
		{ if(mac_txd_th==2)
		  { if(txd_ins_flag==1)
		    { txd_ins_flag=0;
			  UDR=txd_ins_data;
			}
			else
			{ if(txd_cnt<=(txd_frm_len-1))
			  { if(txd_frm[txd_cnt]==0xe8||txd_frm[txd_cnt]==0xe9)
			    { txd_ins_flag=1;
                  txd_ins_data=txd_frm[txd_cnt]-0xe8;
                  UDR=0xe8;
				}
				else
				{ UDR=txd_frm[txd_cnt];}
				txd_cnt=txd_cnt+1;
			  }
			  else
			  { tx485_busy=0;
			    mac_txd_th=0;
				PORTC&=~(1<<DE_485);
			  }
			}
		  }
		  else
		  { tx485_busy=0;
		    mac_txd_th=0;
			PORTC&=~(1<<DE_485);
		  }
		}
}

/* 通信物理層接收中斷程序模塊 */
void serialri_int(void)
{
	char i;
	    UCSRA=RS485_UCSRA&0b00111111;   /*清接收完中斷標志位*/
		rxd_data=UDR;
		if(tx485_busy!=1)
		{ if(rxd_data==0xe9)
		  { rxd_h_ok=1;
            rxd_cnt=0;
			rxd_ins_flag=0;
			rxd_frm_len=0;
			fcs1=0;
		  }
		  else
		  { if(rxd_h_ok==1)
		    { if(rxd_data==0xe8)
			  { rxd_frm[rxd_cnt]=0xe8;
			    rxd_ins_flag=1;
			  }
			  else
			  { if(rxd_ins_flag==1)
			    { rxd_ins_flag=0;
				  rxd_frm[rxd_cnt]=rxd_frm[rxd_cnt]+rxd_data;
				}
				else
				{ rxd_frm[rxd_cnt]=rxd_data;}
				fcs1=fcs1^rxd_frm[rxd_cnt];
				if(rxd_cnt==1)
				{ rxd_frm_len=rxd_frm[rxd_cnt]+3;}
				rxd_cnt=rxd_cnt+1;
				if((rxd_cnt>1)&&(rxd_cnt>=rxd_frm_len))
				{ if(fcs1==0)
				  { 
				  act[rxd_llc_job]=1;
				  }
				}
			  }
			}
		  }
		}
}


/*********************************/
void rxd_llc_job1(void)
    { 
	char i;
	   act[rxd_llc_job]=0;
	   if((pump_tab==rxd_frm[0])||(rxd_frm[0]==BROADCAST_ADDR))  //接收指令地址等于設備或廣播地址
	   { rxd_mesg_addr=rxd_frm[0];
	     rxd_mesg_len=rxd_frm[1];
		 for(i=0;i<rxd_mesg_len;i++)
		 { rxd_mesg[i]=rxd_frm[i+2];}
		 act[rs485_app_job]=1;
	   }
	}
/*********************************/
void txd_llc_job1(void)
    { 
	char i,fcs;
	   act[txd_llc_job]=0;
	   txd_frm[0]=txd_mesg_addr;
	   txd_frm[1]=txd_mesg_len;
	   fcs=txd_frm[0]^txd_frm[1];
	   for(i=0;i<txd_mesg_len;i++)
	   { txd_frm[i+2]=txd_mesg[i];
	     fcs=fcs^txd_frm[i+2];
	   }
	   txd_frm_len=txd_mesg_len+3;
	   txd_frm[txd_frm_len-1]=fcs;
	   txd_cnt=0;
	   txd_ins_flag=0;
	   tx485_busy=1;
	   mac_txd_th=2;
	   PORTC|=(1<<DE_485);
	   UDR=0xe9;
	}
	
/*********************************/
void rs485_app_job1(void)
    { 
	char i,fcs;
	unsigned int temp;
	unsigned long int flow_temp;
	unsigned long int rxd_mesg_temp;
	act[rs485_app_job]=0;
	
	   if((rxd_mesg_addr!=BROADCAST_ADDR)&&(rxd_mesg[0]=='R')&&(rxd_mesg[1]=='I')&&(rxd_mesg[2]=='D'))   /* 讀取設備地址命令e9 01 03 52 49 44 5d */
	   { txd_mesg_addr=pump_tab;
	     txd_mesg_len=3;
		 txd_mesg[0]='R';
		 txd_mesg[1]='I';
		 txd_mesg[2]='D';
		 act[txd_llc_job]=1;
		 goto rs485_app_ret;
	   }
	   
	   if((rxd_mesg[0]=='W')&&(rxd_mesg[1]=='I')&&(rxd_mesg[2]=='D'))   /* 設置設備地址命令e9 1f 04 57 49 44 01 40 */
	   { pump_tab=rxd_mesg[3];
		 do {temp=EEPROMwrite(pump_tab_romaddr,pump_tab);}
	     while(temp>0);
		 if(rxd_mesg_addr!=BROADCAST_ADDR)
		 { txd_mesg_addr=pump_tab;
		   txd_mesg_len=3;
		   txd_mesg[0]='W';
		   txd_mesg[1]='I';
		   txd_mesg[2]='D';
		   act[txd_llc_job]=1;
		 }
		 goto rs485_app_ret;
	   }

	   if((rxd_mesg_addr!=BROADCAST_ADDR)&&(rxd_mesg[0]=='R')&&(rxd_mesg[1]=='J'))   // 讀取運行參數命令e9 01 2 52 47 16 
	   { //if(in_out_number<2)
	     //{ 
		   txd_mesg_addr=pump_tab;
		   txd_mesg_len=6;
		   txd_mesg[0]='R';
		   txd_mesg[1]='J';
		   txd_mesg[2]=(speed>>8);
		   txd_mesg[3]=speed;
		   txd_mesg[4]=0;
		   if (state&(1<<RUN_STOP))
		     {txd_mesg[4]|=0b00000001;}
		   else
		     {txd_mesg[4]&=0b11111110;}
		   txd_mesg[5]=0;
		   if (state&(1<<CW_CCW))
		     {txd_mesg[5]&=0b11111110;}
		   else
		     {txd_mesg[5]|=0b00000001;}		 
		   act[txd_llc_job]=1;
		 //}
		 //else
		 //{ act[rs485_app_job]=1;}
		 goto rs485_app_ret;
	   }
       
	   if((rxd_mesg[0]=='W')&&(rxd_mesg[1]=='J'))   // 設置運行參數命令 
	   { if(in_out_number<2)  //內控控制
	     { //delay_cortrol_job();	   
           all_stop();//停止所有運行 
		   rxd_mesg_temp=rxd_mesg[2];//必須如此,rxd_mesg[4]進行常整運算時有錯
		   speed=rxd_mesg_temp*256+rxd_mesg[3];
		   if ((speed==0)||(speed>600))
		     {speed=1;}
		   cal_timer1(speed);
		   EEPROMWriteWord(speed_romaddr,&speed);
		   if (rxd_mesg[4]&0b00000001)
		     {state|=(1<<RUN_STOP);}
		   else
		     {state&=~(1<<RUN_STOP);} 
		   if (rxd_mesg[5]&0b00000001)
		     {state&=~(1<<CW_CCW);}
		   else
		     {state|=(1<<CW_CCW);}
		   do {temp=EEPROMwrite(state_romaddr,state);}
	           while(temp>0);           
		   state_init();
		   
		   if(rxd_mesg_addr!=BROADCAST_ADDR)
		   { txd_mesg_addr=pump_tab;
		     txd_mesg_len=2;
			 txd_mesg[0]='W';
			 txd_mesg[1]='J';
			 act[txd_llc_job]=1;
		   }
		 }
		 goto rs485_app_ret;
	   }        
rs485_app_ret:;
	}
/*********************************/

/* 主調度任務程序模塊 */
void job_att(char step)
	{
	char i,crrt_jn;
	   if(step==0) 
	   { for(i=1;i<=31;i++)
	     { pri[i]=0;
		   act[i]=0;
		 }
		 rxd_llc_job=9;
		 pri[rxd_llc_job]=95;
		 txd_llc_job=10;
		 pri[txd_llc_job]=94;
		 rs485_app_job=11;
		 pri[rs485_app_job]=93;
		 att_n_max=12;
	   }
	   else
	   { crrt_jn=0;
		 for(i=1;i<=att_n_max;i++)
	     { if((act[i]!=0)&&(pri[i]>pri[crrt_jn]))
		   { crrt_jn=i;}
		 }
		 switch (crrt_jn)
		 { 
		   case 9: rxd_llc_job1();
		   break;
		   case 10: txd_llc_job1();
		   break;
		   case 11: rs485_app_job1();
		   break;
		   case 12: break;
		 }
	   }	
	}

/*
串口初始化   
*/         
void serial_init (void)  
{
  	  UBRRH=RS485_BAUDH;
	  UBRRL=RS485_BAUDL;
	  UCSRA=RS485_UCSRA;
	  UCSRC=RS485_UCSRC;
	  UCSRB=RS485_UCSRB;
	  UCSRB=UCSRB|0b00011000;   /* 允許接收、發送 */
      state1=0;
      DDRC|=(1<<DE_485);
      PORTC&=~(1<<DE_485);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米色一区二区三区四区| 久久国产精品露脸对白| 欧美r级电影在线观看| www.在线欧美| 美女在线视频一区| 亚洲资源在线观看| 国产精品入口麻豆原神| 日韩精品一区二区三区swag| 色噜噜久久综合| 韩国av一区二区三区| 亚洲电影一区二区| 1024国产精品| 国产丝袜在线精品| 欧美成人video| 欧美日韩精品三区| 91麻豆国产精品久久| 国产成人免费视频一区| 裸体健美xxxx欧美裸体表演| 一区二区三区欧美在线观看| 国产亚洲欧洲一区高清在线观看| 337p亚洲精品色噜噜狠狠| 在线视频你懂得一区| av激情成人网| 丁香婷婷综合激情五月色| 麻豆视频一区二区| 亚洲超碰97人人做人人爱| 亚洲精品久久久蜜桃| 国产精品麻豆欧美日韩ww| 国产亚洲一本大道中文在线| 精品成人a区在线观看| 制服丝袜亚洲网站| 在线播放国产精品二区一二区四区 | 日韩精品在线一区| 色婷婷久久久亚洲一区二区三区 | 欧美国产精品劲爆| 国产精品资源在线看| 波多野结衣中文字幕一区 | 亚洲成人你懂的| 日韩视频一区二区三区在线播放| 国产精品一区二区久激情瑜伽| 国产精品成人免费在线| 欧美r级电影在线观看| 91黄色激情网站| 国产精品一区免费视频| 亚洲高清三级视频| 欧美激情一区在线观看| 在线不卡中文字幕| 色婷婷综合中文久久一本| 国产一区高清在线| 日韩高清在线一区| 亚洲精品视频自拍| 国产精品电影一区二区| 精品国产91乱码一区二区三区| 欧美亚洲综合久久| 色婷婷综合久久久| av一区二区三区| 国产suv一区二区三区88区| 日本欧美大码aⅴ在线播放| 亚洲欧美日韩电影| 国产精品污网站| 久久久久久久网| 欧美电视剧免费全集观看| 精品视频999| 在线观看中文字幕不卡| 91婷婷韩国欧美一区二区| 成人小视频免费在线观看| 国产激情一区二区三区四区| 捆绑调教美女网站视频一区| 免费日本视频一区| 人人爽香蕉精品| 免费亚洲电影在线| 另类中文字幕网| 精品无码三级在线观看视频| 久久精品国产秦先生| 蜜桃视频一区二区三区在线观看| 婷婷中文字幕综合| 奇米影视在线99精品| 美腿丝袜亚洲色图| 黄页视频在线91| 国产麻豆精品视频| 成人深夜视频在线观看| 国产aⅴ综合色| av色综合久久天堂av综合| 91香蕉视频mp4| 欧美三级电影在线看| 欧洲色大大久久| 欧美日韩精品综合在线| 欧美电影在哪看比较好| 欧美电视剧在线观看完整版| 久久色.com| 欧美激情中文字幕| 最好看的中文字幕久久| 亚洲综合色在线| 天天影视网天天综合色在线播放| 日本欧美久久久久免费播放网| 精品一区中文字幕| 国产91对白在线观看九色| www.日韩大片| 精品视频1区2区| 久久无码av三级| 亚洲免费视频中文字幕| 午夜成人免费电影| 国产精品一区二区免费不卡 | 久久精品一区二区三区av| 中文天堂在线一区| 亚洲国产美女搞黄色| 蜜臀av性久久久久蜜臀aⅴ四虎| 国内精品写真在线观看| 99精品国产热久久91蜜凸| 欧美系列一区二区| 久久亚洲影视婷婷| 亚洲精选免费视频| 麻豆国产91在线播放| 99热精品一区二区| 717成人午夜免费福利电影| 日本一区二区视频在线观看| 一区二区三区日韩欧美| 国产自产v一区二区三区c| 色婷婷综合五月| 久久尤物电影视频在线观看| 一区二区三区免费看视频| 蜜芽一区二区三区| 色综合色综合色综合色综合色综合 | 丝袜诱惑制服诱惑色一区在线观看| 美国精品在线观看| 在线免费不卡视频| 国产欧美日韩在线观看| 亚洲高清免费观看| yourporn久久国产精品| 久久综合久久鬼色中文字| 亚洲成人黄色影院| 99久久精品国产麻豆演员表| 精品成人在线观看| 午夜精品福利久久久| 不卡大黄网站免费看| 欧美成人国产一区二区| 午夜精品久久久久久久99水蜜桃| av中文字幕不卡| 国产欧美日韩精品一区| 琪琪一区二区三区| 欧美日韩mp4| 亚洲精品伦理在线| 99精品视频一区二区| 欧美精品一区二区久久婷婷| 天天亚洲美女在线视频| 色婷婷av久久久久久久| 国产精品欧美极品| 高清在线不卡av| 精品国产乱码久久久久久图片 | 99视频精品在线| 国产欧美视频一区二区| 韩国三级在线一区| 欧美一区二区播放| 视频一区视频二区中文| 欧美日韩综合在线免费观看| 亚洲精品视频在线观看网站| 91麻豆免费观看| 亚洲男人的天堂在线观看| 成人黄色电影在线| 中文字幕精品一区| 成人小视频免费观看| 国产精品卡一卡二卡三| 成人免费高清在线观看| 日本一区二区视频在线| 成人午夜在线视频| 中文字幕一区二区三区四区 | 中文一区二区在线观看| 国产成人精品www牛牛影视| 久久精品人人做| 风间由美一区二区三区在线观看 | 国产欧美精品在线观看| 国产一区二区三区日韩| 久久久国产一区二区三区四区小说| 激情深爱一区二区| 国产视频一区在线观看| 不卡一区二区在线| 亚洲三级在线看| 欧美日韩精品专区| 免费欧美在线视频| 亚洲精品在线免费播放| 大胆亚洲人体视频| 亚洲免费观看在线观看| 91麻豆免费看片| 爽好多水快深点欧美视频| 日韩欧美国产三级| 国产盗摄一区二区三区| 国产精品免费网站在线观看| 色婷婷av久久久久久久| 亚洲一区二区三区四区五区中文| 欧美福利一区二区| 国产精品2024| 亚洲男人天堂一区| 日韩欧美国产高清| 成人久久18免费网站麻豆 | 狂野欧美性猛交blacked| 久久久亚洲精华液精华液精华液 | 在线观看网站黄不卡| 日本少妇一区二区| 中文在线一区二区| 欧美高清视频www夜色资源网|