350 lines
15 KiB
C++
350 lines
15 KiB
C++
|
/********************************************************/
|
|||
|
// CPU<50><55>Ҫ<EFBFBD><D2AA>STM32F103--RAM<41>ڴ治С<E6B2BB><D0A1>64K Flash<73>ڴ治С<E6B2BB><D0A1>128K
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>STM32F103RDT6<54><36>VET6<54><36><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|||
|
// <20>༭<EFBFBD><E0BCAD><EFBFBD>ڣ<EFBFBD>20150909
|
|||
|
// editor by СС<D0A1><D0A1>
|
|||
|
// <20><><EFBFBD>꣺shop182385147.taobao.com
|
|||
|
/********************************************************/
|
|||
|
|
|||
|
#include "PLC_IO.h"
|
|||
|
#include "stm32f10x.h"
|
|||
|
#include <stdio.h>
|
|||
|
#include "absacc.h"
|
|||
|
#include "PLC_Dialogue.h"
|
|||
|
extern u8 power_down; //<2F>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
extern bit_byte PLC_16BIT[12100];
|
|||
|
u8 X_DIY=10; //ָ<><D6B8><EFBFBD><EFBFBD><DEB8>˲<EFBFBD>ʱ<EFBFBD><CAB1>X000-X007
|
|||
|
#define D8020 PLC_16BIT[0x0714].bytes //<2F>˲<EFBFBD>ʱ<EFBFBD><CAB1>X010<31>Ժ<EFBFBD><D4BA><EFBFBD>
|
|||
|
//======================================================================================================
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void PLC_X_config(void)
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PLC_<43><5F><EFBFBD><EFBFBD>״̬IO<49><4F>ʼ<EFBFBD><CABC>
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: СС<D0A1><D0A1>
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>: 2014<31><34>6<EFBFBD><36>13<31><33>
|
|||
|
// <20><> ע:
|
|||
|
//------------------------------------------------------------------------------------------------------
|
|||
|
// <20><EFBFBD><DEB8><EFBFBD>:
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>:
|
|||
|
// <20><> ע:
|
|||
|
//=======================================================================================================
|
|||
|
void PLC_EXTI15_10_config(void)
|
|||
|
{
|
|||
|
EXTI_InitTypeDef EXTI_InitStructure;
|
|||
|
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource12|GPIO_PinSource11);
|
|||
|
EXTI_InitStructure.EXTI_Line=EXTI_Line12;
|
|||
|
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
|
|||
|
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
|
|||
|
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
|
|||
|
EXTI_Init(&EXTI_InitStructure);
|
|||
|
|
|||
|
EXTI_InitStructure.EXTI_Line=EXTI_Line11;
|
|||
|
EXTI_Init(&EXTI_InitStructure);
|
|||
|
}
|
|||
|
|
|||
|
//======================================================================================================
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void PLC_X_config(void)
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PLC_<43><5F><EFBFBD><EFBFBD>״̬IO<49><4F>ʼ<EFBFBD><CABC>
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: СС<D0A1><D0A1>
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>: 2014<31><34>6<EFBFBD><36>13<31><33>
|
|||
|
// <20><> ע:
|
|||
|
//------------------------------------------------------------------------------------------------------
|
|||
|
// <20><EFBFBD><DEB8><EFBFBD>:
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>:
|
|||
|
// <20><> ע:
|
|||
|
//=======================================================================================================
|
|||
|
void PLC_EXTI9_5_config(void)
|
|||
|
{
|
|||
|
EXTI_InitTypeDef EXTI_InitStructure;
|
|||
|
|
|||
|
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource9);
|
|||
|
EXTI_InitStructure.EXTI_Line=EXTI_Line9;
|
|||
|
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
|
|||
|
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
|
|||
|
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
|
|||
|
EXTI_Init(&EXTI_InitStructure);
|
|||
|
|
|||
|
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource8);
|
|||
|
EXTI_InitStructure.EXTI_Line=EXTI_Line8;
|
|||
|
EXTI_Init(&EXTI_InitStructure);
|
|||
|
|
|||
|
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource7);
|
|||
|
EXTI_InitStructure.EXTI_Line=EXTI_Line7;
|
|||
|
EXTI_Init(&EXTI_InitStructure);
|
|||
|
|
|||
|
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource6);
|
|||
|
EXTI_InitStructure.EXTI_Line=EXTI_Line6;
|
|||
|
EXTI_Init(&EXTI_InitStructure);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//======================================================================================================
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void PLC_X_config(void)
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PLC_<43><5F><EFBFBD><EFBFBD>״̬IO<49><4F>ʼ<EFBFBD><CABC>
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: СС<D0A1><D0A1>
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>: 2014<31><34>6<EFBFBD><36>13<31><33>
|
|||
|
// <20><> ע:
|
|||
|
//------------------------------------------------------------------------------------------------------
|
|||
|
// <20><EFBFBD><DEB8><EFBFBD>:
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>:
|
|||
|
// <20><> ע:
|
|||
|
//=======================================================================================================
|
|||
|
void PLC_Mode_config(void)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
|
|||
|
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);<3B>·<EFBFBD>ע<EFBFBD><D7A2>
|
|||
|
//define EEPROM
|
|||
|
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11; //EEPROM
|
|||
|
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
|
|||
|
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
|||
|
// GPIO_Init(GPIOB,&GPIO_InitStructure);
|
|||
|
|
|||
|
|
|||
|
//define OTHER IO
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //SHUTDOWN
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
|||
|
GPIO_Init(GPIOA,&GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //RUN/STOP_SWITCH
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
|||
|
GPIO_Init(GPIOC,&GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9; //RUN_LED ERR_LED
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
|||
|
GPIO_Init(GPIOB,&GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7 |GPIO_Pin_8; //<2F>ı<EFBFBD><C4B1><EFBFBD>ʾ
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
|||
|
GPIO_Init(GPIOC, &GPIO_InitStructure);
|
|||
|
|
|||
|
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ; //PLC_485ͨѶ
|
|||
|
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
|||
|
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
|||
|
// GPIO_Init(GPIOD, &GPIO_InitStructure);
|
|||
|
}
|
|||
|
|
|||
|
//======================================================================================================
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void PLC_X_config(void)
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PLC_X_<58><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: СС<D0A1><D0A1>
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>: 2014<31><34>6<EFBFBD><36>13<31><33>
|
|||
|
// <20><> ע:
|
|||
|
//------------------------------------------------------------------------------------------------------
|
|||
|
// <20><EFBFBD><DEB8><EFBFBD>:
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>:
|
|||
|
// <20><> ע:
|
|||
|
//=======================================================================================================
|
|||
|
void PLC_X_config(void)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);<3B>·<EFBFBD>ע<EFBFBD><D7A2>
|
|||
|
//define X00-X14
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_6 | GPIO_Pin_7;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
|||
|
GPIO_Init(GPIOA,&GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
|||
|
GPIO_Init(GPIOB,&GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
|||
|
GPIO_Init(GPIOC,&GPIO_InitStructure);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//======================================================================================================
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: PLC_Y_config(void)
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PLC_Y_<59><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// <20>䡡<EFBFBD><E4A1A1>: void
|
|||
|
// ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: СС<D0A1><D0A1>
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>: 2014<31><34>6<EFBFBD><36>13<31><33>
|
|||
|
// <20><> ע:
|
|||
|
//------------------------------------------------------------------------------------------------------
|
|||
|
// <20><EFBFBD><DEB8><EFBFBD>:
|
|||
|
// <20>ա<EFBFBD><D5A1><EFBFBD>:
|
|||
|
// <20><> ע:
|
|||
|
//=======================================================================================================
|
|||
|
void PLC_Y_config(void)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); <20>·<EFBFBD>ע<EFBFBD><D7A2>
|
|||
|
//define Y00-Y15
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_15;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
|||
|
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
|||
|
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 ;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
|||
|
GPIO_Init(GPIOC, &GPIO_InitStructure);
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
|||
|
GPIO_Init(GPIOD, &GPIO_InitStructure);
|
|||
|
}
|
|||
|
|
|||
|
void X_filter(void) //ÿ<><C3BF>1ms <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD>ݶ<EFBFBD>Ϊ20MS
|
|||
|
{
|
|||
|
static signed char x_buffer[33]; //<2F>ݶ<EFBFBD>ˢ<EFBFBD><CBA2>16<31><36>X
|
|||
|
(X00) ? (x_buffer[0]=0,PLC_16BIT[64].bits.bit0=0) : (x_buffer[0]<X_DIY) ? (x_buffer[0]++) : (PLC_16BIT[64].bits.bit0=1);
|
|||
|
(X01) ? (x_buffer[1]=0,PLC_16BIT[64].bits.bit1=0) : (x_buffer[1]<X_DIY) ? (x_buffer[1]++) : (PLC_16BIT[64].bits.bit1=1);
|
|||
|
(X02) ? (x_buffer[2]=0,PLC_16BIT[64].bits.bit2=0) : (x_buffer[2]<X_DIY) ? (x_buffer[2]++) : (PLC_16BIT[64].bits.bit2=1);
|
|||
|
(X03) ? (x_buffer[3]=0,PLC_16BIT[64].bits.bit3=0) : (x_buffer[3]<X_DIY) ? (x_buffer[3]++) : (PLC_16BIT[64].bits.bit3=1);
|
|||
|
(X04) ? (x_buffer[4]=0,PLC_16BIT[64].bits.bit4=0) : (x_buffer[4]<X_DIY) ? (x_buffer[4]++) : (PLC_16BIT[64].bits.bit4=1);
|
|||
|
(X05) ? (x_buffer[5]=0,PLC_16BIT[64].bits.bit5=0) : (x_buffer[5]<X_DIY) ? (x_buffer[5]++) : (PLC_16BIT[64].bits.bit5=1);
|
|||
|
(X06) ? (x_buffer[6]=0,PLC_16BIT[64].bits.bit6=0) : (x_buffer[6]<X_DIY) ? (x_buffer[6]++) : (PLC_16BIT[64].bits.bit6=1);
|
|||
|
(X07) ? (x_buffer[7]=0,PLC_16BIT[64].bits.bit7=0) : (x_buffer[7]<X_DIY) ? (x_buffer[7]++) : (PLC_16BIT[64].bits.bit7=1);
|
|||
|
(X10) ? (x_buffer[8]=0,PLC_16BIT[64].bits.bit10=0) : (x_buffer[8]<D8020) ? (x_buffer[8]++) : (PLC_16BIT[64].bits.bit10=1);
|
|||
|
(X11) ? (x_buffer[9]=0,PLC_16BIT[64].bits.bit11=0) : (x_buffer[9]<D8020) ? (x_buffer[9]++) : (PLC_16BIT[64].bits.bit11=1);
|
|||
|
(X12) ? (x_buffer[10]=0,PLC_16BIT[64].bits.bit12=0) : (x_buffer[10]<D8020) ? (x_buffer[10]++) : (PLC_16BIT[64].bits.bit12=1);
|
|||
|
(X13) ? (x_buffer[11]=0,PLC_16BIT[64].bits.bit13=0) : (x_buffer[11]<D8020) ? (x_buffer[11]++) : (PLC_16BIT[64].bits.bit13=1);
|
|||
|
(X14) ? (x_buffer[12]=0,PLC_16BIT[64].bits.bit14=0) : (x_buffer[12]<D8020) ? (x_buffer[12]++) : (PLC_16BIT[64].bits.bit14=1);
|
|||
|
(X15) ? (x_buffer[13]=0,PLC_16BIT[64].bits.bit15=0) : (x_buffer[13]<D8020) ? (x_buffer[13]++) : (PLC_16BIT[64].bits.bit15=1);
|
|||
|
(X16) ? (x_buffer[14]=0,PLC_16BIT[64].bits.bit16=0) : (x_buffer[14]<D8020) ? (x_buffer[14]++) : (PLC_16BIT[64].bits.bit16=1);
|
|||
|
(X17) ? (x_buffer[15]=0,PLC_16BIT[64].bits.bit17=0) : (x_buffer[15]<D8020) ? (x_buffer[15]++) : (PLC_16BIT[64].bits.bit17=1);
|
|||
|
//
|
|||
|
// (X20) ? (x_buffer[16]=0,PLC_16BIT[65].bits.bit0=0) : (x_buffer[16]<D8020) ? (x_buffer[16]++) : (PLC_16BIT[65].bits.bit0=1);
|
|||
|
// (X21) ? (x_buffer[17]=0,PLC_16BIT[65].bits.bit1=0) : (x_buffer[17]<D8020) ? (x_buffer[17]++) : (PLC_16BIT[65].bits.bit1=1);
|
|||
|
// (X22) ? (x_buffer[18]=0,PLC_16BIT[65].bits.bit2=0) : (x_buffer[18]<D8020) ? (x_buffer[18]++) : (PLC_16BIT[65].bits.bit2=1);
|
|||
|
// (X23) ? (x_buffer[19]=0,PLC_16BIT[65].bits.bit3=0) : (x_buffer[19]<D8020) ? (x_buffer[19]++) : (PLC_16BIT[65].bits.bit3=1);
|
|||
|
// (X24) ? (x_buffer[20]=0,PLC_16BIT[65].bits.bit4=0) : (x_buffer[20]<D8020) ? (x_buffer[20]++) : (PLC_16BIT[65].bits.bit4=1);
|
|||
|
// (X25) ? (x_buffer[21]=0,PLC_16BIT[65].bits.bit5=0) : (x_buffer[21]<D8020) ? (x_buffer[21]++) : (PLC_16BIT[65].bits.bit5=1);
|
|||
|
// (X26) ? (x_buffer[22]=0,PLC_16BIT[65].bits.bit6=0) : (x_buffer[22]<D8020) ? (x_buffer[22]++) : (PLC_16BIT[65].bits.bit6=1);
|
|||
|
// (X27) ? (x_buffer[23]=0,PLC_16BIT[65].bits.bit7=0) : (x_buffer[23]<D8020) ? (x_buffer[23]++) : (PLC_16BIT[65].bits.bit7=1);
|
|||
|
// (X30) ? (x_buffer[24]=0,PLC_16BIT[65].bits.bit10=0) : (x_buffer[24]<D8020) ? (x_buffer[24]++) : (PLC_16BIT[65].bits.bit10=1);
|
|||
|
// (X31) ? (x_buffer[25]=0,PLC_16BIT[65].bits.bit11=0) : (x_buffer[25]<D8020) ? (x_buffer[25]++) : (PLC_16BIT[65].bits.bit11=1);
|
|||
|
// (X32) ? (x_buffer[26]=0,PLC_16BIT[65].bits.bit12=0) : (x_buffer[26]<D8020) ? (x_buffer[26]++) : (PLC_16BIT[65].bits.bit12=1);
|
|||
|
// (X33) ? (x_buffer[27]=0,PLC_16BIT[65].bits.bit13=0) : (x_buffer[27]<D8020) ? (x_buffer[27]++) : (PLC_16BIT[65].bits.bit13=1);
|
|||
|
// (X34) ? (x_buffer[28]=0,PLC_16BIT[65].bits.bit14=0) : (x_buffer[28]<D8020) ? (x_buffer[28]++) : (PLC_16BIT[65].bits.bit14=1);
|
|||
|
// (X35) ? (x_buffer[29]=0,PLC_16BIT[65].bits.bit15=0) : (x_buffer[29]<D8020) ? (x_buffer[29]++) : (PLC_16BIT[65].bits.bit15=1);
|
|||
|
// (X36) ? (x_buffer[30]=0,PLC_16BIT[65].bits.bit16=0) : (x_buffer[30]<D8020) ? (x_buffer[30]++) : (PLC_16BIT[65].bits.bit16=1);
|
|||
|
// (X37) ? (x_buffer[31]=0,PLC_16BIT[65].bits.bit17=0) : (x_buffer[31]<D8020) ? (x_buffer[31]++) : (PLC_16BIT[65].bits.bit17=1);
|
|||
|
//<2F>ϵ<EFBFBD><CFB5>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// if(!PVD) {if(power_down<=7)power_down++;}else{if(power_down>0)power_down--;}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//ˢ<><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ַΪ32<33><32><EFBFBD><EFBFBD>
|
|||
|
void PLC_IO_Refresh(void)
|
|||
|
{
|
|||
|
|
|||
|
// Y00=~PLC_16BIT[80].bits.bit0;
|
|||
|
// Y01=~PLC_16BIT[80].bits.bit1;
|
|||
|
// Y02=~PLC_16BIT[80].bits.bit2;
|
|||
|
// Y03=~PLC_16BIT[80].bits.bit3;
|
|||
|
// Y04=~PLC_16BIT[80].bits.bit4;
|
|||
|
// Y05=~PLC_16BIT[80].bits.bit5;
|
|||
|
// Y06=~PLC_16BIT[80].bits.bit6;
|
|||
|
// Y07=~PLC_16BIT[80].bits.bit7;
|
|||
|
// Y10=~PLC_16BIT[80].bits.bit10;
|
|||
|
// Y11=~PLC_16BIT[80].bits.bit11;
|
|||
|
// Y12=~PLC_16BIT[80].bits.bit12;
|
|||
|
// Y13=~PLC_16BIT[80].bits.bit13;
|
|||
|
// Y14=~PLC_16BIT[80].bits.bit14;
|
|||
|
// Y15=~PLC_16BIT[80].bits.bit15;
|
|||
|
// Y16=~PLC_16BIT[80].bits.bit16;
|
|||
|
// Y17=~PLC_16BIT[80].bits.bit17;
|
|||
|
//
|
|||
|
// Y20=~PLC_16BIT[81].bits.bit0;
|
|||
|
// Y21=~PLC_16BIT[81].bits.bit1;
|
|||
|
// Y22=~PLC_16BIT[81].bits.bit2;
|
|||
|
// Y23=~PLC_16BIT[81].bits.bit3;
|
|||
|
// Y24=~PLC_16BIT[81].bits.bit4;
|
|||
|
// Y25=~PLC_16BIT[81].bits.bit5;
|
|||
|
// Y26=~PLC_16BIT[81].bits.bit6;
|
|||
|
// Y27=~PLC_16BIT[81].bits.bit7;
|
|||
|
// Y30=~PLC_16BIT[81].bits.bit10;
|
|||
|
// Y31=~PLC_16BIT[81].bits.bit11;
|
|||
|
// Y32=~PLC_16BIT[81].bits.bit12;
|
|||
|
// Y33=~PLC_16BIT[81].bits.bit13;
|
|||
|
// Y34=~PLC_16BIT[81].bits.bit14;
|
|||
|
// Y35=~PLC_16BIT[81].bits.bit15;
|
|||
|
// Y36=~PLC_16BIT[81].bits.bit16;
|
|||
|
// Y37=~PLC_16BIT[81].bits.bit17;
|
|||
|
|
|||
|
|
|||
|
Y00=PLC_16BIT[80].bits.bit0;
|
|||
|
Y01=PLC_16BIT[80].bits.bit1;
|
|||
|
Y02=PLC_16BIT[80].bits.bit2;
|
|||
|
Y03=PLC_16BIT[80].bits.bit3;
|
|||
|
Y04=PLC_16BIT[80].bits.bit4;
|
|||
|
Y05=PLC_16BIT[80].bits.bit5;
|
|||
|
Y06=PLC_16BIT[80].bits.bit6;
|
|||
|
Y07=PLC_16BIT[80].bits.bit7;
|
|||
|
Y10=PLC_16BIT[80].bits.bit10;
|
|||
|
Y11=PLC_16BIT[80].bits.bit11;
|
|||
|
Y12=PLC_16BIT[80].bits.bit12;
|
|||
|
Y13=PLC_16BIT[80].bits.bit13;
|
|||
|
Y14=PLC_16BIT[80].bits.bit14;
|
|||
|
Y15=PLC_16BIT[80].bits.bit15;
|
|||
|
// Y16=PLC_16BIT[80].bits.bit16;
|
|||
|
// Y17=PLC_16BIT[80].bits.bit17;
|
|||
|
|
|||
|
// Y20=PLC_16BIT[81].bits.bit0;
|
|||
|
// Y21=PLC_16BIT[81].bits.bit1;
|
|||
|
// Y22=PLC_16BIT[81].bits.bit2;
|
|||
|
// Y23=PLC_16BIT[81].bits.bit3;
|
|||
|
// Y24=PLC_16BIT[81].bits.bit4;
|
|||
|
// Y25=PLC_16BIT[81].bits.bit5;
|
|||
|
// Y26=PLC_16BIT[81].bits.bit6;
|
|||
|
// Y27=PLC_16BIT[81].bits.bit7;
|
|||
|
// Y30=PLC_16BIT[81].bits.bit10;
|
|||
|
// Y31=PLC_16BIT[81].bits.bit11;
|
|||
|
// Y32=PLC_16BIT[81].bits.bit12;
|
|||
|
// Y33=PLC_16BIT[81].bits.bit13;
|
|||
|
// Y34=PLC_16BIT[81].bits.bit14;
|
|||
|
// Y35=PLC_16BIT[81].bits.bit15;
|
|||
|
// Y36=PLC_16BIT[81].bits.bit16;
|
|||
|
// Y37=PLC_16BIT[81].bits.bit17;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
void PLC_IO_config(void)
|
|||
|
{
|
|||
|
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE);
|
|||
|
|
|||
|
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);//RCC_APB2Periph_AFIO
|
|||
|
Err_Lamp_OFF; //ADD
|
|||
|
PLC_Y_config();
|
|||
|
PLC_IO_Refresh(); //ˢ<><CBA2>Y<EFBFBD><59><EFBFBD><EFBFBD>()
|
|||
|
PLC_X_config();
|
|||
|
PLC_Mode_config();
|
|||
|
// PLC_EXTI15_10_config(); // СС<D0A1><D0A1>,20160929<32><39><EFBFBD><EFBFBD>
|
|||
|
// PLC_EXTI9_5_config(); // СС<D0A1><D0A1>,20160929<32><39><EFBFBD><EFBFBD>
|
|||
|
}
|