Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
là sao bạn có thể giải thích rõ giùm mình dc ko. cái này minh ko rành cho lắm
Nghĩa là bạn phải cài đặt dịch vụ NAT cho modem.
Khi bạn cắm line vào Modem nó sẽ cấp phát động ip cho mô đun, và ip này là private chứ không phải public ip, nên từ bên ngoài mạng sẽ không kết nối được với mô đun.
NAT sẽ thay thế ip private thành ip public động mà ISP cấp cho modem của chúng ta.
Sơ sơ là như vậy, bạn đọc lại từ đầu, thầy tâm có nói về NAT.
Bạn không nói tên modem nên mình không hướng dẫn được, bạn search google cách setup NAT nhé
Trong đó a có file hướng dẫn rồi mà, hôm bữa nhờ thầy up file mô phỏng này lên #1 nhưng không được vì bài quá 72h không sửa được.
Để mô phỏng được thì cần:
+ Cắm line vì project không viết cho wifi vì cấu trúc khung dữ liệu khác nhau
+ Cài proteus và wincap
Mẹo test xem được chưa là: mở Explorer16 with Ethernet PICtail.DSN trong thư mục C:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM MPLAB Viewer\Eval Boards\Ethernet (nếu khác ổ đĩa thì change lại cho đúng) (bản này microchip viết cho pic)
nếu mô phỏng bình thường thì chắc chắn là code hex bạn nạp vào avr lỗi.
+ Kiểm tra lại xung nhịp thạch anh trong code.
//
Em đã làm như anh bảo nhưng không được, e cài win Xp thử thì làm được rồi, e nghĩ là do ứng dụng nào đó chiếm port 80 của mình
Em cám ơn a nhé, bây giờ em vào mô phỏng được rồi.
Và bây giờ e sẽ từ từ đọc và tìm hiểu thật kỹ.
Có j khó khăn mong anh giúp đỡ nhé!
Cám ơn anh nhiều
Có bác nào cho em hỏi, trong cái project em down về, hàm httpInit() không dùng tới trong ntAVRnet.c nhưng vẫn điều khiển được thiết bị, rõ ràng là phải đăng nhập admin:1234 mới điều khiển được mà? Khó nghĩ quá!
if((buffer[i] == 'l')&&(buffer[i+1] == 'c')&&(buffer[i+2] == 'd')&&(buffer[i+3] == '1'))
{
while(bufer[i]!=0x0a) // Nhan phim Enter
{
LCD_PRINT(buffer[i++]);
}
}
Thứ nhất: ở đây i bắt đầu khi bắt được ký tự "l" theo bảng mã ascii, nên đúng ra phải lấy chuỗi này sau đó 5 ký tự nữa, lưu ý phải xử lý trước khi xuất vì còn ký tự "+" nếu chuỗi nhập vào có khoảng trắng
Có bác nào cho em hỏi, trong cái project em down về, hàm httpInit() không dùng tới trong ntAVRnet.c nhưng vẫn điều khiển được thiết bị, rõ ràng là phải đăng nhập admin:1234 mới điều khiển được mà? Khó nghĩ quá!
Bạn xem trang 56, #556 mình có nói về cách sửa lỗi này
Có bác nào có Project đầy đủ về đề tài này không vậy các bác, cho em xin với!
Mỗi người viết mỗi kiểu tùy vào phần cứng, thấy chỉ cho phần xương sống là truyền tải được lệch, giờ chỉ việc bắt lệch và thực hiện thôi, nếu muốn có sẵn bạn liên hệ tme hình như có bán đó
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
//================================================== ================
Đâ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;
mọi người giải thích giùm cái
tmpStr = (unsigned char*)uInt2StrLen(LM35_TYP_DECODE(GetADC(tmpVar)), 3);//(unsigned char*)uByte2Str(GetAD(tmpChr));
vậy biến tmpStr nó ra 1 chuỗi kí tự ak.
nếu muốn hiển thị số 20 lên thì tmpStr khai báo nhứ thế nào. ai pro giúp giùm với.
mọi người giải thích giùm cái
tmpStr = (unsigned char*)uInt2StrLen(LM35_TYP_DECODE(GetADC(tmpVar)), 3);//(unsigned char*)uByte2Str(GetAD(tmpChr));
vậy biến tmpStr nó ra 1 chuỗi kí tự ak.
nếu muốn hiển thị số 20 lên thì tmpStr khai báo nhứ thế nào. ai pro giúp giùm với.
Thứ nhất bạn phải viết một hàm lấy giá trị nhiệt độ và sau đó chuyển nó thành mã ascii tương ứng
Sau đó truyền đi như việc điều khiển Relay
Dạ cháu thấy bác vi... nói đúng ấy ạ. Cùng 1 vận tốc, đường kính, số lượng cánh, độ dày cánh quét không khí. Thì cánh lớn sẽ múc được nhìu hơn ạ. Nếu cánh lớn đến 1 mức độ nào đó thậm chí chồng lên nhau thì nó sẽ thành 1...
Sai lầm từ cơ bản.
Nguyên tắc cánh quạt là "múc" không khí trước cánh quạt quăng lên "Bờ". Khi cánh quạt di chuyển để lại vị trí có áp suất thấp, không khí ở ngoài tràn vào. Cánh quạt thứ 2 làm việc giống thế, rồi đến cánh quạt...
"nếu tăng nó lên đến 90 độ thì không thổi nữa, tăng tiếp trên 90 độ nó sẽ trở thành quạt hút thôi."
là sau khi tăng lên thành 90° rồi, tiếp tục tăng nữa cho nó trên 90° đó bác, như hình vẽ xấu tệ ở dưới ạ!
1. Có lẽ cháu nói "ma sát" ở đây chưa được rõ ràng.
Ma sát ở đây chỉ là ma sát trượt qua mặt cánh quạt, và lực ma sát do không khí này có phương vuông góc với trục quay.
Comment