
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
//-------------------------------------------------------//
// Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
// File Name : DigitalIO.cpp
// Created on : 2022. 10. 30.
// Description :
// Author : KimJeongWoo
// Last modified Date :
//-------------------------------------------------------//
#include "CommonLib.h"
struct sDin Din;
struct sDOUT Dout;
int FlagWrDioExor = 0;
int FlagRstDioExor = 0;
long int BufferDoutExorAll = 0;
void InitDigitalIOSet()
{
memset(&Din, 0, (sizeof(Din) / sizeof(int)));
memset(&Dout, 0, (sizeof(Dout) / sizeof(int)));
ResetDioExor();
// ReadDioExor();
InitDigitalInput();
InitDigitalOutput();
DigitalInput();
DigitalOutput();
}
void InitDigitalInput()
{
//Din0
GPIO_setMasterCore(0, GPIO_CORE_CPU1);
GPIO_setPadConfig(0, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_0_GPIO0);
GPIO_setQualificationMode(0, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(0, GPIO_DIR_MODE_IN);
//Din1
GPIO_setMasterCore(1, GPIO_CORE_CPU1);
GPIO_setPadConfig(1, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_1_GPIO1);
GPIO_setQualificationMode(1, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(1, GPIO_DIR_MODE_IN);
//Din16
GPIO_setMasterCore(16, GPIO_CORE_CPU1);
GPIO_setPadConfig(16, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_16_GPIO16);
GPIO_setQualificationMode(16, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(16, GPIO_DIR_MODE_IN);
//Din17
GPIO_setMasterCore(17, GPIO_CORE_CPU1);
GPIO_setPadConfig(17, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_17_GPIO17);
GPIO_setQualificationMode(17, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(17, GPIO_DIR_MODE_IN);
//Din18
GPIO_setMasterCore(18, GPIO_CORE_CPU1);
GPIO_setPadConfig(18, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_18_GPIO18);
GPIO_setQualificationMode(18, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(18, GPIO_DIR_MODE_IN);
//Din19
GPIO_setMasterCore(19, GPIO_CORE_CPU1);
GPIO_setPadConfig(19, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_19_GPIO19);
GPIO_setQualificationMode(19, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(19, GPIO_DIR_MODE_IN);
//Din20
GPIO_setMasterCore(20, GPIO_CORE_CPU1);
GPIO_setPadConfig(20, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_20_GPIO20);
GPIO_setQualificationMode(20, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(20, GPIO_DIR_MODE_IN);
//Din21
GPIO_setMasterCore(21, GPIO_CORE_CPU1);
GPIO_setPadConfig(21, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_21_GPIO21);
GPIO_setQualificationMode(21, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(21, GPIO_DIR_MODE_IN);
//Din22
GPIO_setMasterCore(22, GPIO_CORE_CPU1);
GPIO_setPadConfig(22, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_22_GPIO22);
GPIO_setQualificationMode(22, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(22, GPIO_DIR_MODE_IN);
//Din23
GPIO_setMasterCore(23, GPIO_CORE_CPU1);
GPIO_setPadConfig(23, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_23_GPIO23);
GPIO_setQualificationMode(23, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(23, GPIO_DIR_MODE_IN);
//Din24
GPIO_setMasterCore(24, GPIO_CORE_CPU1);
GPIO_setPadConfig(24, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_24_GPIO24);
GPIO_setQualificationMode(24, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(24, GPIO_DIR_MODE_IN);
//Din25
GPIO_setMasterCore(25, GPIO_CORE_CPU1);
GPIO_setPadConfig(25, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_25_GPIO25);
GPIO_setQualificationMode(25, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(25, GPIO_DIR_MODE_IN);
//Din26
GPIO_setMasterCore(26, GPIO_CORE_CPU1);
GPIO_setPadConfig(26, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_26_GPIO26);
GPIO_setQualificationMode(26, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(26, GPIO_DIR_MODE_IN);
//Din27
GPIO_setMasterCore(27, GPIO_CORE_CPU1);
GPIO_setPadConfig(27, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_27_GPIO27);
GPIO_setQualificationMode(27, GPIO_QUAL_ASYNC);
GPIO_setDirectionMode(27, GPIO_DIR_MODE_IN);
}
void InitDigitalOutput()
{
//Dout0
GPIO_setMasterCore(32, GPIO_CORE_CPU1);
GPIO_setPadConfig(32, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_32_GPIO32);
GPIO_setDirectionMode(32, GPIO_DIR_MODE_OUT);
GPIO_writePin(32, 0);
//Dout1
GPIO_setMasterCore(33, GPIO_CORE_CPU1);
GPIO_setPadConfig(33, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_33_GPIO33);
GPIO_setDirectionMode(33, GPIO_DIR_MODE_OUT);
GPIO_writePin(33, 0);
//Dout2
GPIO_setMasterCore(34, GPIO_CORE_CPU1);
GPIO_setPadConfig(34, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_34_GPIO34);
GPIO_setDirectionMode(34, GPIO_DIR_MODE_OUT);
GPIO_writePin(34, 0);
//Dout3
GPIO_setMasterCore(35, GPIO_CORE_CPU1);
GPIO_setPadConfig(35, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_35_GPIO35);
GPIO_setDirectionMode(35, GPIO_DIR_MODE_OUT);
GPIO_writePin(35, 0);
//Dout4
GPIO_setMasterCore(36, GPIO_CORE_CPU1);
GPIO_setPadConfig(36, GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig(GPIO_36_GPIO36);
GPIO_setDirectionMode(36, GPIO_DIR_MODE_OUT);
GPIO_writePin(36, 0);
}
Uint16 TestDin;
void DigitalInput()
{
Din.DataRaw.all = HWREG(GPIODATA_BASE + 0x00); //16-bit HWREGH -> 32-bit HWREG
Din.Data.all = Din.DataRaw.all ^ ~Din.Exor.all;
}
void DigitalOutput()
{
HWREGH(GPIODATA_BASE + 0x8) = ~(Dout.Data.all ^ Dout.Exor.all);
}
//
void ReadDioExor(void)
{
// Din.Exor.all = NV.Din.Exor.all;
// Dout.Exor.all = NV.Dout.Exor.all;
}
//
void WriteDioExor(void)
{
// NV.Din.Exor.all = Din.Exor.all;
// NV.Dout.Exor.all = Dout.Exor.all;
}
void ResetDioExor()
{
// 0, A접점(NO, Normal Open)
// 1, B접점(NC, Normal Close)
Din.Exor.bit.Button = NORMAL_OPEN;
Din.Exor.bit.Door_chk = NORMAL_CLOSE;
Din.Exor.bit.FT_CH1_IR = NORMAL_OPEN;
Din.Exor.bit.FT_CH1_VIS = NORMAL_OPEN;
Din.Exor.bit.FT_CH1_UV = NORMAL_OPEN;
Din.Exor.bit.FT_CH2_IR = NORMAL_OPEN;
Din.Exor.bit.FT_CH2_VIS = NORMAL_OPEN;
Din.Exor.bit.FT_CH2_UV = NORMAL_OPEN;
Din.Exor.bit.FT_CH3_IR = NORMAL_OPEN;
Din.Exor.bit.FT_CH3_VIS = NORMAL_OPEN;
Din.Exor.bit.FT_CH3_UV = NORMAL_OPEN;
Din.Exor.bit.FT_CH4_IR = NORMAL_OPEN;
Din.Exor.bit.FT_CH4_VIS = NORMAL_OPEN;
Din.Exor.bit.FT_CH4_UV = NORMAL_OPEN;
}