{"id":1005,"date":"2016-05-22T10:04:55","date_gmt":"2016-05-22T10:04:55","guid":{"rendered":"http:\/\/wp.andreas.bieri.name\/myblog\/?p=1005"},"modified":"2016-05-22T10:04:55","modified_gmt":"2016-05-22T10:04:55","slug":"eeprom-und-serial-port-testcode","status":"publish","type":"post","link":"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/","title":{"rendered":"EEPROM und Serial Port Testcode"},"content":{"rendered":"<p>F\u00fcr ein Messsystem sollen Kalibierungsdaten in ien EEPROM geschrieben werden. Hier ein paar Code Schnipel f\u00fcr Entwurf und Debugging.<\/p>\n<p><span style=\"font-size: small;\"><span style=\"color: #3366ff;\">\/*<\/span><br \/>\n<span style=\"color: #3366ff;\"> * EEPROM und Serial Port Testprogramme<\/span><br \/>\n<span style=\"color: #3366ff;\"> *<\/span><br \/>\n<span style=\"color: #3366ff;\"> * Int Werte in EEPROM schreiben und lesen<\/span><br \/>\n<span style=\"color: #3366ff;\"> * Formatierte Audgabe auf den Serial Port<\/span><br \/>\n<span style=\"color: #3366ff;\"> * Funktionsweise:<\/span><br \/>\n<span style=\"color: #3366ff;\"> * liest den analogen Eingang 7 und sendet die Werte laufend auf den Serial Port<\/span><br \/>\n<span style=\"color: #3366ff;\"> * an Ausgang 4 ist ein MAX4544 dual 2 Kanal Anlog Switch\/Multiplexer. An einem Eingangspaar liegen 2 von 5V heruntergeteilte Spannungen<\/span><br \/>\n<span style=\"color: #3366ff;\"> * bei Druck auf den Taster wird eine Tabelle aus dem EEPROM ausgelesen<\/span><br \/>\n<span style=\"color: #3366ff;\"> *\/<\/span><br clear=\"all\" \/><\/span><\/p>\n<hr \/>\n<pre><code>#include &lt;EEPROM.h&gt;\n #define BUTTON 3 \/\/ Taster\n #define SWITCH 4 \/\/ Switch MUX\n #define VIN 7 \/\/ analoger Ausgang des MUX\n #define FET 5 \/\/ Schaltausgang\n #define PWM 9 \/\/ PWM Ausgang\n #define LEDPIN 13<\/code><\/pre>\n<pre>\/\/This function will write a 2 byte integer to the eeprom at the specified address and address + 1\n #include \"WProgram.h\"\n void EEPROMWriteInt(int p_address, int p_value);\n unsigned int EEPROMReadInt(int p_address);\n void setup();\n void loop();\n void EEPROMWriteInt(int p_address, int p_value)\n {\n byte lowByte = ((p_value &gt;&gt; 0) &amp; 0xFF);\n byte highByte = ((p_value &gt;&gt; 8) &amp; 0xFF);<\/pre>\n<pre>EEPROM.write(p_address, lowByte);\n EEPROM.write(p_address + 1, highByte);\n }<\/pre>\n<pre>\/\/This function will read a 2 byte integer from the eeprom at the specified address and address + 1\n unsigned int EEPROMReadInt(int p_address)\n {\n byte lowByte = EEPROM.read(p_address);\n byte highByte = EEPROM.read(p_address + 1);<\/pre>\n<pre>return ((lowByte &lt;&lt; 0) &amp; 0xFF) + ((highByte &lt;&lt; 8) &amp; 0xFF00);\n }<\/pre>\n<p>\/\/ short valV[] = {10,-5,-40,-80,-115,-135,-210,-240,-270,-300,-325,-365,-380,-405,-430,-455,-490,-520,-555,-585};<\/p>\n<pre>int i;\n \/\/ int incomingByte;\n void setup()\n {\n Serial.begin(9600);\n pinMode(BUTTON, INPUT);\n digitalWrite(BUTTON, HIGH);\n pinMode(SWITCH, OUTPUT);\n pinMode(FET, OUTPUT);\n digitalWrite(FET, LOW);\n analogWrite(PWM, 50);<\/pre>\n<pre>\/\/ Korrekturdaten fuer die Eingangspannung in 50 Unit Schritten\n \/\/ gespeichert ist die Abweichung der effektiven Spannung in mV vom Wert 20x Unit\n \/\/ valV[0] ist die Abweichung von 0...49 Units<\/pre>\n<pre>\/\/ fuelle 32 Quadratzahlen ein\n \/\/ digitalWrite(ledPin, HIGH);\n \/\/ for (i=0; i&lt;32; i++)\n \/\/ {\n \/\/ EEPROMWriteInt(i * 2, i * i);\n \/\/ }\n }<\/pre>\n<pre>\n void loop()\n {\n digitalWrite(LEDPIN, LOW);<\/pre>\n<pre>\/\/ \/\/ Datenspiegel: sende jedes empfangene Byte zurueck erspart eine ASCII Tabelle.\n \/\/ Leider muss ein Serial.readln etc. selber programmiert werden\n \/\/ if (Serial.available() &gt; 0)\n \/\/ {\n \/\/ incomingByte = Serial.read();\n \/\/ Serial.print(\"I received: \");\n \/\/ Serial.println(incomingByte, DEC);\n \/\/ }<\/pre>\n<pre>\/\/ Messwerte an beiden Eingaengen auslesen\n digitalWrite(SWITCH, LOW);\n Serial.print(analogRead(7));\n digitalWrite(SWITCH, HIGH);\n Serial.print('\\t');\n Serial.println(analogRead(7));\n if (digitalRead(BUTTON)==0)\n {\n \/\/ dann alles ueber die serielle Schnittstelle ausgeben\n \/\/ digitalWrite(LEDPIN, HIGH);\n \/\/ for (i=0; i&lt;32; i++)\n \/\/ {\n \/\/ Serial.print(i, DEC);\n \/\/ Serial.print(\",\");\n \/\/ Serial.println(EEPROMReadInt(2*i), DEC);\n \/\/ delay(100);\n \/\/ }\n Serial.print(\"Taste\");\n digitalWrite(FET, HIGH);\n analogWrite(PWM, 200);\n delay(10000);\n digitalWrite(FET, LOW);\n analogWrite(PWM, 50);\n };<\/pre>\n<pre>digitalWrite(LEDPIN, LOW);\n delay(500);\n }<\/pre>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr ein Messsystem sollen Kalibierungsdaten in ien EEPROM geschrieben werden. Hier ein paar Code Schnipel f\u00fcr Entwurf und Debugging. \/* * EEPROM und Serial Port Testprogramme * * Int Werte in EEPROM schreiben und lesen * Formatierte Audgabe auf den Serial Port * Funktionsweise: * liest den analogen Eingang 7 und sendet die Werte laufend [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[43],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>EEPROM und Serial Port Testcode - Merkbar.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EEPROM und Serial Port Testcode - Merkbar.\" \/>\n<meta property=\"og:description\" content=\"F\u00fcr ein Messsystem sollen Kalibierungsdaten in ien EEPROM geschrieben werden. Hier ein paar Code Schnipel f\u00fcr Entwurf und Debugging. \/* * EEPROM und Serial Port Testprogramme * * Int Werte in EEPROM schreiben und lesen * Formatierte Audgabe auf den Serial Port * Funktionsweise: * liest den analogen Eingang 7 und sendet die Werte laufend [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/\" \/>\n<meta property=\"og:site_name\" content=\"Merkbar.\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-22T10:04:55+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"wp_blogadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/52.29.166.97\/myblog\/#website\",\"url\":\"http:\/\/52.29.166.97\/myblog\/\",\"name\":\"Merkbar.\",\"description\":\"IT, Elektronik und Mathematik\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/52.29.166.97\/myblog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/#webpage\",\"url\":\"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/\",\"name\":\"EEPROM und Serial Port Testcode - Merkbar.\",\"isPartOf\":{\"@id\":\"http:\/\/52.29.166.97\/myblog\/#website\"},\"datePublished\":\"2016-05-22T10:04:55+00:00\",\"dateModified\":\"2016-05-22T10:04:55+00:00\",\"author\":{\"@id\":\"http:\/\/52.29.166.97\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d\"},\"breadcrumb\":{\"@id\":\"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"http:\/\/52.29.166.97\/myblog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"EEPROM und Serial Port Testcode\"}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/52.29.166.97\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d\",\"name\":\"wp_blogadmin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/52.29.166.97\/myblog\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g\",\"caption\":\"wp_blogadmin\"},\"url\":\"http:\/\/52.29.166.97\/myblog\/author\/wp_blogadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EEPROM und Serial Port Testcode - Merkbar.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/","og_locale":"de_DE","og_type":"article","og_title":"EEPROM und Serial Port Testcode - Merkbar.","og_description":"F\u00fcr ein Messsystem sollen Kalibierungsdaten in ien EEPROM geschrieben werden. Hier ein paar Code Schnipel f\u00fcr Entwurf und Debugging. \/* * EEPROM und Serial Port Testprogramme * * Int Werte in EEPROM schreiben und lesen * Formatierte Audgabe auf den Serial Port * Funktionsweise: * liest den analogen Eingang 7 und sendet die Werte laufend [&hellip;]","og_url":"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/","og_site_name":"Merkbar.","article_published_time":"2016-05-22T10:04:55+00:00","twitter_card":"summary","twitter_misc":{"Verfasst von":"wp_blogadmin","Gesch\u00e4tzte Lesezeit":"2 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"http:\/\/52.29.166.97\/myblog\/#website","url":"http:\/\/52.29.166.97\/myblog\/","name":"Merkbar.","description":"IT, Elektronik und Mathematik","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/52.29.166.97\/myblog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"WebPage","@id":"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/#webpage","url":"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/","name":"EEPROM und Serial Port Testcode - Merkbar.","isPartOf":{"@id":"http:\/\/52.29.166.97\/myblog\/#website"},"datePublished":"2016-05-22T10:04:55+00:00","dateModified":"2016-05-22T10:04:55+00:00","author":{"@id":"http:\/\/52.29.166.97\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d"},"breadcrumb":{"@id":"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/52.29.166.97\/myblog\/2016\/05\/22\/eeprom-und-serial-port-testcode\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"http:\/\/52.29.166.97\/myblog\/"},{"@type":"ListItem","position":2,"name":"EEPROM und Serial Port Testcode"}]},{"@type":"Person","@id":"http:\/\/52.29.166.97\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d","name":"wp_blogadmin","image":{"@type":"ImageObject","@id":"http:\/\/52.29.166.97\/myblog\/#personlogo","inLanguage":"de","url":"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g","contentUrl":"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g","caption":"wp_blogadmin"},"url":"http:\/\/52.29.166.97\/myblog\/author\/wp_blogadmin\/"}]}},"_links":{"self":[{"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/posts\/1005"}],"collection":[{"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/comments?post=1005"}],"version-history":[{"count":0,"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/posts\/1005\/revisions"}],"wp:attachment":[{"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/media?parent=1005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/categories?post=1005"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/52.29.166.97\/myblog\/wp-json\/wp\/v2\/tags?post=1005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}