|
avr이란 마이컴하고 232 통신을 하는데...
마이컴에서는 아래와 같이 10개의 데이타를 보내고
fputc(adc[0],COMM1);
fputc(adc[1],COMM1);
fputc(adc[2],COMM1);
fputc(adc[3],COMM1);
fputc(adc[4],COMM1);
fputc(adc[5],COMM1);
fputc(adc[6],COMM1);
fputc(adc[7],COMM1);
fputc(adc[8],COMM1);
fputc(adc[9],COMM1);
PC 프로그램에서는
void __fastcall TfrmMeasure::ComPort1TriggerAvail(TObject *CP, WORD Count)
{
unsigned char ch,d1,d2,d3;
String str;
for(int i=0;i<Count;i++)
{
ch = ComPort1->GetChar();
switch (i)
{ //testSerial,testSerial_00
case 0x00 : Adc2Data[0] = ch ; break;
case 0x01 : Adc2Data[1] = ch;break;
case 0x02 : Adc2Data[2] = ch ; break;
case 0x03 : Adc2Data[3] = ch;break;
case 0x04 : Adc2Data[4] = ch ; break;
case 0x05 : Adc2Data[5] = ch;break;
case 0x06 : Adc2Data[6] = ch ; break;
case 0x07 : Adc2Data[7] = ch;break;
case 0x08 : Adc2Data[8] = ch ; break;
case 0x09 : Adc2Data[9] = ch;break;
}
}
for(int i=0;i<10;i++)
adc[i] = Adc2Data[i];
GasN2 = (adc[0]<<8) | adc[1];
GasO2 = (adc[2]<<8) | adc[3];
GasAr = (adc[4]<<8) | adc[5];
DcVol = (adc[6]<<8) | adc[7];
DcCur = (adc[8]<<8) | adc[9];
str.sprintf("adc1 : %06ld--adc2 : %06ld--adc3 : %06ld--adc4 : %06ld--adc5 : %06ld",GasN2,GasO2,GasAr,DcVol,DcCur);
m_rev_str = str;
DisplayReceiveMessage();
}
이렇게 받아서 처리를 할려고 하는데 문제는 8개까지는 잘 읽어서 표시 되는데 8개를 넘어서면 읽혀지지 않고 처음으로 가서 표시됩니다. 해결 할 수 있는 방법이......도움 부탁드립니다.
|