| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687 |
- #define __UART_DEF
- #include "ABIS_User.h"
- #include <stdarg.h>
- #include <stdio.h>
- #include <string.h>
-
- unsigned int gloublePrintLevel = VAN_LOG_NOTICE;
- /****************************************************************
- * 函数名: Van_Device_Printf
- * 创建时间: 2021/04/22
- * 创建人: 范义东
- * 函数说明:调试打印接口函数
- * 输入参数: dev 传 NULL 采用本地定义
- devNum 数码
- * 输出参数: *name
- * 返回值 : void
- ****************************************************************/
- void Van_Device_Printf(unsigned int printLevel, const char *cmd, ...)
- {
- char buf[128] = {};
- int buflen = 0;
- if (gloublePrintLevel >= printLevel)
- {
- va_list args; //定义一个va_list类型的变量,用来储存单个参数
- va_start(args, cmd); //使args指向可变参数的第一个参数
- vsprintf(buf, cmd, args); //必须用vprintf等带V的
- va_end(args); //结束可变参数的获取
- buflen = strlen((const char *)buf);
- for(unsigned int i=0; i<buflen; i++){
- g_ucU3TX_Data[i] = buf[i];
- }
- if(buflen==0)return;
- while(DMA2CONbits.CHEN);
- DMA2CNT=(buflen-1);
- DMA2CONbits.CHEN = 1;
- DMA2REQbits.FORCE = 1;
- }
- return;
- }
- /*******************************************************************************
- * 函数名称:InitUart1
- *******************************************************************************/
- void InitUart(void) {
- U1MODEbits.STSEL = 0;
- U1MODEbits.PDSEL = 0;
- U1MODEbits.BRGH = 0;
- U1MODEbits.ABAUD = 0;
- U1MODEbits.LPBACK = 0;
- // U1BRG = 31;
- U1BRG = 389;
- U1STAbits.UTXISEL0 = 1;
- U1STAbits.UTXISEL1 = 0;
- U1STAbits.URXISEL = 0;
- IEC0bits.U1TXIE = 0;
- IEC0bits.U1RXIE = 1;
- U1MODEbits.UARTEN = 1;
- U1STAbits.UTXEN = 1;
- IPC2bits.U1RXIP = 7;
- IPC3bits.U1TXIP = 7;
- }
- /*******************************************************************************
- * 函数名称:InitUart2
- *******************************************************************************/
- void InitUart2(void) {
- U2MODEbits.STSEL = 0;
- U2MODEbits.PDSEL = 0;
- U2MODEbits.BRGH = 0;
- U2MODEbits.ABAUD = 0;
- U2MODEbits.LPBACK = 0;
- // U1BRG = 31;
- U2BRG = 389;
- U2STAbits.UTXISEL0 = 1;
- U2STAbits.UTXISEL1 = 0;
- U2STAbits.URXISEL = 0;
- IEC1bits.U2TXIE = 0;
- IEC1bits.U2RXIE = 1;
- U2MODEbits.UARTEN = 1;
- U2STAbits.UTXEN = 1;
- IPC7bits.U2RXIP = 7;
- IPC7bits.U2TXIP = 7;
- }
- /*******************************************************************************
- * 函数名称:InitUart3
- *******************************************************************************/
- void InitUart3(void) {
- U3MODEbits.STSEL = 0;
- U3MODEbits.PDSEL = 0;
- U3MODEbits.BRGH = 0;
- U3MODEbits.ABAUD = 0;
- U3MODEbits.LPBACK = 0;
- // U1BRG = 31;
- U3BRG = 31;
- U3STAbits.UTXISEL0 = 1;
- U3STAbits.UTXISEL1 = 0;
- U3STAbits.URXISEL = 0;
- IEC5bits.U3TXIE = 0;
- IEC5bits.U3RXIE = 1;
- U3MODEbits.UARTEN = 1;
- U3STAbits.UTXEN = 1;
- IPC20bits.U3RXIP = 7;
- IPC20bits.U3TXIP = 7;
- }
- /*******************************************************************************
- * 函数名称:Uart1Send
- *******************************************************************************/
- void UART1SEND(char data)
- {
- U1TXREG = data;
- while(!IFS0bits.U1TXIF);
- IFS0bits.U1TXIF=0;
- }
- /*******************************************************************************
- * 函数名称:_U1RXInterrupt
- *******************************************************************************/
- void __attribute__((__interrupt__,no_auto_psv)) _U1RXInterrupt(void)
- {
- IFS0bits.U1RXIF = 0;
- g_ucU1RX_Data[g_uiUart1_No] = U1RXREG;
- if(g_BUSY1 == 1) return;
- if(g_ucHeaderFlag1 == 0){
- if(g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD){
- g_ucHeaderFlag1 = 1;
- g_ucU1RX_Data[0] = FRAME_HEAD;
- g_uiUart1_No = 1;
- }else{
- g_BUSY1 = 0;
- }
- }else if(g_ucHeaderFlag1 == 1){
- g_uiUart1_No++;
- }
- if(g_uiUart1_No > (FRAME_LTHH_INDEX+1)){
- g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
- if(g_uiUart1_No == g_uiLth1){
- g_ulRSUM1 = Check(g_ucU1RX_Data,g_uiLth1-1);
- g_ucCRC1 = (unsigned char)g_ulRSUM1; //
- if(g_ucCRC1 == g_ucU1RX_Data[g_uiLth1-1]){
- g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
- g_ucUART1_flag = 1;
- g_ulRSUM1 = 0;
- g_uiUart1_No = 0;
- g_ucHeaderFlag1 = 0;
- g_BUSY1 = 1;
- }else{
- memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));
- g_BUSY1 = 0;
- }
- }else if(g_uiUart1_No > g_uiLth1){
- g_uiUart1_No = 0;
- g_ucHeaderFlag1 = 0;
- g_BUSY1 = 0;
- }
- }
- // if(g_ucUART1_flag == 1)
- // {
- // Uart1_Ack();
- // }
- }
- /*******************************************************************************
- * 函数名称:_U2RXInterrupt
- *******************************************************************************/
- void __attribute__((__interrupt__,no_auto_psv)) _U2RXInterrupt(void)
- {
- IFS1bits.U2RXIF = 0;
- g_ucU1RX_Data[g_uiUart1_No] = U2RXREG;
- if(g_BUSY1 == 1) return;
- if(g_ucHeaderFlag1 == 0){
- if(g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD){
- g_ucHeaderFlag1 = 1;
- g_ucU1RX_Data[0] = FRAME_HEAD;
- g_uiUart1_No = 1;
- }else{
- g_BUSY1 = 0;
- }
- }else if(g_ucHeaderFlag1 == 1){
- g_uiUart1_No++;
- }
- if(g_uiUart1_No > (FRAME_LTHH_INDEX+1)){
- g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
- if(g_uiUart1_No == g_uiLth1){
- g_ulRSUM1 = Check(g_ucU1RX_Data,g_uiLth1-1);
- g_ucCRC1 = (unsigned char)g_ulRSUM1;
- if(g_ucCRC1 == g_ucU1RX_Data[g_uiLth1-1]){
- g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
- g_ucUART1_flag = 1;
- g_ulRSUM1 = 0;
- g_uiUart1_No = 0;
- g_ucHeaderFlag1 = 0;
- g_BUSY1 = 1;
- }else{
- memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));
- g_BUSY1 = 0;
- }
- }else if(g_uiUart1_No > g_uiLth1){
- g_uiUart1_No = 0;
- g_ucHeaderFlag1 = 0;
- g_BUSY1 = 0;
- }
- }
- }
- /*******************************************************************************
- * 函数名称:_U3RXInterrupt
- *******************************************************************************/
- void __attribute__((__interrupt__,no_auto_psv)) _U3RXInterrupt(void)
- {
- IFS5bits.U3RXIF = 0;
- g_ucU1RX_Data[g_uiUart1_No] = U3RXREG;
- if(g_BUSY1 == 1) return;
- if(g_ucHeaderFlag1 == 0){
- if(g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD){
- g_ucHeaderFlag1 = 1;
- g_ucU1RX_Data[0] = FRAME_HEAD;
- g_uiUart1_No = 1;
- }else{
- g_BUSY1 = 0;
- }
- }else if(g_ucHeaderFlag1 == 1){
- g_uiUart1_No++;
- }
- if(g_uiUart1_No > (FRAME_LTHH_INDEX+1)){
- g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
- if(g_uiUart1_No == g_uiLth1){
- g_ulRSUM1 = Check(g_ucU1RX_Data,g_uiLth1-1);
- g_ucCRC1 = (unsigned char)g_ulRSUM1; //
- if(g_ucCRC1 == g_ucU1RX_Data[g_uiLth1-1]){
- g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
- g_ucUART1_flag = 1;
- g_ulRSUM1 = 0;
- g_uiUart1_No = 0;
- g_ucHeaderFlag1 = 0;
- g_BUSY1 = 1;
- }else{
- memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));
- g_BUSY1 = 0;
- }
- }else if(g_uiUart1_No > g_uiLth1){
- g_uiUart1_No = 0;
- g_ucHeaderFlag1 = 0;
- g_BUSY1 = 0;
- }
- }
- }
- /*******************************************************************************
- * 函数名称:Check
- *******************************************************************************/
- unsigned int Check(unsigned char *p,unsigned char num)
- {
- unsigned char i=0;
- unsigned int uiCheckSum=0;
- for(i=0;i<num;i++){
- uiCheckSum += *p;
- p++;
- }
- return uiCheckSum;
- }
- /*******************************************************************************
- * 函数名称:RS1_Ack
- *******************************************************************************/
- void RS1_Ack(unsigned int sendnum)
- {
- unsigned int i;
- for(i=0;i<sendnum;i++){
- UART1SEND(g_ucU1TX_Data[i]);
- }
- memset(g_ucU1TX_Data,0,sendnum*sizeof(unsigned char));
- }
- /*******************************************************************************
- * 函数名称:Uart1_Ack
- *******************************************************************************/
- void Uart1_Ack(void)
- {
- unsigned int g_uiFrmLth;
- unsigned int i=0;
- unsigned int j=0;
- unsigned int n=0;
- unsigned long sum;
- unsigned char Flag_STATUS=0;
- unsigned char Sensor,ucPWMindex,ucCtrlMode;
- unsigned int ADC;
- long lMPPCtemp = 0;
- long lPWMstate=0;
- switch(g_ucCMD1){
- /***********************(0x01)****************************/
- case HELLO:
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- // my_printf("ans %d \n\r",g_ucU1TX_Data[3]);
- // for(unsigned int i =0;i<g_ucU1TX_Data[3];i++){
- // unsigned int temp = g_ucU1TX_Data[i];
- // my_printf("%d ",temp);
- // }
- // my_printf("\n\r");
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /*************************(0x02)***************************/
- case PCR_SYSRST:
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**********************(0x03)*****************************/
- case PCR_SELFTEST:
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = 0x00; //
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
-
- /**************************(0x04)***************************/
- case PCR_DEV:
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /*************************(0x05)**************************/
- case PCR_STATUS:
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
-
- /*************************(0x06)**************************/
- case SET_Temperature:
- if(g_ucU1RX_Data[4] != 0xFF){
- ucCtrlMode = 0;
- ucCtrlMode = g_ucU1RX_Data[12];
- if(ucCtrlMode == 1){
- g_ucENABLE = 0;
- TempChn[0].cPeltierRun = TempChn[1].cPeltierRun = TempChn[2].cPeltierRun = 0;
- TempChn[3].cPeltierRun = 0;
- }else{
- g_ucENABLE = 1;
- Target_temp = g_ucU1RX_Data[4];
- Target_temp = (Target_temp<<8) + g_ucU1RX_Data[5];
- g_dTarget_temp = (double)Target_temp /100.0;
- if(g_dTarget_temp >= 130.0) g_dTarget_temp = 130.0;
- if(g_dTarget_temp < 0) g_dTarget_temp = 0;
- for (i = 0; i < 4; i++) {
- TempChn[i].cBlockTempAriv = 0;
- TempChn[i].cPeltierRun = 1;
- TempChn[i].fBlockTargetTemp = g_dTarget_temp;
- if (fabs(TempChn[i].fCurrentTemperature - g_dTarget_temp) >= 0.3){
- ScheduleOperate(i);
- }
- }
- }
- }else{
- for (i = 0; i < 4; i++) {
- TempChn[i].cPeltierRun = 0;
- }
- }
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /***************************(0x78)**************************/
- case SET_ZLTemperature:
- if(g_ucU1RX_Data[4] != 0xFF){
- ucCtrlMode = 0;
- ucCtrlMode = g_ucU1RX_Data[12];
- if(ucCtrlMode == 1){
- g_ucENABLE = 0;
- TempChn[4].cPeltierRun = TempChn[5].cPeltierRun = 0;
- }else{
- g_ucENABLE = 1;
- Target_temp = g_ucU1RX_Data[4];
- Target_temp = (Target_temp<<8) + g_ucU1RX_Data[5];
- g_dTarget_temp = (double)Target_temp /100.0;
- if(g_dTarget_temp >= 130.0) g_dTarget_temp = 130.0;
- if(g_dTarget_temp < 0) g_dTarget_temp = 0;
- for (i = 4; i < 6; i++) {
- TempChn[i].cBlockTempAriv = 0;
- TempChn[i].cPeltierRun = 1;
- TempChn[i].fBlockTargetTemp = g_dTarget_temp;
- if (fabs(TempChn[i].fCurrentTemperature - g_dTarget_temp) >= 0.3){
- ScheduleOperate(i);
- }
- }
- }
- }else{
- for (i = 4; i < 6; i++) {
- TempChn[i].cPeltierRun = 0;
- }
- }
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /****************************(0x07)*************************/
- case PCR_MOTOR:
- PCR_MOTOR1 = (g_ucU1RX_Data[4]&0xf0);
- PCR_MOTOR2 = g_ucU1RX_Data[4]&0x0f;
- if(PCR_MOTOR1 == 0x10 ){
- switch(PCR_MOTOR2){
- case 6:g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
- MotorXMove(g_lPulse,ucMOTOR_DIR,uiSpeed);
- break;
- case 7:g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
- MotorXMove(g_lPulse,ucMOTOR_DIR,uiSpeed);
- break;
- case 3:
- MotorXHome(g_tEE.uiXPulseHome,g_tEE.uiXSpeedHome,g_tEE.uiXSpeedLeave);
- HangHao=0;
- break;
- case 10:g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse << 8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- uiSpeed = g_ucU1RX_Data[7];
- uiSpeed = (uiSpeed << 8) + g_ucU1RX_Data[8];
- MotorXMoveTo(g_lPulse, uiSpeed);
- break;
- case 5:
- g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse << 8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed << 8) + g_ucU1RX_Data[9];
- Alldata = 1;
- MotorXScan(g_lPulse, ucMOTOR_DIR, uiSpeed);
- MotorXMoveTo(0, uiSpeed);
- MotorXHome(g_tEE.uiXPulseHome,g_tEE.uiXSpeedHome,g_tEE.uiXSpeedLeave);
- // g_uiScanPulseX = 0;
- // Alldata = 0;
- // IEC1bits.INT2IE = 0;
- // //数据处理
- //
- // for(i=0;i<17;i++){
- // ulFAMAD_All = 0;
- // ulVICAD_All = 0;
- // ulROXAD_All = 0;
- // ulCY5AD_All = 0;
- // for(j=0;j<SUM1;j++){
- // ulFAMAD_All += FAMData[i][j];
- // ulVICAD_All += VICData[i][j];
- // ulROXAD_All += ROXData[i][j];
- // ulCY5AD_All += CY5Data[i][j];
- // }
- // g_fFAMAD_Max[i] = (float)(ulFAMAD_All/SUM1);
- // g_fVICAD_Max[i] = (float)(ulVICAD_All/SUM1);
- // g_fROXAD_Max[i] = (float)(ulROXAD_All/SUM1);
- // g_fCY5AD_Max[i] = (float)(ulCY5AD_All/SUM1);
- // }
- // g_fQCFAM_Current = g_fFAMAD_Max[8];
- // g_fQCVIC_Current = g_fVICAD_Max[8];
- // g_fQCROX_Current = g_fROXAD_Max[8];
- // g_fQCCY5_Current = g_fCY5AD_Max[8];
-
- for(i=0;i<17;i++){
- ulFAMAD_All = 0;
- ulVICAD_All = 0;
- ulROXAD_All = 0;
- ulCY5AD_All = 0;
- Bubble_Sort( &FAMData[i][15], 50);
- Bubble_Sort( &VICData[i][15], 50);
- Bubble_Sort( &ROXData[i][15], 50);
- Bubble_Sort( &CY5Data[i][15], 50);
- Bubble_Sort( &CY6Data[i][0], 50);
- Bubble_Sort(&_390Data[i][0], 50);
- for(j=18;j<(SUM1-18);j++){
- ulFAMAD_All += FAMData[i][j];
- ulVICAD_All += VICData[i][j];
- ulROXAD_All += ROXData[i][j];
- ulCY5AD_All += CY5Data[i][j];
- }
- g_fFAMAD_Max[i] = (float)(ulFAMAD_All/3);
- g_fVICAD_Max[i] = (float)(ulVICAD_All/3);
- g_fROXAD_Max[i] = (float)(ulROXAD_All/3);
- g_fCY5AD_Max[i] = (float)(ulCY5AD_All/3);
- }
- g_fQCFAM_Current = g_fFAMAD_Max[8];
- g_fQCVIC_Current = g_fVICAD_Max[8];
- g_fQCROX_Current = g_fROXAD_Max[8];
- g_fQCCY5_Current = g_fCY5AD_Max[8];
- MotorXMoveTo(0, uiSpeed);
- Alldata = 2;
- g_uiScanPulseX = 0;
-
- break;
- case 11:
- Alldata = 0;
- DglLedbuf = 0;
- FAMLED = 1;
- g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
-
- MotorXScan(g_lPulse,ucMOTOR_DIR,uiSpeed);
- Alldata = 2;
- FAMLED = 0;
- break;
-
- case 12:
- DglLedbuf = 0;
- Alldata = 0;
- VICLED = 1;
-
- g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
-
- MotorXScan(g_lPulse,ucMOTOR_DIR,uiSpeed);
- Alldata = 2;
- VICLED = 0;
- break;
- case 13:
- DglLedbuf = 0;
- Alldata = 0;
- ROXLED = 1;
- g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 6;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
-
- MotorXScan(g_lPulse,ucMOTOR_DIR,uiSpeed);
- Alldata = 2;
- ROXLED = 0;
- break;
- case 14:
- DglLedbuf = 0;
- Alldata = 0;
- CY5LED = 1;
- g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
-
- MotorXScan(g_lPulse,ucMOTOR_DIR,uiSpeed);
- Alldata = 2;
- CY5LED = 0;
- break;
- case 15:
- DglLedbuf = 0;
- Alldata = 0;
- CY6LED = 1;
- g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
-
- MotorXScan(g_lPulse,ucMOTOR_DIR,uiSpeed);
- Alldata = 2;
- CY6LED = 0;
- break;
- case 9:
- DglLedbuf = 0;
- Alldata = 0;
- _390LED = 1;
- g_lPulse = g_ucU1RX_Data[5];
- g_lPulse = (g_lPulse<<8) + g_ucU1RX_Data[6];
- g_lPulse = g_lPulse * 2;
- ucMOTOR_DIR = g_ucU1RX_Data[7];
- uiSpeed = g_ucU1RX_Data[8];
- uiSpeed = (uiSpeed<<8) + g_ucU1RX_Data[9];
-
- MotorXScan(g_lPulse,ucMOTOR_DIR,uiSpeed);
- Alldata = 2;
- _390LED = 0;
- break;
- default:
- break;
- }
- }
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0x00;
- g_ucU1TX_Data[3] = g_uiFrmLth;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
-
- /**************************(0x08)*****************************/
- case PCR_LEDCTRL:
- switch(g_ucU1RX_Data[4]){
- case 1:
- CTRLLED1=(g_ucU1RX_Data[5]&0x01)? 1:0;
- CTRLLED2=(g_ucU1RX_Data[5]&0x02)? 1:0;
- CTRLLED3=(g_ucU1RX_Data[5]&0x04)? 1:0;
- CTRLLED4=(g_ucU1RX_Data[5]&0x08)? 1:0;
- CTRLLED5=(g_ucU1RX_Data[5]&0x10)? 1:0;
- CTRLLED6=(g_ucU1RX_Data[5]&0x20)? 1:0;
- break;
- case 2:
- DglLedbuf=g_ucU1RX_Data[5]&0x3f;
- break;
- default:
- break;
- }
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /*********************(0x09)*************************/
- case PCR_RDTEMP:
- g_ucRealTemp_Chanel = g_ucU1RX_Data[4];
- switch(g_ucRealTemp_Chanel){
- case 0:
- // Real_temp[0] = (unsigned int)(TempChn[0].fCurrentTemperature*100.0);
- // g_ucRealTemp_Chanel = 0;
- break;
- case 1:Real_temp[0] = (unsigned int)(TempChn[0].fCurrentTemperature*100.0);
- g_ucRealTemp_Chanel = 0;
- break;
- case 2:Real_temp[1] = (unsigned int)(CAPReal_temp[0]*100.0);
- g_ucRealTemp_Chanel = 1;
- break;
- case 3:Real_temp[2] = (unsigned int)(CAPReal_temp[1]*100.0);
- g_ucRealTemp_Chanel = 2;
- break;
- case 4:Real_temp[3] = (unsigned int)(CAPReal_temp[0] * 100.0);
- g_ucRealTemp_Chanel = 3;
- break;
- case 5:Real_temp[4] = (unsigned int)(g_fFINReal_Temp*100.0);
- g_ucRealTemp_Chanel = 4;
- break;
- case 6:Real_temp[0] = (unsigned int)(TempChn[0].fCurrentTemperature*100.0);
- g_ucRealTemp_Chanel = 0;
- break;
- case 7:Real_temp[0] = (unsigned int)(TempChn[0].fCurrentTemperature*100.0);
- g_ucRealTemp_Chanel = 0;
- break;
- case 8:Real_temp[0] = (unsigned int)(TempChn[0].fCurrentTemperature*100.0);
- g_ucRealTemp_Chanel = 0;
- break;
- default :
- break;
- }
- g_uiFrmLth = 9;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;//桢长
- g_ucU1TX_Data[4] = Real_temp[g_ucRealTemp_Chanel]>>8;
- g_ucU1TX_Data[5] = Real_temp[g_ucRealTemp_Chanel]&0x00ff;
- g_ucU1TX_Data[6] = TempChn[g_ucRealTemp_Chanel].cTubeTempAriv;
- g_ucU1TX_Data[7] = Flag_STATUS;//状态位
- g_ucU1TX_Data[8] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
-
- case PCR_RTPCREMP://0x10
- g_ucRealTemp_Chanel = g_ucU1RX_Data[4];
- g_ucRealTemp_Chanel = 0;
- Real_temp[0] = (unsigned int)(TempChn[0].fCurrentTemperature*100.0);
-
- // if((TempChn[0].cTubeTempAriv == 1)||(TempChn[1].cTubeTempAriv == 1)||(TempChn[2].cTubeTempAriv == 1)){
- // g_cTubeTempAriv = 1;
- // }else{
- // g_cTubeTempAriv = 0;
- // }
- g_uiFrmLth = 9;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;//桢长
- g_ucU1TX_Data[4] = Real_temp[0]>>8;
- g_ucU1TX_Data[5] = Real_temp[0]&0x00ff;
- g_ucU1TX_Data[6] =TempChn[0].cTubeTempAriv;
- g_ucU1TX_Data[7] = Flag_STATUS; //状态位
- g_ucU1TX_Data[8] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**********************(0x0A)************************/
- case PCR_SETCAP://0x0A
-
- CAPPower = g_ucU1RX_Data[4];
- CAPPower = (CAPPower<<8) + g_ucU1RX_Data[5];
-
- if(g_ucU1RX_Data[4] == 0xFF){
- CAPTarget_temp[0] = g_tEE.CAPTarget_temp[0];
- CAPTarget_temp[1] = g_tEE.CAPTarget_temp[1];
- }
- else {
- if(CAPPower < 13000){
- CAPTarget_temp[0] = CAPTarget_temp[1] = CAPPower/100;
- }else{
-
- }
-
- }
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = 0;
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /********************(0x0c)***********************/
- case RD_PCRDATA://0x0C
- g_ucPCRDATA_Chanel=g_ucU1RX_Data[4];
- ucBuffer_Data[0]=((g_ucCMD1|0x80)<<8)+FRAME_HEAD;
- ucBuffer_Data[1]=(ZLENTH1<<8)+0;//帧长+CMDNO,
- g_ucU1RX_Data[3]=0;
-
- // for(i=0;i<20;i++){
- // lMPPCtemp += g_uiMPPCtemp[i];
- // }
- lMPPCtemp = AD_Get(0x0F);
- // if((MPPCALLtemp>60000)||((MPPCALLtemp<100)){
- // }
- HangHao=0;
- //FAM
- for(i=0;i<8;i++){
- g_fAD_Max[i] = g_fFAMAD_Max[i];
- }
- for(i=8;i<16;i++){
- g_fAD_Max[i] = g_fFAMAD_Max[i+1];
- }
- for (i = 0; i < 16; i++) {
- if (g_tEE.uiQCbuffer == 0) {
- g_fAD_Max[i] = g_fAD_Max[i];
- } else if (g_tEE.uiQCbuffer == 1) {
- if (g_fAD_Max[i] > g_tEE.FAM_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.FAM_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCFAM_Current / g_fQCFAM);
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.FAM_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCFAM_Current / g_fQCFAM);
- }
- } else if (g_tEE.uiQCbuffer == 2) {
- if (g_fAD_Max[i] > g_tEE.FAM_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.FAM_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_tEE.FAM_MPPCTk1 * lMPPCtemp * lMPPCtemp + g_tEE.FAM_MPPCTk2 * lMPPCtemp + g_tEE.FAM_MPPCTb1); /*温度补偿*/
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.FAM_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i];
- }
- }else {
- }
- g_fAD_Max[i] = (g_tEE.fSFAMk[i] * g_fAD_Max[i] + g_tEE.sSFAMb[i]);
- if (g_fAD_Max[i] > 60000)g_fAD_Max[i] = 60000;
- if (g_fAD_Max[i] < 20)g_fAD_Max[i] = 20;
- uiAD_Max[i] = (unsigned int) g_fAD_Max[i];
-
- }
- for(GlobalNum1=0;GlobalNum1<16;GlobalNum1++){
- ucBuffer_Data[2+ GlobalNum1] = uiAD_Max[GlobalNum1];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
-
- for(i=0;i<8;i++){
- g_fAD_Max[i] = g_fCY5AD_Max[i];
- }
- for(i=8;i<16;i++){
- g_fAD_Max[i] = g_fCY5AD_Max[i+1];
- }
- for (i = 0; i < 16; i++) {
- if (g_tEE.uiQCbuffer == 0) {
- g_fAD_Max[i] = g_fAD_Max[i];
- }
- else if (g_tEE.uiQCbuffer == 1) {
- if (g_fAD_Max[i] > g_tEE.CY5_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.CY5_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCCY5_Current / g_fQCCY5);
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.CY5_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCCY5_Current / g_fQCCY5);
- }
- }
- else if (g_tEE.uiQCbuffer == 2) {
- if (g_fAD_Max[i] > g_tEE.CY5_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.CY5_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_tEE.CY5_MPPCTk1 * lMPPCtemp * lMPPCtemp + g_tEE.CY5_MPPCTk2 * lMPPCtemp + g_tEE.CY5_MPPCTb1);
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.CY5_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i];
- }
- }
- else {
- }
- g_fAD_Max[i] = (g_tEE.fSCY5k[i] * g_fAD_Max[i] + g_tEE.sSCY5b[i]);
- if (g_fAD_Max[i] > 60000)g_fAD_Max[i] = 60000;
- if (g_fAD_Max[i] < 20)g_fAD_Max[i] = 20;
- uiAD_Max[i] = (unsigned int) g_fAD_Max[i];
-
- }
- for(GlobalNum1=16;GlobalNum1<32;GlobalNum1++){
- ucBuffer_Data[2+GlobalNum1]=uiAD_Max[GlobalNum1-16];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
-
- for(i=0;i<8;i++){
- g_fAD_Max[i] = g_fVICAD_Max[i];
- }
- for(i=8;i<16;i++){
- g_fAD_Max[i] = g_fVICAD_Max[i+1];
- }
- for (i = 0; i < 16; i++) {
- if (g_tEE.uiQCbuffer == 0) {
- g_fAD_Max[i] = g_fAD_Max[i];
- } else if (g_tEE.uiQCbuffer == 1) {
- if (g_fAD_Max[i] > g_tEE.VIC_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.VIC_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCVIC_Current / g_fQCVIC);
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.VIC_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCVIC_Current / g_fQCVIC);
- }
- } else if (g_tEE.uiQCbuffer == 2) {
- if (g_fAD_Max[i] > g_tEE.VIC_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.VIC_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_tEE.VIC_MPPCTk1 * lMPPCtemp * lMPPCtemp + g_tEE.VIC_MPPCTk2 * lMPPCtemp + g_tEE.VIC_MPPCTb1);
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.VIC_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i];
- }
- }else {
- }
- g_fAD_Max[i] = (g_tEE.fSVICk[i] * g_fAD_Max[i] + g_tEE.sSVICb[i]);
- if (g_fAD_Max[i] > 60000)g_fAD_Max[i] = 60000;
- if (g_fAD_Max[i] < 20)g_fAD_Max[i] = 20;
- uiAD_Max[i] = (unsigned int) g_fAD_Max[i];
-
- }
- for(GlobalNum1=32;GlobalNum1<48;GlobalNum1++){
- ucBuffer_Data[2+GlobalNum1]=uiAD_Max[GlobalNum1-32];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
- for(i=0;i<8;i++){
- g_fAD_Max[i] = g_fROXAD_Max[i];
- }
- for(i=8;i<16;i++){//排序
- g_fAD_Max[i] = g_fROXAD_Max[i+1];
- }
- for (i = 0; i < 16; i++) {
- if (g_tEE.uiQCbuffer == 0) {
- g_fAD_Max[i] = g_fAD_Max[i];
- } else if (g_tEE.uiQCbuffer == 1) {
- if (g_fAD_Max[i] > g_tEE.ROX_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.ROX_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCROX_Current / g_fQCROX);
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.ROX_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i] / (g_fQCROX_Current / g_fQCROX);
- }
-
- } else if (g_tEE.uiQCbuffer == 2) {
- if (g_fAD_Max[i] > g_tEE.ROX_MPPCB) {
- g_fAD_Max[i] = g_fAD_Max[i] - g_tEE.ROX_MPPCB;
- g_fAD_Max[i] = g_fAD_Max[i] / (g_tEE.ROX_MPPCTk1 * lMPPCtemp * lMPPCtemp + g_tEE.ROX_MPPCTk2 * lMPPCtemp + g_tEE.ROX_MPPCTb1);
- g_fAD_Max[i] = g_fAD_Max[i] + g_tEE.ROX_MPPCB;
- }else{
- g_fAD_Max[i] = g_fAD_Max[i];
- }
- }else {
- }
- g_fAD_Max[i] = (g_tEE.fSROXk[i] * g_fAD_Max[i] + g_tEE.sSROXb[i]);
- if (g_fAD_Max[i] > 60000)g_fAD_Max[i] = 60000;
- if (g_fAD_Max[i] < 20)g_fAD_Max[i] = 20;
- uiAD_Max[i] = (unsigned int) g_fAD_Max[i];
-
- }
- for(GlobalNum1=48;GlobalNum1<55;GlobalNum1++){
- ucBuffer_Data[2+GlobalNum1]=uiAD_Max[GlobalNum1-48];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
-
- if(g_ucMPPCtemp == 1){
- ucBuffer_Data[57] = (unsigned int)lMPPCtemp;
- g_ucU1RX_Data[3] += ucBuffer_Data[57]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[57]&0xff;
- }else{
- ucBuffer_Data[57]=uiAD_Max[7];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[57]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[57]&0xff;
- }
- for(GlobalNum1=56;GlobalNum1<64;GlobalNum1++){
- ucBuffer_Data[2+GlobalNum1]=uiAD_Max[GlobalNum1-48];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
-
- g_ucU1RX_Data[3] +=ucBuffer_Data[0]>>8;
- g_ucU1RX_Data[3] +=ucBuffer_Data[0]&0xff;
- g_ucU1RX_Data[3] +=ucBuffer_Data[1]>>8;
- g_ucU1RX_Data[3] +=ucBuffer_Data[1]&0xff;
- ucBuffer_Data[GlobalNum1+2]=g_ucU1RX_Data[3]<<8;
-
- memset( uiAD_Max,0,16*sizeof(unsigned int));
-
- while(DMA1CONbits.CHEN);
- DMA1CNT=(ucBuffer_Data[1]>>8)-1;
- DMA1CONbits.CHEN=1;
- DMA1REQbits.FORCE =1;
-
- break;
- /***********************0x0d)******************************/
- case PCR_PMT:
- MPPCPower = g_ucU1RX_Data[4];
- MPPCPower = (MPPCPower<<8) + g_ucU1RX_Data[5];
-
- Write_DAC(DA_FAM);
- Delay_ms(10);
- Write_DAC(DA_FAM);
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS; //状态位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**********************(0x0f)***********************/
- case PCR_STALED:
- g_ucSTATE_RUN = g_ucU1RX_Data[4];
-
- if(g_ucSTATE_RUN == 2){
- CAPTarget_temp[0] = CAPTarget_temp[1] = g_tEE.CAPTemp_PCR;
- //
- // IEC1bits.INT2IE = 1;
- Alldata = 1;
- MotorXScan(g_tEE.uiXPulseScan * 2, 1, g_tEE.uiXSpeedScan);
- MotorXMoveTo(0, uiSpeed);
- MotorXHome(g_tEE.uiXPulseHome,g_tEE.uiXSpeedHome,g_tEE.uiXSpeedLeave);
- Alldata = 2;
-
- ulAD_Max = 0;
- Bubble_Sort( &FAMData[8][15], 50);
- for(j=18;j<(SUM1-18);j++){
- ulAD_Max += FAMData[8][j];
- }
- g_fQCFAM = (float)(ulAD_Max/3);
- if(g_fQCFAM<100)g_fQCFAM = 100;
- if(g_fQCFAM>60000)g_fQCFAM = 60000;
-
- ulAD_Max = 0;
- Bubble_Sort( &VICData[8][15], 50);
- for(j=18;j<(SUM1-18);j++){
- ulAD_Max += VICData[8][j];
- }
- g_fQCVIC = (float)(ulAD_Max/3);
- if(g_fQCVIC<100)g_fQCVIC = 100;
- if(g_fQCVIC>60000)g_fQCVIC = 60000;
-
- ulAD_Max = 0;
- Bubble_Sort( &ROXData[8][15], 50);
- for(j=18;j<(SUM1-18);j++){
- ulAD_Max += ROXData[8][j];
- }
- g_fQCROX = (float)(ulAD_Max/3);
- if(g_fQCROX<100)g_fQCROX = 100;
- if(g_fQCROX>60000)g_fQCROX = 60000;
-
- ulAD_Max = 0;
- Bubble_Sort( &CY5Data[8][15], 50);
- for(j=18;j<(SUM1-18);j++){
- ulAD_Max += CY5Data[8][j];
- }
- g_fQCCY5 = (float)(ulAD_Max/3);
- if(g_fQCCY5<100)g_fQCCY5 = 100;
- if(g_fQCCY5>60000)g_fQCCY5 = 60000;
- ulAD_Max = 0;
- Bubble_Sort( &CY6Data[8][15], 50);
- for(j=18;j<(SUM1-18);j++){
- ulAD_Max += CY6Data[8][j];
- }
- g_fQCCY6 = (float)(ulAD_Max/3);
- if(g_fQCCY6<100)g_fQCCY6 = 100;
- if(g_fQCCY6>60000)g_fQCCY6 = 60000;
-
-
- }
- else if(g_ucSTATE_RUN == 1){
- CAPTarget_temp[0] = g_tEE.CAPTarget_temp[0];
- CAPTarget_temp[1] = g_tEE.CAPTarget_temp[1];
- if(g_usEERadiatorOvertemp >= 60)g_usEERadiatorOvertemp = 60;
- if(g_usEERadiatorOvertemp < 20)g_usEERadiatorOvertemp = 20;
- for (i = 0; i < 2; i++) {
- TempChn[i].fBlockTargetTemp = g_usEERadiatorOvertemp;
- TempChn[i].cPeltierRun = 1;
- ScheduleOperate(i);
- }
- }
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS; //状态位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /***************************(0x11)************************/
- case READ_EEPROM:
- uiEE_address = g_ucU1RX_Data[4];
- uiEE_address = (uiEE_address << 8) + g_ucU1RX_Data[5];
- uiEE_address = (uiEE_address << 8) + g_ucU1RX_Data[6];
- GlobalTmp = g_ucU1RX_Data[7];
-
- for(i=0;i<GlobalTmp;i++){
- g_ucU1TX_Data[FRAME_LTHL_INDEX+i] = EE_read(uiEE_address+i);
- }
- g_uiFrmLth = GlobalTmp+6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;//地址
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[g_uiFrmLth-FRAME_STATE_INDEX-1] = Flag_STATUS;
- g_ucU1TX_Data[g_uiFrmLth-FRAME_CRC_INDEX-1] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /***************************(0x12)*************************/
- case WRITE_EEPROM:
- uiEE_address = g_ucU1RX_Data[4];
- uiEE_address = (uiEE_address << 8) + g_ucU1RX_Data[5];
- uiEE_address = (uiEE_address << 8) + g_ucU1RX_Data[6];
- if((uiEE_address >= 0x20)&&(uiEE_address < 0x40)){
-
- }else{
- GlobalTmp = g_ucU1RX_Data[3]-8;
- for(i=0;i<GlobalTmp;i++){
- EE_write(uiEE_address+i,g_ucU1RX_Data[7+i]);
- Delay_ms(10);
- }
- Read_Sys_EE(uiEE_address);
- }
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS; //状态标志位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**************************(0x15)**********************/
- case PCR_RDSENSOR:
-
- g_uiFrmLth = 7;
-
- if(HOMEX==1)Sensor = 1;
- else Sensor = 0;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Sensor;
- g_ucU1TX_Data[5] = Flag_STATUS;
- g_ucU1TX_Data[6] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- /**************************(0x18)**********************/
- case GET_MPPCAD:
-
-
- memset( uiMppcADBuff,0,6*sizeof(unsigned int));
-
- uiMppcADBuff[0] = AD_Get(0x09);
- uiMppcADBuff[1] = AD_Get(0x0B);
- uiMppcADBuff[2] = AD_Get(0x0A);
- uiMppcADBuff[3] = AD_Get(0x0C);
- uiMppcADBuff[6] = AD_Get(0x0F);
-
- g_uiFrmLth = 20;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = uiMppcADBuff[0] >> 8;
- g_ucU1TX_Data[5] = (unsigned char) uiMppcADBuff[0];
- g_ucU1TX_Data[6] = uiMppcADBuff[1] >> 8;
- g_ucU1TX_Data[7] = (unsigned char) uiMppcADBuff[1];
- g_ucU1TX_Data[8] = uiMppcADBuff[2] >> 8;
- g_ucU1TX_Data[9] = (unsigned char) uiMppcADBuff[2];
- g_ucU1TX_Data[10] = uiMppcADBuff[3] >> 8;
- g_ucU1TX_Data[11] = (unsigned char) uiMppcADBuff[3];
- g_ucU1TX_Data[12] = uiMppcADBuff[4] >> 8;
- g_ucU1TX_Data[13] = (unsigned char) uiMppcADBuff[4];
- g_ucU1TX_Data[14] = uiMppcADBuff[5] >> 8;
- g_ucU1TX_Data[15] = (unsigned char) uiMppcADBuff[5];
- g_ucU1TX_Data[16] = uiMppcADBuff[6] >> 8;
- g_ucU1TX_Data[17] = (unsigned char) uiMppcADBuff[6];
- g_ucU1TX_Data[18] = Flag_STATUS; //状态位
- g_ucU1TX_Data[19] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /*************************** (0x18)***********************/
- case PCR_RDADC:
- g_uiFrmLth = 24;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = dTemperatureAD[0] >> 8;
- g_ucU1TX_Data[5] = (unsigned char) dTemperatureAD[0];
- g_ucU1TX_Data[6] = dTemperatureAD[1] >> 8;
- g_ucU1TX_Data[7] = (unsigned char) dTemperatureAD[1];
- g_ucU1TX_Data[8] = dTemperatureAD[2] >> 8;
- g_ucU1TX_Data[9] = (unsigned char) dTemperatureAD[2];
- g_ucU1TX_Data[10] = dTemperatureAD[3] >> 8;
- g_ucU1TX_Data[11] = (unsigned char) dTemperatureAD[3];
- g_ucU1TX_Data[12] = dTemperatureAD[4] >> 8;
- g_ucU1TX_Data[13] = (unsigned char) dTemperatureAD[4];
- g_ucU1TX_Data[14] = dTemperatureAD[5] >> 8;
- g_ucU1TX_Data[15] = (unsigned char) dTemperatureAD[5];
- g_ucU1TX_Data[16] = dTemperatureAD[6] >> 8;
- g_ucU1TX_Data[17] = (unsigned char) dTemperatureAD[6];
- g_ucU1TX_Data[18] = dTemperatureAD[7] >> 8;
- g_ucU1TX_Data[19] = (unsigned char) dTemperatureAD[7];
- g_ucU1TX_Data[20] = dTemperatureAD[8] >> 8;
- g_ucU1TX_Data[21] = (unsigned char) dTemperatureAD[8];
- g_ucU1TX_Data[22] = Flag_STATUS;
- g_ucU1TX_Data[23] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /***************************(0x18)***********************/
- // case ADGET:
- //
- // ADC = AD_Get(g_ucU1RX_Data[4]);
- //
- // g_uiFrmLth = 8;
- // g_ucU1TX_Data[0] = FRAME_HEAD;
- // g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- // g_ucU1TX_Data[2] = 0;
- // g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- // g_ucU1TX_Data[4] = AD_Get(g_ucU1RX_Data[4]) >> 8;
- // g_ucU1TX_Data[5] = (unsigned char) AD_Get(g_ucU1RX_Data[4]);
- // g_ucU1TX_Data[6] = Flag_STATUS; //状态位
- // g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- // while(DMA3CONbits.CHEN);
- // DMA3CNT=(g_uiFrmLth-1);
- // DMA3CONbits.CHEN = 1;
- // DMA3REQbits.FORCE = 1;
- // break;
-
-
- /***************************(0x1C)***********************/
- case PCR_FAN:
- FanCount = g_ucU1RX_Data[4];
- MPPCPower = g_ucU1RX_Data[5];
- MPPCPower = (MPPCPower<<8) + g_ucU1RX_Data[6];
- FANOC_Set(FanCount,MPPCPower);
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS; //状态位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**************************(0x44)***********************/
- case QC_Data:
- g_uiFrmLth = 14;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = (unsigned int)g_fQCFAM_Current >> 8;
- g_ucU1TX_Data[5] = (unsigned char) g_fQCFAM_Current;
- g_ucU1TX_Data[6] = (unsigned int)g_fQCVIC_Current >> 8;
- g_ucU1TX_Data[7] = (unsigned char) g_fQCVIC_Current;
- g_ucU1TX_Data[8] = (unsigned int)g_fQCROX_Current >> 8;
- g_ucU1TX_Data[9] = (unsigned char) g_fQCROX_Current;
- g_ucU1TX_Data[10] = (unsigned int)g_fQCCY5_Current >> 8;
- g_ucU1TX_Data[11] = (unsigned char) g_fQCCY5_Current;
- g_ucU1TX_Data[12] = Flag_STATUS; //状态位
- g_ucU1TX_Data[13] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
-
-
- /***************************(0x1E)*************************/
- case PCR_IO:
- g_uiFrmLth = 6;
- if(g_ucU1RX_Data[4] == 255){
- g_ucENABLE = 0;
- }else if(g_ucU1RX_Data[4] == 254){
- g_ucENABLE = 1;
- }else{
- SetIO(g_ucU1RX_Data[4],g_ucU1RX_Data[5]);
- }
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS; //状态位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
-
- if(g_ucU1RX_Data[4] == 253){
- _RP97R = 0x01;
- _U1RXR = 0x6D;
- }
- else if(g_ucU1RX_Data[4] == 252){
- _RP97R = 0x01;
- _U1RXR = 0x60;
- }
- else{}
-
-
- break;
- /*****************************(0xE0)***************************/
- case GET_IO:
- Get_IOstate = Get_IO(g_ucU1RX_Data[4]);
- g_uiFrmLth = 7;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth; //
- g_ucU1TX_Data[4] = Get_IOstate; //获取的IO状态
- g_ucU1TX_Data[5] = Flag_STATUS; //状态位
- g_ucU1TX_Data[6] = (unsigned char) Check(g_ucU1TX_Data, g_uiFrmLth - 1);
- while (DMA3CONbits.CHEN);
- DMA3CNT = (g_uiFrmLth - 1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /************************** (0x31)*************************/
- case SET_PWM:
- ucPWMindex = g_ucU1RX_Data[4];
- lPWMstate = g_ucU1RX_Data[5];
- lPWMstate = (lPWMstate << 8) + g_ucU1RX_Data[6];
- ucCtrlMode = g_ucU1RX_Data[7];
- if (ucCtrlMode == 0) {
- SetPWM(ucPWMindex, lPWMstate);
- } else if (ucCtrlMode == 1) {
- SetPWM(ucPWMindex, -lPWMstate);
- } else {}
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth;
- g_ucU1TX_Data[4] = 0x00; //状态位
- g_ucU1TX_Data[5] = (unsigned char) Check(g_ucU1TX_Data, g_uiFrmLth - 1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**************************(0x32)***********************/
- case GET_PWM:
- g_uiFrmLth = 18;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = g_uiGetPWM[0] >> 8;
- g_ucU1TX_Data[5] = (unsigned char) g_uiGetPWM[0];
- g_ucU1TX_Data[6] = g_uiGetPWM[1] >> 8;
- g_ucU1TX_Data[7] = (unsigned char) g_uiGetPWM[1];
- g_ucU1TX_Data[8] = g_uiGetPWM[2] >> 8;
- g_ucU1TX_Data[9] = (unsigned char) g_uiGetPWM[2];
- g_ucU1TX_Data[10] = g_uiGetPWM[3] >> 8;
- g_ucU1TX_Data[11] = (unsigned char) g_uiGetPWM[3];
- g_ucU1TX_Data[12] = g_uiGetPWM[4] >> 8;
- g_ucU1TX_Data[13] = (unsigned char) g_uiGetPWM[4];
- g_ucU1TX_Data[14] = g_uiGetPWM[5] >> 8;
- g_ucU1TX_Data[15] = (unsigned char) g_uiGetPWM[5];
- g_ucU1TX_Data[16] = Flag_STATUS; //状态位
- g_ucU1TX_Data[17] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /********************(0x25)**********************/
- case PCR_TUBEMODE:
-
-
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = Flag_STATUS; //状态位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**********************(0x26)***************************/
- case PCR_INBOX:
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = 0; //状态位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /**********************(0x27)***************************/
- case PCR_OUTBOX:
-
- g_uiFrmLth = 6;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = 0; //状态位
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
-
- case PCR_TEMP://0x43
-
- if((TempChn[0].cTubeTempAriv == 1)||(TempChn[1].cTubeTempAriv == 1)||(TempChn[2].cTubeTempAriv == 1)||(TempChn[3].cTubeTempAriv == 1)
- ){
- g_cTubeTempAriv = 1;
- }else{
- g_cTubeTempAriv = 0;
- }
- g_uiFrmLth = 23;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = (unsigned int)(TempChn[0].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[5] = (unsigned char) (TempChn[0].fCurrentTemperature*100.0);
- g_ucU1TX_Data[6] = (unsigned int)(TempChn[1].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[7] = (unsigned char) (TempChn[1].fCurrentTemperature*100.0);
- g_ucU1TX_Data[8] = (unsigned int)(TempChn[2].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[9] = (unsigned char) (TempChn[2].fCurrentTemperature*100.0);
- g_ucU1TX_Data[10] = (unsigned int)(TempChn[3].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[11] = (unsigned char) (TempChn[3].fCurrentTemperature*100.0);
- g_ucU1TX_Data[12] = (unsigned int)(TempChn[4].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[13] = (unsigned char) (TempChn[4].fCurrentTemperature*100.0);
- g_ucU1TX_Data[14] = (unsigned int)(TempChn[5].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[15] = (unsigned char) (TempChn[5].fCurrentTemperature*100.0);
- g_ucU1TX_Data[16] = (unsigned int)(TempChn[5].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[17] = (unsigned char) (TempChn[5].fCurrentTemperature*100.0);
- g_ucU1TX_Data[18] = (unsigned int)(TempChn[5].fCurrentTemperature*100.0) >> 8;
- g_ucU1TX_Data[19] = (unsigned char) (TempChn[5].fCurrentTemperature*100.0);
- g_ucU1TX_Data[20] = g_cTubeTempAriv;
- g_ucU1TX_Data[21] = Flag_STATUS; //状态位
- g_ucU1TX_Data[22] = (unsigned char) Check(g_ucU1TX_Data, g_uiFrmLth - 1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /***************(0x28)*********************/
- case PCR_STATEBIT://0x28
- g_uiFrmLth = 8;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = 0x00;
- g_ucU1TX_Data[5] = 0x00;
- g_ucU1TX_Data[6] = Flag_STATUS; //状态位
- g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
- /*********************(0xFF)***********************/
- case RD_PCRALLDATA:
- ucBuffer_Data[0]=((g_ucCMD1|0x80)<<8)+FRAME_HEAD;
- ucBuffer_Data[1]=(ZLENTH2<<8)+0;
- g_ucU1RX_Data[3]=0;
- BTvar.ucScanNum = 0;
- if(g_ucU1RX_Data[4] == 1){
- SampleTransNo = 0;
- for(i = 0;i<6748;i++){
- ucBuffer_Data[i+2] = ((ucBuffer_Data[i+2]<< 8) + (ucBuffer_Data[i+2]>> 8));
- }
- ucBuffer_Data[2] = 0;
- for(GlobalNum1=0;GlobalNum1<(ZLENTH2/2-3);GlobalNum1++){
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
- }
- else {
- SampleTransNo ++;
- for(GlobalNum1=0;GlobalNum1<(ZLENTH2/2-3);GlobalNum1++){
- ucBuffer_Data[2+GlobalNum1]=ucBuffer_Data[SampleTransNo * (ZLENTH2/2-3)+GlobalNum1];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
- }
- g_ucU1RX_Data[3] +=ucBuffer_Data[0]>>8;
- g_ucU1RX_Data[3] +=ucBuffer_Data[0]&0xff;
- g_ucU1RX_Data[3] +=ucBuffer_Data[1]>>8;
- g_ucU1RX_Data[3] +=ucBuffer_Data[1]&0xff;
- ucBuffer_Data[GlobalNum1+2]=(g_ucU1RX_Data[3]<<8);//低位先发送,错误
- while(DMA1CONbits.CHEN);
- DMA1CNT=(ucBuffer_Data[1]>>8)-1;
- DMA1CONbits.CHEN = 1;
- DMA1REQbits.FORCE = 1;
-
- break;
- /********************(0xFE)***********************/
- case RD_ALLDATAMAX:
-
- ucBuffer_Data[0]=((g_ucCMD1|0x80)<<8)+FRAME_HEAD;
- ucBuffer_Data[1]=(ZLENTH2<<8)+0;
- g_ucU1RX_Data[3]=0;
-
- if(g_ucU1RX_Data[4] == 1){
- SampleTransNo = 0;
- n = 0;
- if(g_ucU1RX_Data[5] == 1){
- for(i = 0;i<17;i++){
- for(j = 0;j<SUM1;j++){
- Alldata_Max[n] = ((FAMData[i][j]<< 8) + (FAMData[i][j]>> 8));
- n++;
- }
- }
- }
- else if(g_ucU1RX_Data[5] == 2){
- for(i = 0;i<17;i++){
- for(j = 0;j<SUM1;j++){
- Alldata_Max[n] = ((VICData[i][j]<< 8) + (VICData[i][j]>> 8));
- n++;
- }
- }
- }
- else if(g_ucU1RX_Data[5] == 3){
- for(i = 0;i<17;i++){
- for(j = 0;j<SUM1;j++){
- Alldata_Max[n] = ((ROXData[i][j]<< 8) + (ROXData[i][j]>> 8));
- n++;
- }
- }
- }
- else if(g_ucU1RX_Data[5] == 4){
- for(i = 0;i<17;i++){
- for(j = 0;j<SUM1;j++){
- Alldata_Max[n] = ((CY5Data[i][j]<< 8) + (CY5Data[i][j]>> 8));
- n++;
- }
- }
- }
- }
- else SampleTransNo ++;
- for(GlobalNum1=0;GlobalNum1<ZLENTH2/2-3;GlobalNum1++){
- ucBuffer_Data[2+GlobalNum1]=Alldata_Max[SampleTransNo * (ZLENTH2/2-3)+GlobalNum1];//帧
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]>>8;
- g_ucU1RX_Data[3] += ucBuffer_Data[2+GlobalNum1]&0xff;
- }
- g_ucU1RX_Data[3] +=ucBuffer_Data[0]>>8;
- g_ucU1RX_Data[3] +=ucBuffer_Data[0]&0xff;
- g_ucU1RX_Data[3] +=ucBuffer_Data[1]>>8;
- g_ucU1RX_Data[3] +=ucBuffer_Data[1]&0xff;
- ucBuffer_Data[GlobalNum1+2]=(g_ucU1RX_Data[3]<<8);
-
- while(DMA1CONbits.CHEN);
- DMA1CNT=(ucBuffer_Data[1]>>8)-1;
- DMA1CONbits.CHEN = 1;
- DMA1REQbits.FORCE = 1;
-
- break;
- /****************(0x66)*********************/
- case BT_Protocol://
- BTvar.ucStepNum = g_ucU1RX_Data[5];
-
- for (i = 0; i < BTvar.ucStepNum; i++) {
- BTStep[i].Temp_Start = (g_ucU1RX_Data[i * 10 + 6] << 8) + g_ucU1RX_Data[i * 10 + 7];
- BTStep[i].Temp_End = (g_ucU1RX_Data[i * 10 + 8] << 8) + g_ucU1RX_Data[i * 10 + 9];
- BTStep[i].Duration = (g_ucU1RX_Data[i * 10 + 10] << 8) + g_ucU1RX_Data[i * 10 + 11];
- BTStep[i].Cycle = g_ucU1RX_Data[i * 10 + 12];
- if(BTStep[i].Cycle == 0)
-
- BTStep[i].Mode = g_ucU1RX_Data[i * 10 + 13];
- BTStep[i].Point = g_ucU1RX_Data[i * 10 + 14];
- BTStep[i].Goto = g_ucU1RX_Data[i * 10 + 15];
- }
- BTvar.ucStartbuffer = 1;
- BTvar.ucQCbuffer = 1;
-
- g_uiFrmLth = 8;
- g_ucU1TX_Data[0] = FRAME_HEAD;
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
- g_ucU1TX_Data[2] = 0;
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
- g_ucU1TX_Data[4] = 0x00;
- g_ucU1TX_Data[5] = 0x00;
- g_ucU1TX_Data[6] = Flag_STATUS; //状态位
- g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
-
- while(DMA3CONbits.CHEN);
- DMA3CNT=(g_uiFrmLth-1);
- DMA3CONbits.CHEN = 1;
- DMA3REQbits.FORCE = 1;
- break;
-
- default:
- break;
-
- }
- g_ucUART1_flag = 0;
- g_uiUart1_No = 0;
- g_ucHeaderFlag1 = 0;
- memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));
- g_BUSY1 = 0;
- }
|