{"id":628,"date":"2017-11-25T20:07:28","date_gmt":"2017-11-25T19:07:28","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=628"},"modified":"2017-12-30T19:48:07","modified_gmt":"2017-12-30T18:48:07","slug":"12-twi_m24c02-library-atmega","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=628","title":{"rendered":"12-TWI_M24C02-Library (ATMega)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=626\" title=\"11-TWI_DS1307-Library (ATMega)\"><span class=\"meta-nav\">\u2190<\/span> 11-TWI_DS1307-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=630\" title=\"13-TWI_PCA9555-Library (ATMega)\">13-TWI_PCA9555-Library (ATMega) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>-diese Library dient zum ansteuern eines <a href=\"https:\/\/www.conrad.at\/de\/speicher-ic-stmicroelectronics-m24c02-wbn6p-dip-8-eeprom-2-kbit-256-x-8-155485.html\" target=\"_blank\" rel=\"noopener\">M24C02 seriellen EEprom IC<\/a>s<br \/>\nvon einem externen Modul das per TWI-Bus an die CPU angeschlossen ist<br \/>\n(z.B. das Modul von myAVR \u201c<a href=\"http:\/\/shop.myavr.de\/index.php?sp=article.sp.php&amp;artID=69\" target=\"_blank\" rel=\"noopener\">myTWI EEprom<\/a>\u201d)<\/p>\n<p>-es koennen bis zu 8 M24C02 gleichzeitig angesteuert werden<br \/>\n(Vorsicht \u2026 alle M24C02 benoetigen eine eindeutige Hadrware-Adresse)<\/p>\n<p>-das externe Modul ist an den TWI-Bus angeschlossen,<br \/>\naus dem Grund wird auch der TWI-Treiber<br \/>\n\u201cMK3_2560_TWI.h\u201d benoetigt<\/p>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void EXT_INIT_24C02(void);\r\nvoid EXT_24C02_WRITE(ADR_24C02 twi_adr, char adresse, char wert);\r\nchar EXT_24C02_READ(ADR_24C02 twi_adr, char adresse);<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/-----------------------------------------------------------------------------\r\n\/\/ Title      : bsp_ub021_mk3_ext_24c02\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Funktion   : Externes TWI-Modul : serielles EEprom (2kBit)\r\n\/\/ Schaltung  : myAVR MK3 + myTWI-AddOn-EEprom\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Prozessor  : ATMega2560\r\n\/\/ Takt       : 16 MHz\r\n\/\/ Sprache    : C\r\n\/\/ Date       : 20.11.2010\r\n\/\/ Version    : 1.1\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_ext_module\/EXT_TWI_24C02.h&gt;\r\n#include &lt;ub_mk3_2560\/MK3_2560_LED.h&gt;\r\n\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Hinweis :\r\n\/\/ &gt; Quick-Jumper Port-L muss gesetzt sein\r\n\/\/ &gt; externes TWI-Modul muss am Stecker rechts unten angeschlossen sein\r\n\/\/ &gt; TWI-Port-Pins (D0+D1) werden benoetigt\r\n\/\/ &gt; Das EEprom muss auf ADR A2h eingestellt sein\r\n\/\/ - das Programm schreibt ein Byte ins externe EEprom,\r\n\/\/   liest es danach wieder aus und zeigt es an den LEDs an\r\n\/\/ - bei einem Fehler wird 0x55 bzw. 0xAA angezeigt\r\n\/\/-----------------------------------------------------------------------------\r\nint main (void)\r\n{\r\n  char n=0;\r\n\r\n  EXT_INIT_24C02(); \/\/ init vom externen EEprom\r\n  MK3_INIT_LED(); \/\/ init der LEDs\r\n\r\n  \/\/ in die Adresse 0x18 wird der Wert 0x31 geschrieben\r\n  EXT_24C02_WRITE(ADR1_24C02,0x18, 0x31);\r\n\r\n  if(EXT_24C02_OK==true) {\r\n    \/\/ wenn das schreiben erfolgreich war\r\n\r\n    \/\/ auslesen der Adresse 0x18\r\n    n=EXT_24C02_READ(ADR1_24C02,0x18);\r\n\r\n    if(EXT_24C02_OK==true) {\r\n      \/\/ Anzeigen des Wertes\r\n      MK3_LED_ZAHL(n);\r\n    }\r\n    else {\r\n      \/\/ 0xAA wird als FEHLER angezeigt\r\n      MK3_LED_ZAHL(0xAA);\r\n    }\r\n  }\r\n  else {\r\n    \/\/ 0x55 wird als FEHLER angezeigt\r\n    MK3_LED_ZAHL(0x55);\r\n  }\r\n\r\n  while (true)\r\n  {\r\n    \/\/ hier wird nichts gemacht\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\/03\/UB_EXT_TWI_24C02_v102.zip\">UB_EXT_TWI_24C02_v102<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>-diese Library dient zum ansteuern eines M24C02 seriellen EEprom ICs von einem externen Modul das per TWI-Bus an die CPU angeschlossen ist (z.B. das Modul von myAVR \u201cmyTWI EEprom\u201d) -es koennen bis zu 8 M24C02 gleichzeitig angesteuert werden (Vorsicht \u2026 &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=628\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":554,"menu_order":12,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[127],"tags":[11,33,9,32,34],"class_list":["post-628","page","type-page","status-publish","hentry","category-atmega","tag-atmega2650","tag-eeprom-ic","tag-library","tag-m24c02","tag-mytwi-eeprom"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/628","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=628"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/628\/revisions"}],"predecessor-version":[{"id":948,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/628\/revisions\/948"}],"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=628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}