Diky za odpoved.<div><br></div><div>Tak sem to trochu (uplne) predelal podle vasich rad, ale stale mam v jedne veci hokej..</div><div>Jak docilim toho, abych precetl ACK bit, ktery posila slave..? Prepsal sem to do teto podoby:</div>
<div><div><br></div><div>void I2CAck(){</div><div>  DDRB |= (1&lt;&lt;scl);<span class="Apple-tab-span" style="white-space:pre">        </span>        //scl = 0</div><div>  DDRB &amp;= ~(1&lt;&lt;scl);<span class="Apple-tab-span" style="white-space:pre">        </span>// scl=1</div>
<div>  _delay_ms(0.5);</div><div>  acc = PINB;</div><div> _delay_ms(0.5);</div><div>  DDRB |= (1&lt;&lt;scl);<span class="Apple-tab-span" style="white-space:pre">        </span>        //scl = 0</div><div>  _delay_ms(1);</div><div>
 }</div></div><div><br></div><div>ale stale to nefunguje.. Co delam spatne? SDA mam pred volanim funkce v log. 1, abych poznal, ze slave stahne SDA do 0 a tim provede ack.</div><div><br></div><div>Jeste bych se chtel zeptat jak se da precist jen jeden bit na portu. Je mozna varianta, acc = PINB,sda; pripadne jaky typ musi mit acc. Existuje datovy typ jen bit? Nebo se na to musi jit tak ze se precte cely port (acc=PINB) a potom se pres masku testuje vybrany bit ((ack&amp;0x20)==0)).</div>
<div><br></div><div><br></div><div>Diky za kazdou radu</div><div><br></div><div>PS: na mejlu budu zase az zitra (na)vecer..</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><div class="gmail_quote">
2010/3/7 Jan Waclawek <span dir="ltr">&lt;<a href="mailto:konfera@efton.sk">konfera@efton.sk</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I2C zariadenia musia byt implementovane ako otvoreny kolektor, t.j. SDA ani SCL nesmiete aktivne tahat do 1.<br>

<br>
AVRka nemaju &quot;nativny&quot; OC vystup, takze ho musite simulovat &quot;cvicenim&quot; prislusneho bitu v DDRx, pricom PORTx musi ostat stale v 0. Samozrejme musi byt na SDA aj SCL pritomny pullup rezistor. (Dal by sa simulovat aj sucasnym cvicenim PORTx &quot;oproti&quot; DDRx, ale to je podla mna hovadina snazit sa usetrit 2 odpory takymto sposobom, naviac odpory aj tak treba pre definovane spravanie pri resete).<br>

<br>
Potom pochopitelne nemate ani ziadny problem co s citanim.<br>
<br>
wek<br>
<div><div></div><div class="h5"><br>
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</div></div></blockquote></div><br></div>