📄 pin2410.c
字号:
/* - 16/05/2002 [Jaewook Cheong] : first writing for S3C2410 */
#include <stdio.h>
#include "def.h"
#include "pin2410.h"
#include "jtag.h"
char outCellValue[S2410_MAX_CELL_INDEX+2];
char inCellValue[S2410_MAX_CELL_INDEX+2];
int dataOutCellIndex[8];
int dataInCellIndex[8];
void S2410_InitCell(void)
{
int i;
dataOutCellIndex[0] = DATA0_OUT;
dataOutCellIndex[1] = DATA1_OUT;
dataOutCellIndex[2] = DATA2_OUT;
dataOutCellIndex[3] = DATA3_OUT;
dataOutCellIndex[4] = DATA4_OUT;
dataOutCellIndex[5] = DATA5_OUT;
dataOutCellIndex[6] = DATA6_OUT;
dataOutCellIndex[7] = DATA7_OUT;
dataInCellIndex[0] = DATA0_IN;
dataInCellIndex[1] = DATA1_IN;
dataInCellIndex[2] = DATA2_IN;
dataInCellIndex[3] = DATA3_IN;
dataInCellIndex[4] = DATA4_IN;
dataInCellIndex[5] = DATA5_IN;
dataInCellIndex[6] = DATA6_IN;
dataInCellIndex[7] = DATA7_IN;
//outCellValue[] must be initialized by dummy values for JTAG_ShiftDRState();
for(i=0;i<=S2410_MAX_CELL_INDEX;i++)
{
outCellValue[i]=HIGH;
inCellValue[i]='u';
}
outCellValue[S2410_MAX_CELL_INDEX+1]='\0';
inCellValue[S2410_MAX_CELL_INDEX+1]='\0';
JTAG_RunTestldleState();
JTAG_ShiftIRState(SAMPLE_PRELOAD);
JTAG_ShiftDRState(outCellValue,inCellValue); //inCellValue[] is initialized.
for(i=0;i<=S2410_MAX_CELL_INDEX;i++)
{
outCellValue[i]=inCellValue[i]; //outCellValue[] is initialized.
}
}
#if 0 //For speed up, replaced by MACRO
void S2410_SetPin(int index, char value)
{
outCellValue[index] = value;
}
char S2410_GetPin(int index)
{
return inCellValue[index];
}
#endif
void S2410_SetData(U8 data)
{
int i;
for(i=0;i<8;i++)
{
if(data & (1<<i))
outCellValue[dataOutCellIndex[i]]=HIGH;
else
outCellValue[dataOutCellIndex[i]]=LOW;
}
}
U8 S2410_GetData(void)
{
int i;
U8 data=0;
for(i=0;i<8;i++)
{
if(inCellValue[dataInCellIndex[i]]==HIGH)
{
data = (data | (1<<i));
}
}
return data;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -