<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Courier New" size="2"><span style="font-size:11pt;">
<div>Zdravim,</div>
<div><font face="Calibri"> </font></div>
<div>mam tu tento prevodnik na termoclanok MAX6675 (no vlastne nemam este cakam kym mi pride...)</div>
<div><a href="https://www.analog.com/media/en/technical-documentation/data-sheets/MAX6675.pdf">https://www.analog.com/media/en/technical-documentation/data-sheets/MAX6675.pdf</a></div>
<div>komunikacny protokol je na strane 6.</div>
<div><font face="Calibri"> </font></div>
<div>a potom tu je kniznica pre arduino:</div>
<div><a href="https://github.com/adafruit/MAX6675-library/blob/master/max6675.cpp">https://github.com/adafruit/MAX6675-library/blob/master/max6675.cpp</a></div>
<div><font face="Calibri"> </font></div>
<div>(33 a 65 riadok)</div>
<div><font face="Calibri"> </font></div>
<div>for (i = 7; i >= 0; i--) {</div>
<div>    digitalWrite(sclk, LOW);</div>
<div>    delayMicroseconds(10);</div>
<div>    if (digitalRead(miso)) {</div>
<div>      // set the bit to 0 no matter what</div>
<div>      d |= (1 << i);</div>
<div>    }</div>
<div>    digitalWrite(sclk, HIGH);</div>
<div>    delayMicroseconds(10);</div>
<div>  }</div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div>v tej kniznici citaju data ked SCK je 0</div>
<div>lenze podla DS by sa data mali citat ked SCK je 1, nie?</div>
<div>Bit D15 by sa mal podla popisu nastavit po CS nastaveni na 0</div>
<div> </div>
<div>Force CS low to output the first bit on the SO pin. A</div>
<div>complete serial interface read requires 16 clock cycles.</div>
<div>Read the 16 output bits on the falling edge of the clock.</div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div>Takze potom v tom kode citaju ako prvy D14 bit?</div>
<div>A potom tym 16-tym SCK citaju D0 2x?</div>
<div> </div>
<div><font face="Calibri"> </font></div>
<div>Nasiel som este nejaky iny kod pre nejake stm, kde to by zodpovedalo tomu co je v DS</div>
<div>Tak mam z toho nejak zmatok co je spravne..? Ale zrejme ta kniznica arduinova funguje ked sa to pouziva...</div>
<div>Ja si potrebujem napisat vlastny kod, tak ako citat data ked je CLK 0 ci 1? </div>
<div><font face="Calibri"> </font></div>
<div>kod pre STM</div>
<div>=============</div>
<div>void MAX6675_init()</div>
<div>{</div>
<div>          HAL_GPIO_WritePin(CK_MAX_GPIO_Port, CK_MAX_Pin,0);//SACA UN 0 reloj</div>
<div>          HAL_GPIO_WritePin(CS_MAX_GPIO_Port, CS_MAX_Pin, 1); //APAGA el modulo</div>
<div>           HAL_Delay(100);</div>
<div>}</div>
<div> </div>
<div> </div>
<div>uint8_t MAX6675_pulso()</div>
<div>{</div>
<div><font face="Calibri"> </font></div>
<div>// Tu citanie jedneho bitu:</div>
<div>=================================</div>
<div>uint8_t lei;</div>
<div> HAL_GPIO_WritePin(CK_MAX_GPIO_Port, CK_MAX_Pin,1);//SACA UN 1 reloj</div>
<div>  Delay_us(10);</div>
<div>  lei=HAL_GPIO_ReadPin(DAT_MAX_GPIO_Port, DAT_MAX_Pin);// lee el pin</div>
<div>  HAL_GPIO_WritePin(CK_MAX_GPIO_Port, CK_MAX_Pin,0);//SACA UN 0 reloj</div>
<div>  Delay_us(10);</div>
<div>  return lei;</div>
<div>}</div>
<div>==================================</div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div>float MAX6675_lee()</div>
<div>{</div>
<div>uint16_t sensor_dato;</div>
<div> </div>
<div>uint16_t max6675_dato=0;</div>
<div>int8_t cont;</div>
<div> </div>
<div>HAL_GPIO_WritePin(CS_MAX_GPIO_Port, CS_MAX_Pin, 0); //Habilita el modulo</div>
<div> </div>
<div>   for (cont=15;cont>=0;cont--)</div>
<div>    {</div>
<div>      if (MAX6675_pulso()==1)  max6675_dato=max6675_dato | 1<<cont ;</div>
<div> </div>
<div>    }//fin for</div>
<div> </div>
<div>   HAL_GPIO_WritePin(CS_MAX_GPIO_Port, CS_MAX_Pin, 1); //APAGA el modulo</div>
<div>    sensor_dato=(max6675_dato>>3 ); //desplaz 3 veces</div>
<div>    return(((float)sensor_dato*0.25));</div>
<div>}</div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div>dik,</div>
<div>michal.</div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
</span></font>
</body>
</html>