{"id":657,"date":"2017-11-26T19:39:41","date_gmt":"2017-11-26T18:39:41","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=657"},"modified":"2017-12-30T19:49:44","modified_gmt":"2017-12-30T18:49:44","slug":"25-mod_eth-library-atmega","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=657","title":{"rendered":"25-MOD_ETH-Library (ATMega)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=655\" title=\"24-TWI_PCF8583-Library (ATMega)\"><span class=\"meta-nav\">\u2190<\/span> 24-TWI_PCF8583-Library (ATMega)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=659\" title=\"26-TWI_KOM-Library (ATMega)\">26-TWI_KOM-Library (ATMega) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>-diese Library dient zum ansteuern eines externen Moduls<br \/>\nmit einem ENC28J60 Ethernet-IC.<\/p>\n<p>-im Moment sind nur die Protokolle \u201cARP,ICMP,UDP\u201d implementiert<\/p>\n<p>-mit einem mitgelieferten PC-Programm k\u00f6nnen Daten per UDP-Protokoll ausgetauscht werden.<\/p>\n<p>-das IC ist an den SPI-Bus angeschlossen,<br \/>\naus dem Grund wird auch der SPI-Treiber<br \/>\n\u201cMK3_2560_SPI.h\u201d ben\u00f6tigt<\/p>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void EXT_INIT_ETH(void);                \/\/ zum init des ENC28J60\r\nvoid EXT_ETH_START(void);               \/\/ Ethernet aktivieren\r\nvoid EXT_ETH_RESET(void);               \/\/ reset vom ENJ28J60\r\nvoid EXT_ETH_POLL(void);                \/\/ Polling-Betrieb : Check ob Daten vorhanden \r\nbool EXT_ETH_UDP_IN(char *ptr);         \/\/ check ob UDP-String empfangen\r\nvoid EXT_ETH_UDP_OUT(const char *ptr);  \/\/ String per UDP senden\r\nbool EXT_ETH_CHECK_HOST(void);          \/\/ check ob Host auf ARP antwortet<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/-----------------------------------------------------------------------------\r\n\/\/ Title      : bsp_ub039_mk3_ext_eth2\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Funktion   : Externes Modul : Ethernet-Modul mit ENC28J60\r\n\/\/ Schaltung  : myAVR MK3 + ETH-Modul\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Prozessor  : ATMega2560\r\n\/\/ Takt       : 16 MHz\r\n\/\/ Sprache    : C\r\n\/\/ Date       : 16.12.2011\r\n\/\/ Version    : 1.0\r\n\/\/ Autor      : UB\r\n\/\/-----------------------------------------------------------------------------\r\n#define F_CPU 16000000\r\n#include &lt;avr\/io.h&gt;\r\n#include &lt;ub_mk3_2560\/MK3_2560_LCD.h&gt;\r\n#include &lt;ub_ext_module\/EXT_MOD_ETH.h&gt;\r\n\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Hinweis : Quick-Jumper Port-C+A muss gesetzt sein\r\n\/\/ - das Ethernet-Modul muss angeschlossen sein\r\n\/\/ - das Programm zeigt die eigene IP-Adresse an\r\n\/\/   und muss auf einen \"PING\" von einem PC antworten\r\n\/\/ - die Anzahl der gesendeten und aller empfangenen Packete\r\n\/\/   wird auch angezeigt\r\n\/\/-----------------------------------------------------------------------------\r\nint main (void)\r\n{\r\n  unsigned int wert=0;\r\n\r\n  MK3_INIT_LCD(); \/\/ init des LCD\r\n  MK3_LCD_CLEAR(); \/\/ LCD loeschen\r\n  MK3_LCD_LIGHT(true); \/\/ beleuchtung einschalten\r\n\r\n  MK3_LCD_STRING_AT(0,0,\"ETH-Modul Test:02\");\r\n\r\n  \/\/ Init vom ENC28J60\r\n  EXT_INIT_ETH();\r\n\r\n  if(ENC28J60.status_ok==true) {\r\n    \/\/ starten vom Ethernet-Modul\r\n    EXT_ETH_START();\r\n\r\n    MK3_LCD_STRING_AT(0,16,\"ENC28J60 OK\");\r\n\r\n    if(USE_ETH_INTMODE==1) {\r\n      MK3_LCD_STRING_AT(0,24,\"Interrupt-Mode\");\r\n    }\r\n    else {\r\n      MK3_LCD_STRING_AT(0,24,\"Polling-Mode\");\r\n    }\r\n    MK3_LCD_STRING_AT(0,40,\"myIP=\");\r\n    MK3_LCD_PRINT_UTYP(ETH_Setting.own_ip[0],DEZ_U0);\r\n    MK3_LCD_PRINT_STRING(\".\");\r\n    MK3_LCD_PRINT_UTYP(ETH_Setting.own_ip[1],DEZ_U0);\r\n    MK3_LCD_PRINT_STRING(\".\");\r\n    MK3_LCD_PRINT_UTYP(ETH_Setting.own_ip[2],DEZ_U0);\r\n    MK3_LCD_PRINT_STRING(\".\");\r\n    MK3_LCD_PRINT_UTYP(ETH_Setting.own_ip[3],DEZ_U0);\r\n  }\r\n  else {\r\n    MK3_LCD_STRING_AT(0,16,\"ENC28J60 Error\");\r\n    MK3_LCD_STRING_AT(0,24,\"&gt; Hardware pruefen !\");\r\n    MK3_LCD_STRING_AT(0,56,\"Modul ohne Funktion\");\r\n  }\r\n\r\n  while (true)\r\n  {\r\n    if(ENC28J60.status_ok==true) {\r\n      \/\/ wenn alles OK\r\n      if(USE_ETH_INTMODE!=1) {\r\n        \/\/ im Polling-Betrieb\r\n        EXT_ETH_POLL();\r\n      }\r\n\r\n      \/\/ Anzahl der TX und RX Packete anzeigen\r\n      wert=ENC28J60.tx_packete;\r\n      MK3_LCD_STRING_AT(0,56,\"TX=\");\r\n      MK3_LCD_PRINT_UTYP(wert,DEZ_U0);\r\n      wert=ENC28J60.rx_packete;\r\n      MK3_LCD_STRING_AT(45,56,\"RX=\");\r\n      MK3_LCD_PRINT_UTYP(wert,DEZ_U0);\r\n      wert=ENC28J60.rx_unknonwn;\r\n      MK3_LCD_STRING_AT(90,56,\"?=\");\r\n      MK3_LCD_PRINT_UTYP(wert,DEZ_U0);\r\n    }\r\n  }\r\n  return 0;\r\n}\r\n<\/pre>\n<p>Hier die Library zum download :<\/p>\n<p><a href=\"wp-content\/uploads\/2013\/02\/UB_EXT_MOD_ETH_v300.zip\">UB_EXT_MOD_ETH_v300<\/a><\/p>\n<h3 id=\"comments-title\">2 Antworten auf <em>25-MOD_ETH-Library (ATMega)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-1174\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1174\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/244824f43a24b308685e9f4f1dae4b55?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\"><a class=\"url\" href=\"http:\/\/--\/\" rel=\"external nofollow\">Dennis<\/a><\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">19. Dezember 2013 um 22:56<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hi deine UB_EXT_MOD_ETH_v300 l\u00e4sst sich leider nicht herunterladen.<\/p>\n<p>Desweiteren habe ich schon deine TWI Lib zum Ansteuerung von mehreren CPU`s verwendet. Klappt soweit sehr gut ich habe lediglich noch das Problem das mein Master (AVR32bit C-Control) leider nicht zu meinen Slav`s (Mega8A) schreiben kann. Weis leider nicht mehr weiter woran das noch liegen k\u00f6nnte den das Lesen vom Slave funktioniert tadellos.<\/p>\n<p>MFG<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1178\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1178\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">20. Dezember 2013 um 08:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>bei mir geht das runterladen. zu deinem Fehler kann ich nichts sagen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>-diese Library dient zum ansteuern eines externen Moduls mit einem ENC28J60 Ethernet-IC. -im Moment sind nur die Protokolle \u201cARP,ICMP,UDP\u201d implementiert -mit einem mitgelieferten PC-Programm k\u00f6nnen Daten per UDP-Protokoll ausgetauscht werden. -das IC ist an den SPI-Bus angeschlossen, aus dem Grund &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=657\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":554,"menu_order":25,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[127],"tags":[11,52,53,9],"class_list":["post-657","page","type-page","status-publish","hentry","category-atmega","tag-atmega2650","tag-enc28j60","tag-ethernet-ic","tag-library"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=657"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/657\/revisions"}],"predecessor-version":[{"id":1228,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/657\/revisions\/1228"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/554"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}