Nguyên văn bởi Ngoc Anh 91
Xem bài viết
Lại gặp vấn đề rồi các anh ơi:
//If POST method--------------------------------------------
else if(httpSessionTable[i].rqst.method == HTTP_REQUEST_POST)
{
//Update POST data
if(findstr(PSTR("Submit=Start"),buffer,bufferLen) != -1)
{
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
//================ DIEU KHIEN THIET BI =============
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
if((findstr(PSTR("Led1=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED1);
}
else
{
cbi(PORTD,LED1);
}
//---------------------------------------------------
if((findstr(PSTR("Led2=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED2);
}
else
{
cbi(PORTD,LED2);
}
//---------------------------------------------------
if((findstr(PSTR("Led3=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED3);
}
else
{
cbi(PORTD,LED3);
}
//---------------------------------------------------
if((findstr(PSTR("Led4=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED4);
}
else
{
cbi(PORTD,LED4);
}
//---------------------------------------------------
if((findstr(PSTR("Led5=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED5);
}
else
{
cbi(PORTD,LED5);
}
//================================================== ================
Đây là phần điều khiển 5 con led đơn của em? Điều khiển được rồi,nhưng sao con led sáng mờ căm? Em test bằng code khác thì led sáng bình thường! Tưởng do LCD, nên rút LCD ra, ai ngờ cũng vậy, sao vậy ta? Em chỉ mới thay đổi hàm HTTPDataIn(), còn hàm HTTPSent() em thay đổi thế này:
void HTTPSend(const prog_char progdata[],unsigned int dataLen,struct tcpSession *pSession, unsigned char endData)
{
unsigned int i;
DDRD=0xFF;
unsigned int srcDataIdx = 0;
unsigned char* dataBuffer;
unsigned char Flags;
//unsigned char* tmpStr;
unsigned char tmpChr,tmpVar;
Flags = TCP_PSH_FLAG;
dataBuffer = ethGetBuffer() + ETH_HEADER_LEN + IP_HEADER_LEN + TCP_HEADER_LEN;
if(dataLen == 0)
{
Flags |= TCP_ACK_FLAG;
if(endData)
{
if(srcDataIdx == dataLen)
{
Flags |= TCP_FIN_FLAG;
pSession->sesState = TCP_STATE_FIN_WAIT1;
}
}
TCPPackedSend(pSession,Flags,0,dataBuffer);
}
while(srcDataIdx < dataLen)
{
i = 0;
while(i<MAX_SEGMENT_SIZE)
{
tmpChr = pgm_read_byte(progdata + srcDataIdx++);
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOO
//================ GUI TRANG THAI THIET BI =============
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOO
if(tmpChr == '%')
{ //Truong hop ung voi dieu khien relay ("%Ledx)
if( (i + 9) > MAX_SEGMENT_SIZE)
{ //Neu khong con du cho trong tren buffer
srcDataIdx--;
break;
}
//Tiep tuc neu du cho trong tren buffer
tmpVar = pgm_read_byte(progdata + srcDataIdx + 3) - 0x30;
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '1'))
{
if(LED1==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '2'))
{
if(LED2==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '3'))
{
if(LED3==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '4'))
{
if(LED4==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '5'))
{
if(LED5==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
}
dataBuffer[i++] = tmpChr; //Copy data to tcp data buffer
//========================== END =======================
if(srcDataIdx==dataLen)
{
break;
}
}
Flags |= TCP_ACK_FLAG;
if(endData)
{
if(srcDataIdx == dataLen)
{
Flags |= TCP_FIN_FLAG;
pSession->sesState = TCP_STATE_FIN_WAIT1;
}
}
TCPPackedSend(pSession,Flags,i,dataBuffer);
//delay_ms(100);
#ifdef NETSTACK_DEBUG
printf("Sent %d byte\r\n",srcDataIdx);
#endif
}
}
Biên dịch hok có lỗi, nạp OK, nhưng ping không được?
//If POST method--------------------------------------------
else if(httpSessionTable[i].rqst.method == HTTP_REQUEST_POST)
{
//Update POST data
if(findstr(PSTR("Submit=Start"),buffer,bufferLen) != -1)
{
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
//================ DIEU KHIEN THIET BI =============
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
if((findstr(PSTR("Led1=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED1);
}
else
{
cbi(PORTD,LED1);
}
//---------------------------------------------------
if((findstr(PSTR("Led2=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED2);
}
else
{
cbi(PORTD,LED2);
}
//---------------------------------------------------
if((findstr(PSTR("Led3=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED3);
}
else
{
cbi(PORTD,LED3);
}
//---------------------------------------------------
if((findstr(PSTR("Led4=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED4);
}
else
{
cbi(PORTD,LED4);
}
//---------------------------------------------------
if((findstr(PSTR("Led5=ON"),buffer,bufferLen)) != -1)
{
sbi(PORTD,LED5);
}
else
{
cbi(PORTD,LED5);
}
//================================================== ================
Đây là phần điều khiển 5 con led đơn của em? Điều khiển được rồi,nhưng sao con led sáng mờ căm? Em test bằng code khác thì led sáng bình thường! Tưởng do LCD, nên rút LCD ra, ai ngờ cũng vậy, sao vậy ta? Em chỉ mới thay đổi hàm HTTPDataIn(), còn hàm HTTPSent() em thay đổi thế này:
void HTTPSend(const prog_char progdata[],unsigned int dataLen,struct tcpSession *pSession, unsigned char endData)
{
unsigned int i;
DDRD=0xFF;
unsigned int srcDataIdx = 0;
unsigned char* dataBuffer;
unsigned char Flags;
//unsigned char* tmpStr;
unsigned char tmpChr,tmpVar;
Flags = TCP_PSH_FLAG;
dataBuffer = ethGetBuffer() + ETH_HEADER_LEN + IP_HEADER_LEN + TCP_HEADER_LEN;
if(dataLen == 0)
{
Flags |= TCP_ACK_FLAG;
if(endData)
{
if(srcDataIdx == dataLen)
{
Flags |= TCP_FIN_FLAG;
pSession->sesState = TCP_STATE_FIN_WAIT1;
}
}
TCPPackedSend(pSession,Flags,0,dataBuffer);
}
while(srcDataIdx < dataLen)
{
i = 0;
while(i<MAX_SEGMENT_SIZE)
{
tmpChr = pgm_read_byte(progdata + srcDataIdx++);
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOO
//================ GUI TRANG THAI THIET BI =============
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOO
if(tmpChr == '%')
{ //Truong hop ung voi dieu khien relay ("%Ledx)
if( (i + 9) > MAX_SEGMENT_SIZE)
{ //Neu khong con du cho trong tren buffer
srcDataIdx--;
break;
}
//Tiep tuc neu du cho trong tren buffer
tmpVar = pgm_read_byte(progdata + srcDataIdx + 3) - 0x30;
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '1'))
{
if(LED1==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '2'))
{
if(LED2==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '3'))
{
if(LED3==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '4'))
{
if(LED4==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
if((pgm_read_byte(progdata + srcDataIdx) == 'L')&&(pgm_read_byte(progdata + srcDataIdx + 1) == 'E')&&(pgm_read_byte(progdata + srcDataIdx + 1) == '5'))
{
if(LED5==1)
{//checked
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
else
{
dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'w';dataBuffer[i++] = ' ';
srcDataIdx += 5;
}
}
}
dataBuffer[i++] = tmpChr; //Copy data to tcp data buffer
//========================== END =======================
if(srcDataIdx==dataLen)
{
break;
}
}
Flags |= TCP_ACK_FLAG;
if(endData)
{
if(srcDataIdx == dataLen)
{
Flags |= TCP_FIN_FLAG;
pSession->sesState = TCP_STATE_FIN_WAIT1;
}
}
TCPPackedSend(pSession,Flags,i,dataBuffer);
//delay_ms(100);
#ifdef NETSTACK_DEBUG
printf("Sent %d byte\r\n",srcDataIdx);
#endif
}
}
Biên dịch hok có lỗi, nạp OK, nhưng ping không được?


Leave a comment: