tag 标签: atmega128

相关博文
  • 热度 11
    2013-5-14 10:30
    2327 次阅读|
    0 个评论
    下面是我对W5100的简单UDP协议代码分析,使用了W5100的开发板(atmega128) 大家可以看到,UDP和TCP协议的分别,其实也很简单易用,只要调用不同的函数即可。 代码注释如下: #include #include #include #include #include #include "../header/types.h" #include "../header/serial.h" #include "../header/socket.h" #include "../header/w5100.h" #define MAX_SIZE 2048 #define RX_BUF 0x1100 #define TX_BUF 0x1900 void main() {     cli(); // disable interrupt     EICRA=0x00;     EICRB=0x00;     EIMSK=0x00;     EIFR=0x00;     MCUCR = 0x80; // enable external ram     XMCRA=0x40; //define lower sector of memory for EXternal ram and upper sector for W5100C and others     sei();               // enable interrupts     uart_init(0,7);     lcd_init();     uint8 destip ;     uint8 addr ;        iinchip_init();     sysinit(0x55,0x55); //     addr = 192; addr = 168; addr = 1; addr = 20;     setSIPR(addr);     addr = 192; addr = 168; addr = 1; addr = 1;     setGAR(addr);     addr = 255; addr = 255; addr = 255; addr = 0;     setSUBR(addr);     memcpy(addr, "\x00\x08\xDC\x00\x00\x00",6);     setSHAR(addr);        uint8 lcd ;     sprintf(lcd,"IP: %d.%d.%d.%d",IINCHIP_READ(SIPR0),IINCHIP_READ(SIPR0+1),IINCHIP_READ(SIPR0+2),IINCHIP_READ(SIPR0+3));     lcd_puts(lcd);                     //print LCD string into LCD         uint8 len; // set UDP mode     socket(0, Sn_MR_UDP, 5000, 0); // listen(0); //UDP no need to listen     if( getSn_SR(0) == SOCK_UDP)     {        printf("UDP Mode"); // Check socket status register, it is in UDP status     }     while(getSn_RX_RSR(0) ==0 ); // if got data, RX buffer over 0, while loop will end     printf("got data \r\n");        len = getSn_RX_RSR(0);   // get length of data received     uint8 * TX_BUFFER = (uint8 *) TX_BUF;     uint8 * RX_BUFFER = (uint8 *) RX_BUF; // make transmit and receive buffer     if( len MAX_SIZE)        len = MAX_SIZE; // limit the length of data to be copy into TX/RX buffer as MAX //extern uint16 send(SOCKET s, const uint8 * buf, uint16 len); // Send data (TCP) //extern uint16 recv(SOCKET s, uint8 * buf, uint16 len);    // Receive data (TCP) //extern uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port); // Send data (UDP/IP RAW) //extern uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16 *port); // Receive data (UDP/IP RAW) //sendto and recvfrom are used for UDP, in contrast, TCP uses send and recv function // because TCP is connection oriented, once connection is established, no need to assign send to which or receive from which client     len = recvfrom(0,RX_BUFFER,len, destip, 5000); //receive into RX buffer     printf("the size is %u \r\n",len);             printf("%s",RX_BUFFER); // printf("x",*(RX_BUFFER + 1)); // printf("x",*(RX_BUFFER +2) ); // in case of more than one character, print 0, 1, 2 address     sendto(0,RX_BUFFER,len,destip, 5000); //send RX buffer to client } 如果您有什么疑问请留言或者来信致电均可:wiznetbj@wiznettechnology.com , Tel: 010-84538662,联系人:Jerry ,希望本篇文章可以给您带来帮助,谢谢。
  • 热度 24
    2012-9-5 14:54
    885 次阅读|
    0 个评论
      摘要:针对选煤企业老设备的改造,采用ATmega128单片机和嵌入TCP/IP协议的芯片W5300,成功地解决了老设备的远程监控问题。 作者是来自淮北矿业集团的桑淑丽,发表于《电脑知识与技术:学术交流》2011年第2期。 全文请点击:http://www.cqvip.com/qk/87339a/201104/37002456.html   更多有关W5300的博文请看这里: W5300相关视频http://blog.iwiznet.cn/?page_id=482 培训笔记之WIZnet的主要产品是什么?http://blog.iwiznet.cn/?p=390 W5300E01-ARM用户手册版本1.0(二)http://blog.iwiznet.cn/?p=86 WIZnet员工Richard培训笔记: WIZnet核心技术和产品对比 http://blog.iwiznet.cn/?p=29   也可进入我们的官方网站或博客查看更多。 如果您对WIZnet的产品或是技术感兴趣,请随时与我们联系。 可以直接留言或登录WIZnet官方网站:http://www.iwiznet.cn 公司微博是: http://weibo.com/wiznet2012 公司博客是:http://blog.iwiznet.cn/
  • 热度 20
    2012-9-5 14:50
    903 次阅读|
    0 个评论
      摘要:针对选煤企业老设备的改造,采用ATmega128单片机和嵌入TCP/IP协议的芯片W5300,成功地解决了老设备的远程监控问题。 作者是来自淮北矿业集团的桑淑丽,发表于《电脑知识与技术:学术交流》2011年第2期。 全文请点击: http://www.cqvip.com/qk/87339a/201104/37002456.html   更多有关W5300的博文请看这里: W5300相关视频 http://blog.iwiznet.cn/?page_id=482 培训笔记之WIZnet的主要产品是什么? http://blog.iwiznet.cn/?p=390 W5300E01-ARM用户手册版本1.0(二) http://blog.iwiznet.cn/?p=86 WIZnet员工Richard培训笔记: WIZnet核心技术和产品对比 http://blog.iwiznet.cn/?p=29   也可进入我们的官方网站或博客查看更多。 如果您对WIZnet的产品或是技术感兴趣,请随时与我们联系。 可以直接留言或登录WIZnet官方网站: http://www.iwiznet.cn 公司微博是:  http://weibo.com/wiznet2012 公司博客是: http://blog.iwiznet.cn/
  • 热度 21
    2012-2-25 15:40
    1108 次阅读|
    0 个评论
    这几天,本人正在弄一个HTTP接收器。这的HTTP接收器能连接到互联网和检索任何类型的文件。本人去做一个平台,而这个平台能够使用128K的字节的 闪存的Atmega128芯片。但正如您所看到的,这个平台已经只有有限的资源。 举例来说,如果我下载1兆字节的图片,这是沒可能的存储所有的数据到闪存內的。即使我能够存储所有的数据,但相信也没有液晶显示器来显示图像。为了克服这 种局限性,我想到了一个中串行方式(Serial)去输出所有十六進制(HEX)的数据。通过串行可输出所有在接收到十六進制的数据,然后,使用电脑的终 端程序,再透过COM端口夺得所有的十六进制。利用这种方法,我們可以下载任何文件,而不管文件的大小。那么,问题是我一大堆的十六进制的文件,近似真实 文件般,我如何打开这个文件呢? 现在,十六进制编辑器开始发挥作用了。您第一次使用您最喜爱的十六进制编辑器,并打开一个新的文件,然后,汇入全部十六进制值到十六进制编辑器。一旦这一 步完成,你就应该可以使用您已下载的文件类型,(如文件的.jpg和bmp和mp3)作保存了。   如果您有什么疑问请直接留言也可以登录我们的官网: http://www.wiznettechnology.cn   或者来信: Tel: 86-10-84539974(转166),QQ:2464237212,邮箱:wiznetbj@wiznettechnology.com,联系人:Lily Zhang ,谢谢!
相关资源