Thông báo

Collapse
No announcement yet.

Giao thức TCP/IP và Web server với AVR

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • dhp11591
    replied
    Nguyên văn bởi tienhuypro Xem bài viết
    Hi bạn và tất cả các bạn đang làm ethernet !
    Nếu muốn mở rộng Ram ngoài thì dùng atmega162 nó có thể Up to 64K Bytes Optional External Memory Space.
    Hoặc muốn dùng Ram nội thì mua atmega64/128 có 4K ram, hoặc atmega2560 có 8kram (con này ở VN không có, nếu cần gấp bạn liên hệ mình share lại cho nhé )
    @@ Em đọc datasheet của atmega128 thấy có hỗ trợ XRAM, không biết trên thực tế, việc gắn XRAM cổng song song cho con này có dễ dàng không ạ? Em chót mua rồi, hix

    Leave a comment:


  • chikichita
    replied
    lâu rồi không thấy anh HUY vô lại, anh bận gì ah, hay không thích làm về đề tài này nữa rồi.
    Em còn chưa có dịp cảm ơn anh về mạch layout. em lấy nó làm mạch bảo vệ đồ án hihi,
    Cám ơn anh nhiều
    Nguyên văn bởi tienhuypro Xem bài viết
    Hi bạn và tất cả các bạn đang làm ethernet !
    Nếu muốn mở rộng Ram ngoài thì dùng atmega162 nó có thể Up to 64K Bytes Optional External Memory Space.
    Hoặc muốn dùng Ram nội thì mua atmega64/128 có 4K ram, hoặc atmega2560 có 8kram (con này ở VN không có, nếu cần gấp bạn liên hệ mình share lại cho nhé )

    Leave a comment:


  • tienhuypro
    replied
    Nguyên văn bởi dhp11591 Xem bài viết
    Hix, cả tuần nay k đc tiếp xúc với nền văn minh internet
    Thầy ơi, em ở HN, không tìm đâu ra con ATmega1284p (đã lên tận "Tổng Đàn" ở Hàn Thuyên mà k có), các con AVR khác, hoặc là RAM bé, hoặc là thừa quá nhiều ngoại vi, port. Em muốn tìm 1 con AVR chỉ to cỡ ATmega32 (nhỏ mà nhanh hơn càng tốt ạ ) nhưng hỗ trợ RAM ngoài, xin thầy chỉ giúp em.
    Nhân tiện xin thầy giảng cho em về giao tiếp XRAM cho các AVR hỗ trợ XRAM (có cả cách sử dụng biến khi có XRAM), chuơng trình viết bằng AVR Stdio 4, compile bằng AVR-GCC (như bài giảng của thầy, em nghe nói AVR-GCC là C chuẩn).
    Em khoa viễn thông nên câu hỏi chắc là ngố, nếu điều em hỏi quá dài dòng thì xin thầy cho em hướng tìm hiểu.
    Em cảm ơn thầy ạ.
    Hi bạn và tất cả các bạn đang làm ethernet !
    Nếu muốn mở rộng Ram ngoài thì dùng atmega162 nó có thể Up to 64K Bytes Optional External Memory Space.
    Hoặc muốn dùng Ram nội thì mua atmega64/128 có 4K ram, hoặc atmega2560 có 8kram (con này ở VN không có, nếu cần gấp bạn liên hệ mình share lại cho nhé )

    Leave a comment:


  • dhp11591
    replied
    Hix, cả tuần nay k đc tiếp xúc với nền văn minh internet
    Thầy ơi, em ở HN, không tìm đâu ra con ATmega1284p (đã lên tận "Tổng Đàn" ở Hàn Thuyên mà k có), các con AVR khác, hoặc là RAM bé, hoặc là thừa quá nhiều ngoại vi, port. Em muốn tìm 1 con AVR chỉ to cỡ ATmega32 (nhỏ mà nhanh hơn càng tốt ạ ) nhưng hỗ trợ RAM ngoài, xin thầy chỉ giúp em.
    Nhân tiện xin thầy giảng cho em về giao tiếp XRAM cho các AVR hỗ trợ XRAM (có cả cách sử dụng biến khi có XRAM), chuơng trình viết bằng AVR Stdio 4, compile bằng AVR-GCC (như bài giảng của thầy, em nghe nói AVR-GCC là C chuẩn).
    Em khoa viễn thông nên câu hỏi chắc là ngố, nếu điều em hỏi quá dài dòng thì xin thầy cho em hướng tìm hiểu.
    Em cảm ơn thầy ạ.
    Last edited by dhp11591; 11-09-2012, 03:48.

    Leave a comment:


  • nttam79
    replied
    Nguyên văn bởi dhp11591 Xem bài viết
    Theo mình hiểu là: trước tiên ép kiểu con trỏ data về (unsigned char) rồi lấy giá trị của nó (dấu * đầu tiên đó) rồi làm j với nó thì làm )
    Ở đây là tăng sum lên 1 khoảng = cái giá trị nêu ở trên.
    Đó là ý kiến chủ quan của em, xin các anh chỉ bảo thêm ạ.
    Chính xác

    Nguyên văn bởi nguyentuanqs Xem bài viết
    có vẻ chuẩn,thank bác. hóng các bác chỉ giáo tiếp ạ.
    p/s : bác cho em hỏi mục đích của việc ép kiểu này được không ?
    Thực ra trong trường hợp trên, ép kiểu như vậy là thừa, vì biến data đã có kiểu là unsigned char * rồi (trong hàm ipChecksum). Sở dĩ có đoạn code như vậy là do lúc đầu viết khai báo data là char *, sau đó sửa lại là unsigned char *, nên ép kiểu thừa, nhưng cũng không ảnh hưởng gì đến code nên không sửa.

    Leave a comment:


  • nguyentuanqs
    replied
    Nguyên văn bởi dhp11591 Xem bài viết
    Theo mình hiểu là: trước tiên ép kiểu con trỏ data về (unsigned char) rồi lấy giá trị của nó (dấu * đầu tiên đó) rồi làm j với nó thì làm )
    Ở đây là tăng sum lên 1 khoảng = cái giá trị nêu ở trên.
    Đó là ý kiến chủ quan của em, xin các anh chỉ bảo thêm ạ.
    có vẻ chuẩn,thank bác. hóng các bác chỉ giáo tiếp ạ.
    p/s : bác cho em hỏi mục đích của việc ép kiểu này được không ?

    Leave a comment:


  • lenhan
    replied
    à mà còn có hiện tượng khi em build nạp cho con 97j60 có lúc bật lên con LCD hiện IP này có lúc bật lên nó lại hiện IP khác.

    Leave a comment:


  • lenhan
    replied
    anh Tâm cho em hỏi.
    em sử dụng TCPIP Stack v5.10 của microchip. chạy project "TCPIP Demo App-C18.mcp" có hiện tượng:
    - khi em build nạp cho con 97j60 thì nó chạy với IP khác, ko liên quan đến file TCPIPConfig.h
    - khi em Configuer cho con 67j60 thì nó chạy với IP 169.254.1.1 như trong file TCPIPConfig.h
    ko biết là thế nào?
    khi build nạp cho con 97j60 em đã xóa hết địa chỉ IP trong file TCPIPConfig.h. và chỉ sử dụng
    #define STACK_USE_GENERIC_TCP_SERVER_EXAMPLE
    trong file MainDemo.c em ko cho DHCP hoạt động bằng cách AppConfig.Flags.bIsDHCPEnabled = FALSE; rồi mà khi nạp nó vẫn chạy với IP 192.168.1.99
    anh giải thích giúp em với nhé.
    cám ơn anh.

    Leave a comment:


  • dhp11591
    replied
    Các anh ơi, ATmega32 chỉ có 2k SRAM => em muốn thêm 1 số modul vào project internet của thầy thì tràn RAM luôn
    Vậy loại atmega nào hỗ trợ RAM ngoài tiện lợi nhất ạ? Tức là em muốn nó như RAM nội ý, có thể khai báo biến trên đó
    Em đang nhắm tới con ATmega1284 vì cái RAM nội 16k của nó và các chân giống ATmega32, nhưng hơi ngại vì không thấy giao diện RAM ngoại ở đâu cả

    Leave a comment:


  • dhp11591
    replied
    Theo mình hiểu là: trước tiên ép kiểu con trỏ data về (unsigned char) rồi lấy giá trị của nó (dấu * đầu tiên đó) rồi làm j với nó thì làm )
    Ở đây là tăng sum lên 1 khoảng = cái giá trị nêu ở trên.
    Đó là ý kiến chủ quan của em, xin các anh chỉ bảo thêm ạ.

    Leave a comment:


  • nguyentuanqs
    replied
    thầy cho em hỏi chút ạ. em đọc đến đoạn này thì không hiểu :
    Code:
    sum += *(unsigned char *) data;
    mong thầy và các ace giải nghĩa ạ!
    Last edited by nguyentuanqs; 05-09-2012, 22:30.

    Leave a comment:


  • chikichita
    replied
    Thầy ơi dịch vụ dnydns.org bữa nay bắt trả phí rồi giờ thầy chuyển qua dùng cái gì để điều khiển qua internet vậy thầy, chia sẻ dùm em với, em có tìm hiểu có loại thiết bị myDNS giá 1,1tr không biết thầy đã dùng qua chưa ạ.
    Em thấy dùng ATMEGA32 viết được ít ứng dụng quá, giờ đang vẽ mạch lại thay bằng ATMEGA128 nếu có gì vướng mắc mong thầy hỗ trợ cho em với nghe thầy.

    Leave a comment:


  • dhp11591
    replied
    Mà tình trạng in ra màn hình 1 số unsigned long dưới dạng hexa mà bị in thiếu 1 vài ký tự hexa là sao ạ?
    Huhu, thầy ơi, em kẹt quá, thầy vô gỡ cho em với...

    Leave a comment:


  • dhp11591
    replied
    Em đang có mưu đồ viết code MD5 trên C, chuơng trình của em sinh được 1 mã đáp ứng được các yêu cầu giống như MD5 nhưng vẫn không giống MD5 thật.
    Xin các anh xem giúp em 1 chút ạ. Giải thuật ở link: MD5 – Wikipedia tiếng Việt
    Code:
    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    #include <stdlib.h>
    #include <conio.h>
    
    #define left_rotate(x,n) (((x) << (n)) | ((x) >> (32-(n))))
    
    void md5(unsigned char len, unsigned long *w)
    {
         unsigned long bit_length = (len + 1)*8;
         unsigned char *p;
         p = NULL;
         unsigned char i = 0, n = 0, j = 0;
         //Mang chua cac hang so se duoc xu ly trong 1 tac vu
         unsigned long k[64];
         //Khoi tao chuoi
         unsigned long h0 = 0x67452301;
         unsigned long h1 = 0xefcdab89;//0xEFCDAB89;
         unsigned long h2 = 0x98badcfe;//0x98BADCFE;
         unsigned long h3 = 0x10325476;
         //Xac dinh cac gia tri dich chuyen cua moi tac vu
         unsigned long r[64] = {7,12,17,22, 7,12,17,22, 7,12,17,22, 7,12,17,22,
                                5,9,14,20, 5,9,14,20, 5,9,14,20, 5,9,14,20,
                                4,11,16,23, 4,11,16,23, 4,11,16,23, 4,11,16,23,
                                6,10,15,21, 6,10,15,21, 6,10,15,21, 6,10,15,21};
         for(i = 0; i < 64; i++)
         {
               k[i] = floor(pow(2,32) * abs(sin(i+1)));
         }
         unsigned char padded[56];
         padded[0] = 0x80;
         for(i = 1; i < 56; i++)
               padded[i] = 0;
         //------------------------------------------------------------
         //Tien xu ly
         p = (unsigned char*)w;
         n = 448/8 - len;
         i = len + 1;
         while(j < n)
         {
               p[i++] = padded[j++];
         }
         w[15] = bit_length;
         i = 0;
         while(i < 64)
               printf("   %u", p[i++]);
         //-------------------------------------------------------
         //VOOC
         unsigned long a = h0;
         unsigned long b = h1;
         unsigned long c = h2;
         unsigned long d = h3;
         unsigned long f;
         unsigned char g;
         unsigned long temp;
         for(i = 0; i < 64; i++)
         {
               if(i < 16)
               {
                    f = (b & c) | ((~b) & d);
                    g = i;
               }
               else if(16 <= i && i < 32)
               {
                    f = (d & b) | ((~d) & c);
                    g = (5*i + 1) % 16;
               }
               else if(32 <= i && i < 48)
               {
                    f = b ^ c ^ d;
                    g = (3*i + 5) % 16;
               }
               else if(48 <= i)
               {
                     f = c ^ (b | (~d));
                     g = (7*i) % 16;
               }
               temp = d;
               d = c;
               c = b;
               b = b + left_rotate((a + f + k[i] + w[g]),r[i]);
               a = temp;
         }
         printf("\n a = %x",a);
         printf("\n b = %x",b);
         printf("\n c = %x",c);
         printf("\n d = %x",d);
         h0 += a;
         h1 += b;
         h2 += c;
         h3 += d;
         printf("\n Ket qua hash la %x%x%x%x", h3, h2, h1, h0);
         printf("\n Ket qua h0 la %x", h0);
         printf("\n Ket qua h1 la %x", h1);
         printf("\n Ket qua h2 la %x", h2);
         printf("\n Ket qua h3 la %x", h3);
    }
    
    int main()
    {
        unsigned char input[64] = "";
        unsigned char len = strlen(input);
        md5(len, (unsigned long*)input);
        while(getchar() != '\n');
        return 0;
    }
    Em cảm ơn các anh.

    Leave a comment:


  • chikichita
    replied
    thầy ơi chỉ em cách điều khiển qua intermet bằng IP động với.

    Leave a comment:

Về tác giả

Collapse

nttam79 Tìm hiểu thêm về nttam79

Bài viết mới nhất

Collapse

  • Andrea14
    Vấn đề về tốc độ quay
    bởi Andrea14
    Chào mọi người,

    Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
    hôm nay, 12:42
  • bqviet
    Trả lời cho Đấu tắt điện cho máy tính bảng
    bởi bqviet
    Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
    06-12-2025, 17:17
  • nguyendinhvan
    Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
    bởi nguyendinhvan
    Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
    05-12-2025, 19:59
  • afrendly
    Trả lời cho Đấu tắt điện cho máy tính bảng
    bởi afrendly
    Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
    04-12-2025, 01:27
Đang tải...
X