{"id":3275,"date":"2018-04-21T10:47:08","date_gmt":"2018-04-21T08:47:08","guid":{"rendered":"http:\/\/milchyn.cz\/?page_id=3275"},"modified":"2018-04-21T10:47:08","modified_gmt":"2018-04-21T08:47:08","slug":"asm-i2c","status":"publish","type":"page","link":"https:\/\/milchyn.cz\/asm-i2c","title":{"rendered":"ASM &#8211; I2C"},"content":{"rendered":"<h4><strong>i2c-master.asm:<\/strong><\/h4>\n<p><pre>;#ASM###########################################################################################MCH#\n; i2c-master.asm\n; ``````````````\n;\n; I2C KOMUNIKACE TYPU MASTER\n;\n; 2.6.2018\n;---------------------------------------------------------------------------------------------------\n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;___|_&nbsp;&nbsp; | |_____| |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; _|________\n; SDA:&nbsp;&nbsp;&nbsp;&nbsp;| \\__|X|_____|X| ... |__\/ |\n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;___|___ | |&nbsp;&nbsp;_&nbsp;&nbsp;| |&nbsp;&nbsp;&nbsp;&nbsp; | ___|________\n; SCL:&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; \\|_|_\/ \\_|_| ... |\/&nbsp;&nbsp; |\n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;&nbsp;akcept&nbsp;&nbsp; ...&nbsp;&nbsp;stop uvolneno\n;---------------------------------------------------------------------------------------------------\n&nbsp;&nbsp;INCLUDE&lt;P16F73.INC&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; definice konstant procesoru\n\n&nbsp;&nbsp;GLOBAL&nbsp;&nbsp;r_I2C_STATUS, r_I2C_ADR_ZARIZENI\n&nbsp;&nbsp;GLOBAL&nbsp;&nbsp;r_I2C_ADR_DAT_H, r_I2C_ADR_DAT_L, r_I2C_FSR_1.REG, r_I2C_POCET_BYTE\n&nbsp;&nbsp;GLOBAL&nbsp;&nbsp;_I2C_EEPROM_ZAPIS, _I2C_EEPROM_CTENI\n\nMEM_I2C_0&nbsp;&nbsp;UDATA_SHR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; v bance 0\n\nr_I2C_TMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RES 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; pomocny registr\nr_I2C_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RES 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; HLAVICKA - behem prenosu, NULOVY - po zdarnem ukonceni\nr_I2C_ADR_ZARIZENI&nbsp;&nbsp;RES 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; 3 bitova &lt;2~0&gt; adresa ciloveho zarizeni napr. EEPROM\nr_I2C_ADR_DAT_H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RES 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; horni cast adresy dat napr. EEPROM\nr_I2C_ADR_DAT_L&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RES 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; spodni cast adresy dat napr. EEPROM\nr_I2C_FSR_1.REG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RES 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ukazatel na pocatecni datovy registr\nr_I2C_POCET_BYTE&nbsp;&nbsp;&nbsp;&nbsp;RES 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; pocet byte k prenosu ! PREPISUJE SE !\n\n#DEFINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I2C_PORT&nbsp;&nbsp;&nbsp;&nbsp;PORTC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; port pro SDA a SCL\n\n#DEFINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b_I2C_TRIS_SCL&nbsp;&nbsp;I2C_PORT,3&nbsp;&nbsp;; TRIS - namapovany pin pro SCL (synchro)\n#DEFINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b_I2C_PORT_SCL&nbsp;&nbsp;I2C_PORT,3&nbsp;&nbsp;; PORT - namapovany pin pro SCL (synchro)\n\n#DEFINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;I2C_PORT,4&nbsp;&nbsp;; TRIS - namapovany pin pro SDA (data)\n#DEFINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b_I2C_PORT_SDA&nbsp;&nbsp;I2C_PORT,4&nbsp;&nbsp;; PORT - namapovany pin pro SDA (data)\n&nbsp;&nbsp;&nbsp;&nbsp;\nI2C&nbsp;&nbsp;CODE\n\n;###################################################################################################\n; CTENI DAT Z I2C EEPROM PAMETI\n;\n;&nbsp;&nbsp;a) odeslani start bitu k zahajeni spojeni\n;&nbsp;&nbsp;b) odeslani byte hlavicky s adresou EEPROM zarizeni dle (r_I2C_ADR_ZARIZENI) a atributem zapisu\n;&nbsp;&nbsp;c) odeslani byte horni casti adresy dat v EEPROM (r_I2C_ADR_DAT_H)\n;&nbsp;&nbsp;d) odeslani byte dolni casti adresy dat v EEPROM (r_I2C_ADR_DAT_L)\n;&nbsp;&nbsp;e) odeslani start bitu k zahajeni spojeni\n;&nbsp;&nbsp;f) odeslani byte hlavicky s adresou EEPROM zarizeni dle (r_I2C_ADR_ZARIZENI) a atributem cteni\n;&nbsp;&nbsp;g) prijem dat z EEPROM do registru s sdresou v (r_I2C_FSR_1.REG) o poctu (r_I2C_POCET_BYTE)\n;&nbsp;&nbsp;h) odeslani stop bitu k ukonceni spojeni \n;\n;&nbsp;&nbsp;Uspesny zapis je indikovan vynulovanym registrem (r_I2C_STATUS), pri neuspesnem obsahuje hlavicku\n;&nbsp;&nbsp;Registr poctu byte ke cteni (r_I2C_POCET_BYTE) se prepisuje !\n;---------------------------------------------------------------------------------------------------\n_I2C_EEPROM_CTENI:\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_HLAVICKA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; sestaveni hlavicky\n\n&nbsp;&nbsp;; _________________________________________________________\n&nbsp;&nbsp;; ODESLANI 1 BYTE HLAVICKY: ADRESA ZARIZENI + ATRIBUT ZAPIS\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_START_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; zahajeni spojeni, obsazeni sbernice\n\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;MOVLW&nbsp;&nbsp;r_I2C_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; --. \n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;(r_I2C_STATUS) ulozena hlavicka\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;odeslani hlavicky\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; ________________________________\n&nbsp;&nbsp;; ODESLANI 1 BYTE HORNI ADRESY DAT\n\n&nbsp;&nbsp;MOVLW&nbsp;&nbsp;r_I2C_ADR_DAT_H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; --. \n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;(r_I2C_ADR_DAT_H)\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; ________________________________\n&nbsp;&nbsp;; ODESLANI 1 BYTE DOLNI ADRESY DAT\n\n&nbsp;&nbsp;INCF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; (r_I2C_ADR_DAT_L) \n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; _________________________________________________________\n&nbsp;&nbsp;; ODESLANI 1 BYTE HLAVICKY: ADRESA ZARIZENI + ATRIBUT CTENI\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_START_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; zahajeni spojeni, obsazeni sbernice\n\n&nbsp;&nbsp;MOVLW&nbsp;&nbsp;r_I2C_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; --. \n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;(r_I2C_STATUS) ulozena hlavicka\n&nbsp;&nbsp;BSF&nbsp;&nbsp;INDF,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; nastavi pro cteni, bit:0\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; __________\n&nbsp;&nbsp;; PRIJEM DAT\n\n&nbsp;&nbsp;MOVF&nbsp;&nbsp;r_I2C_FSR_1.REG,w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ukazatel na prvni datovy registr\n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;\n\n_I2C_EEPROM_CTENI_SMYCKA:\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_RX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; nacteni 1 byte dat z EEPROM do registru dle FSR\n\n&nbsp;&nbsp;INCF&nbsp;&nbsp;FSR,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ukazatel na nasledujici datovy registr\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_POCET_BYTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PRENESEN PLNY POCET REGISTRU ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_EEPROM_CTENI_SMYCKA&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; ___________\n&nbsp;&nbsp;; STATUS - OK\n\n&nbsp;&nbsp; CLRF&nbsp;&nbsp;r_I2C_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; vynulovani statusu\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; ZAPIS DAT DO I2C EEPROM PAMETI\n;\n;&nbsp;&nbsp;Data do EEPROM jdou prvne do jeho zasobniku a az ukoncenim spojeni STOP BITEM se trvale zapisi,\n; po tuto dobu zapisu cca 4ms EEPROM nekomunikuje.\n;\n;&nbsp;&nbsp;a) odeslani start bitu k zahajeni spojeni\n;&nbsp;&nbsp;b) odeslani byte hlavicky s adresou EEPROM zarizeni dle (r_I2C_ADR_ZARIZENI) a atributem zapisu\n;&nbsp;&nbsp;c) odeslani byte horni casti adresy dat v EEPROM (r_I2C_ADR_DAT_H)\n;&nbsp;&nbsp;d) odeslani byte dolni casti adresy dat v EEPROM (r_I2C_ADR_DAT_L)\n;&nbsp;&nbsp;e) odeslani dat z registru s sdresou v (r_I2C_FSR_1.REG) a naslednych v poctu (r_I2C_POCET_BYTE)\n;&nbsp;&nbsp;f) odeslani stop bitu k ukonceni spojeni a zahajeni cca 4ms interniho zapisu v EEPROM\n;\n;&nbsp;&nbsp;Uspesny zapis je indikovan vynulovanym registrem (r_I2C_STATUS), pri neuspesnem obsahuje hlavicku\n;&nbsp;&nbsp;Registr poctu byte k zapisu (r_I2C_POCET_BYTE) se prepisuje !\n;---------------------------------------------------------------------------------------------------\n_I2C_EEPROM_ZAPIS:\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_HLAVICKA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; sestaveni hlavicky\n\n&nbsp;&nbsp;; _________________________________________________________\n&nbsp;&nbsp;; ODESLANI 1 BYTE HLAVICKY: ADRESA ZARIZENI + ATRIBUT ZAPIS\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_START_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; zahajeni spojeni, obsazeni sbernice\n\n&nbsp;&nbsp;MOVLW&nbsp;&nbsp;r_I2C_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; --. \n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;(r_I2C_STATUS) ulozena hlavicka\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; ________________________________\n&nbsp;&nbsp;; ODESLANI 1 BYTE HORNI ADRESY DAT\n\n&nbsp;&nbsp;MOVLW&nbsp;&nbsp;r_I2C_ADR_DAT_H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; --. \n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;&nbsp;&nbsp;(r_I2C_ADR_DAT_H)\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; ________________________________\n&nbsp;&nbsp;; ODESLANI 1 BYTE DOLNI ADRESY DAT\n\n&nbsp;&nbsp;INCF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; (r_I2C_ADR_DAT_L) \n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; ____________\n&nbsp;&nbsp;; ODESLANI DAT\n\n&nbsp;&nbsp;MOVF&nbsp;&nbsp;r_I2C_FSR_1.REG,w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ukazatel na prvni datovy registr\n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;FSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;\n\n_I2C_EEPROM_ZAPIS_SMYCKA:\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_SDA_TX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; zapis 1 byte dat z registru dle FSR do EEPROM\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;INCF&nbsp;&nbsp;FSR,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ukazatel na nasledujici datovy registr\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_POCET_BYTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PRENESEN PLNY POCET REGISTRU ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_EEPROM_ZAPIS_SMYCKA&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_STOP_BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ukonceni spojeni, uvolneni sbernice\n\n&nbsp;&nbsp;; ___________\n&nbsp;&nbsp;; STATUS - OK\n\n&nbsp;&nbsp; CLRF&nbsp;&nbsp;r_I2C_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; vynulovani statusu\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; PRIJEM 1 BYTE DAT Z I2C DO (INDF)\n;---------------------------------------------------------------------------------------------------\n_I2C_SDA_RX:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n\n&nbsp;&nbsp;; _________________________________________________________\n&nbsp;&nbsp;; PRIJMUTI 8 BITU ZE SERIOVE LINKY SDA DO DATOVEHO REGISTRU\n\n&nbsp;&nbsp;CLRF&nbsp;&nbsp;INDF\n\n&nbsp;&nbsp;MOVLW&nbsp;&nbsp;0x08\n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;r_I2C_TMP\n\n_I2C_SDA_RX_SMYCKA:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 1, AKCEPTACE\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; C: prednastaveni 0\n&nbsp;&nbsp;BTFSC&nbsp;&nbsp;b_I2C_PORT_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? JE PRIJMUTY BIT Z SDA V 1 ??&nbsp;&nbsp;&nbsp;&nbsp; \n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;ANO&#039; C: 1\n&nbsp;&nbsp;RLF&nbsp;&nbsp;INDF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; bit:0 &lt;- C&nbsp;&nbsp;posuvny registr\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? BYLO PRENESENO 8 BITU ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_SDA_RX_SMYCKA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;\n\n&nbsp;&nbsp;; _______________\n&nbsp;&nbsp;; VYSLANI 9. BITU\n\n&nbsp;&nbsp;DECF&nbsp;&nbsp;r_I2C_POCET_BYTE,w\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BTFSS&nbsp;&nbsp;STATUS,Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? JDE O POSLEDNI BYTE ??\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;SDA: -&gt; 0 \n\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_PORT_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 0\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 1, AKCEPTACE\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 1, uvolneni datove linky\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; ODESLANI 1 BYTE DAT Z (INDF) DO I2C \n;---------------------------------------------------------------------------------------------------\n_I2C_SDA_TX:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n\n&nbsp;&nbsp;; __________________________________________________________________\n&nbsp;&nbsp;; ODESLANI 8 BIT DATOVEHO REGISTRU DO SERIOVE LINKY SDA ROTACI VLEVO\n\n&nbsp;&nbsp;MOVLW&nbsp;&nbsp;0x08\n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;r_I2C_TMP\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n_I2C_SDA_TX_SMYCKA:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; C: prednastaveni 0\n&nbsp;&nbsp;BTFSC&nbsp;&nbsp;INDF,7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? JE 7 BIT DATOVEHO REGISTRU V 1 ??&nbsp;&nbsp;&nbsp;&nbsp; \n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;ANO&#039; C: 1\n&nbsp;&nbsp;RLF&nbsp;&nbsp;&nbsp;&nbsp; INDF,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; C &lt;- bit:7~0 &lt;- C&nbsp;&nbsp;posuvny registr \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n\n&nbsp;&nbsp;BTFSS&nbsp;&nbsp;STATUS,C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? 0 ??&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 0\n&nbsp;&nbsp;BTFSC&nbsp;&nbsp;STATUS,C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? JE NACTENY BIT Z SDA V 1 ??&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;ANO&#039; SDA: -&gt; 1\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_PORT_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 0\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 1, AKCEPTACE\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n\n&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? BYLO PRENESENO 8 BITU ??\n&nbsp;&nbsp;GOTO&nbsp;&nbsp;_I2C_SDA_TX_SMYCKA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;\n\n&nbsp;&nbsp;; _______________________________\n&nbsp;&nbsp;; PRIJMUTI A KONTROLA 9. BITU ACK\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 1, uvolneni datove linky&nbsp;&nbsp;\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 1, AKCEPTACE\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;BTFSS&nbsp;&nbsp;b_I2C_PORT_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ?? PROBEHLO ODESLANI BYTE OK ??&nbsp;&nbsp;\n&nbsp;&nbsp;INCF&nbsp;&nbsp;r_I2C_TMP,f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &#039;NE&#039;&nbsp;&nbsp;0x01 -&gt;(r_I2C_TMP)\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_I2C_SCL_DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; SESTAVENI HLAVICKY K NAVAZANI KOMUNIKACE\n;---------------------------------------------------------------------------------------------------\n_I2C_HLAVICKA:\n\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;RLF&nbsp;&nbsp;r_I2C_ADR_ZARIZENI,w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; nacteni adr zarizeni, posun o bit vlevo\n&nbsp;&nbsp;ANDLW&nbsp;&nbsp;b&#039;00001110&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; maska na 3 bitovou adresu zarizeni\n&nbsp;&nbsp;IORLW&nbsp;&nbsp;b&#039;10100000&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; pridani hlavicky pro zapis\n&nbsp;&nbsp;MOVWF&nbsp;&nbsp;r_I2C_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &lt;-&#039;\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; ODESLANI START BITU PRO OBSAZENI SBERNICE A ZAHAJENI SPOJENI : PRI SCL V 1 PREJDE SDA Z 1 DO 0\n;---------------------------------------------------------------------------------------------------\n_I2C_START_BIT:\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 1\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 1, AKCEPTACE\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_PORT_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 0\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_TRIS_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_PORT_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; ODESLANI STOP BITU PRO UKONCENI SPOJENI A UVOLNENI SBERNICE : PRI SCL V 1 PREJDE SDA Z 0 DO 1\n;---------------------------------------------------------------------------------------------------\n_I2C_STOP_BIT:\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_TRIS_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_PORT_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_PORT_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 0\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 1, AKCEPTACE\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SDA: -&gt; 1, uvolneni datove linky\n&nbsp;&nbsp;CALL&nbsp;&nbsp;_I2C_PAUZA\n\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n\n&nbsp;&nbsp;RETURN&nbsp;&nbsp; \n\n;###################################################################################################\n; SCL: 0 -&gt; 1&nbsp;&nbsp;PRECHOD AKCEPTACNI\n;---------------------------------------------------------------------------------------------------\n_I2C_SCL_UP:\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BSF&nbsp;&nbsp;b_I2C_TRIS_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: 0 -&gt; 1\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; SCL: 1 -&gt; 0&nbsp;&nbsp;PRECHOD NAVRATOVY\n;---------------------------------------------------------------------------------------------------\n_I2C_SCL_DOWN:\n\n&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 1\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_TRIS_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: 1 -&gt; 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,RP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; BANKA 0\n&nbsp;&nbsp;BCF&nbsp;&nbsp;b_I2C_PORT_SCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; SCL: -&gt; 0\n\n&nbsp;&nbsp;RETURN\n\n;###################################################################################################\n; PAUZA CELKEM 20 INSTRUKCNICH CYKLU, 20us PRI 4 MHz, 10us PRI 8 MHz, ...\n;---------------------------------------------------------------------------------------------------\n_I2C_PAUZA:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n&nbsp;&nbsp;NOP\n\n&nbsp;&nbsp;RETURN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n\n;###################################################################################################\n&nbsp;&nbsp;END<\/pre><\/p>\n","protected":false},"excerpt":{"rendered":"<p>i2c-master.asm: ;#ASM###########################################################################################MCH# ; i2c-master.asm ; &#8222;&#8222;&#8222;&#8222;&#8222;&#8222;&#8222; ; ; I2C KOMUNIKACE TYPU MASTER ; ; 2.6.2018 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;___|_&nbsp;&nbsp; | |_____| |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; _|________ ; SDA:&nbsp;&nbsp;&nbsp;&nbsp;| \\__|X|_____|X| &#8230; |__\/ | ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;___|___ | |&nbsp;&nbsp;_&nbsp;&nbsp;| |&nbsp;&nbsp;&nbsp;&nbsp; | ___|________ ; SCL:&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; \\|_|_\/ \\_|_| &#8230; |\/&nbsp;&nbsp; | ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;&nbsp;akcept&nbsp;&nbsp; &#8230;&nbsp;&nbsp;stop uvolneno ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &nbsp;&nbsp;INCLUDE&lt;P16F73.INC&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; definice konstant procesoru &nbsp;&nbsp;GLOBAL&nbsp;&nbsp;r_I2C_STATUS, r_I2C_ADR_ZARIZENI &nbsp;&nbsp;GLOBAL&nbsp;&nbsp;r_I2C_ADR_DAT_H, r_I2C_ADR_DAT_L, r_I2C_FSR_1.REG, r_I2C_POCET_BYTE [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":6072,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3275","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ASM - I2C - milchyn.cz<\/title>\n<meta name=\"description\" content=\"ASSEMBLER I2C MASTER SORT asm\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/milchyn.cz\/asm-i2c\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ASM - I2C - milchyn.cz\" \/>\n<meta property=\"og:description\" content=\"ASSEMBLER I2C MASTER SORT asm\" \/>\n<meta property=\"og:url\" content=\"https:\/\/milchyn.cz\/asm-i2c\" \/>\n<meta property=\"og:site_name\" content=\"milchyn.cz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Odhadovan\u00e1 doba \u010dten\u00ed\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/milchyn.cz\/asm-i2c\",\"url\":\"https:\/\/milchyn.cz\/asm-i2c\",\"name\":\"ASM - I2C - milchyn.cz\",\"isPartOf\":{\"@id\":\"https:\/\/milchyn.cz\/#website\"},\"datePublished\":\"2018-04-21T08:47:08+00:00\",\"description\":\"ASSEMBLER I2C MASTER SORT asm\",\"breadcrumb\":{\"@id\":\"https:\/\/milchyn.cz\/asm-i2c#breadcrumb\"},\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/milchyn.cz\/asm-i2c\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/milchyn.cz\/asm-i2c#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Dom\u016f\",\"item\":\"https:\/\/milchyn.cz\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Elektronika\",\"item\":\"https:\/\/milchyn.cz\/elektronika\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PIC Mikrokontrol\u00e9r\",\"item\":\"https:\/\/milchyn.cz\/pic\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"PIC &#8211; ASSEMBLER\",\"item\":\"https:\/\/milchyn.cz\/pic-assembler\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"ASM &#8211; I2C\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/milchyn.cz\/#website\",\"url\":\"https:\/\/milchyn.cz\/\",\"name\":\"milchyn.cz\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/milchyn.cz\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ASM - I2C - milchyn.cz","description":"ASSEMBLER I2C MASTER SORT asm","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":"https:\/\/milchyn.cz\/asm-i2c","og_locale":"cs_CZ","og_type":"article","og_title":"ASM - I2C - milchyn.cz","og_description":"ASSEMBLER I2C MASTER SORT asm","og_url":"https:\/\/milchyn.cz\/asm-i2c","og_site_name":"milchyn.cz","twitter_card":"summary_large_image","twitter_misc":{"Odhadovan\u00e1 doba \u010dten\u00ed":"1 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/milchyn.cz\/asm-i2c","url":"https:\/\/milchyn.cz\/asm-i2c","name":"ASM - I2C - milchyn.cz","isPartOf":{"@id":"https:\/\/milchyn.cz\/#website"},"datePublished":"2018-04-21T08:47:08+00:00","description":"ASSEMBLER I2C MASTER SORT asm","breadcrumb":{"@id":"https:\/\/milchyn.cz\/asm-i2c#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/milchyn.cz\/asm-i2c"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/milchyn.cz\/asm-i2c#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Dom\u016f","item":"https:\/\/milchyn.cz\/"},{"@type":"ListItem","position":2,"name":"Elektronika","item":"https:\/\/milchyn.cz\/elektronika"},{"@type":"ListItem","position":3,"name":"PIC Mikrokontrol\u00e9r","item":"https:\/\/milchyn.cz\/pic"},{"@type":"ListItem","position":4,"name":"PIC &#8211; ASSEMBLER","item":"https:\/\/milchyn.cz\/pic-assembler"},{"@type":"ListItem","position":5,"name":"ASM &#8211; I2C"}]},{"@type":"WebSite","@id":"https:\/\/milchyn.cz\/#website","url":"https:\/\/milchyn.cz\/","name":"milchyn.cz","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/milchyn.cz\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs"}]}},"_links":{"self":[{"href":"https:\/\/milchyn.cz\/index.php?rest_route=\/wp\/v2\/pages\/3275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/milchyn.cz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/milchyn.cz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/milchyn.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/milchyn.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3275"}],"version-history":[{"count":0,"href":"https:\/\/milchyn.cz\/index.php?rest_route=\/wp\/v2\/pages\/3275\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/milchyn.cz\/index.php?rest_route=\/wp\/v2\/pages\/6072"}],"wp:attachment":[{"href":"https:\/\/milchyn.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}