<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=42&amp;t=13492&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-11-08T17:00:10+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=42&amp;t=13492&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2015-11-08T17:00:10+01:00</updated>
<published>2015-11-08T17:00:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144817#p144817</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144817#p144817"/>
<title type="html"><![CDATA[Re: mlx91614+atmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144817#p144817"><![CDATA[
Prosze zatem podać rozwiązanie dla potomnych ...<br />bo w tym wypadku cały temat kolegi to śmieć ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 8 lis 2015, o 17:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[m-rarcin]]></name></author>
<updated>2015-11-08T16:58:52+01:00</updated>
<published>2015-11-08T16:58:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144815#p144815</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144815#p144815"/>
<title type="html"><![CDATA[Re: mlx91614+atmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144815#p144815"><![CDATA[
PROBLEM ROZWIAZANY<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11622">m-rarcin</a> — 8 lis 2015, o 16:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[m-rarcin]]></name></author>
<updated>2015-11-07T08:14:13+01:00</updated>
<published>2015-11-07T08:14:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144699#p144699</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144699#p144699"/>
<title type="html"><![CDATA[mlx91614+atmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13492&amp;p=144699#p144699"><![CDATA[
Dzień dobry, staram się wgrać i odczytać wartość współczynnika emisyjności. Połączenia są sprawdzone i dobre. Czujnik komunikuje się z mikroprocesorem i można odczytać temperaturę. tak więc problem leży za pewne w programie który napisałem. Pierwszy raz komunikuje się po i2c więc proszę o wyrozumiałość. Poczytałem poradniki i przeanalizowałem inne programy. Za pomoc przewidziana nagroda(która rozwiąże problem).<br /><br /><br />kod :<br />[syntax=basic4gl]$regfile = &quot;m8Adef.dat&quot;<br />$crystal = 1000000<br />$hwstack = 40<br />$swstack = 16<br />$framesize = 32<br />$lib &quot;i2c_twi.lbx&quot;<br /><br />'definicja zmiennych<br />Dim Lowbyt As Byte<br />Dim Highbyt As Byte<br />Dim Pec As Byte<br />Dim Tempdata As Single<br />Dim Napis As String * 5<br />Dim Wsp_e As Single<br />Const Stala_emisyj = 65535<br />Const Tempfactor = 0.02<br />Dim Ar(5) As Byte <br />Dim Crc As Byte<br /><br /><br /><br />'zadeklarowanie nóżek do komunikacji i2c <br />Config Scl = Portc.5                                        <br />Config Sda = Portc.4                                        <br />I2cinit<br />Config Twi = 20000                                          '<br />Twcr = &amp;B00000100 <br /><br /><br /><br />Config Submode = New<br /><br />'funkcja licząca kod PEC dla wielomianu X8+X2+X1+1<br />Function Crc8smb(pdata As Byte) As Byte<br />    Dim Index As Byte<br />    Pdata = Pdata Xor Crc                                   '//xor new byte and old crc to get remainder + byte<br />    For Index = 0 To 7                                      '//check all 8 bits<br />        If Pdata.7 = 1 Then                                 '//if bit 7 is a 1<br />            Shift Pdata , Left                              '//shift it out<br />            Pdata = Pdata Xor $07                           '//then xor with the polynomial<br />        Else                                                '//if the bit is not a 1<br />            Shift Pdata , Left                              '//just shift it out<br />        End If<br />    Next                                                    '//check next bit<br />  Crc8smb = Pdata<br />End Function<br /><br /><br />Do<br /><br />Lowbyt = 0<br />Highbyt = 0<br />Pec = 0<br />Tempdata = 0<br />Wsp_e = 0<br />Crc = 0<br /><br />Ar(2) = 0<br />Ar(3) = 0<br />Ar(4) = 0<br />Ar(5) = 0<br />Wait 2<br /><br />'odczyt temperatury. Działa<br />   I2cstart<br />   I2cwbyte &amp;B10110100                                      '7bit slave addres+0<br />   I2cwbyte &amp;H07                                                 'rejestr odczytu temp<br />   I2crepstart<br />   I2cwbyte &amp;B10110101                                      '7bit slave addres+1<br />   I2crbyte Lowbyt , Ack<br />   I2crbyte Highbyt , Ack<br />   I2crbyte Pec , Nack <br />   I2cstop<br /><br /><br />Cls<br /><br /> 'przetworzenie wyniku pomiaru na zmienna typu single<br /> Tempdata = Highbyte2<br /> Shift Tempdata , Left , 8<br /> Tempdata = Tempdata + Lowbyte2<br /><br />'przetwarzanie wyników pomiaru na stopnie celcjusza<br />   Tempdata = Tempdata * Tempfactor<br />   Tempdata = Tempdata - 0.01<br />   Tempdata = Tempdata - 273.15<br /><br /><br />Napis = Fusing(tempdata , &quot;##.##&quot;)<br />Cls<br />Lcd &quot; Temp Z Prom &quot;<br />Lowerline<br />Lcd &quot;Wynik:&quot; ; Napis2 ; Chr(1) ; &quot;C&quot;<br /><br />Wait 5<br /><br /><br /><br /><br /><br />'odczyt współczynnika e<br />I2cstart<br />I2cwbyte &amp;B10110100                                         'slave adress wr<br />I2cwbyte &amp;H24                                                    'rejestr z wsp emisyjności<br />I2crepstart                                                          'sr<br />I2cwbyte &amp;B10110101                                         'slave adress RD<br />I2crbyte Lowbyt , Ack                                          'data byte low<br />I2crbyte Highbyt , Ack                                         'data byte high<br />I2crbyte Pec , Nack                                             'pec<br />I2cstop<br /><br /><br /><br /> 'przetworzenie wyniku pomiaru na zmienna typu single<br /> Tempdata = 0<br /> Tempdata = Highbyt<br /> Shift Tempdata , Left , 8<br /> Tempdata = Tempdata + Lowbyt<br /><br />'przetwarzanie wyników pomiaru na e<br />  Wsp_e = Tempdata / Stala_emisyj<br /><br /><br />Napis2 = Fusing(wsp_e , &quot;#.##&quot;)<br />Cls<br />Lcd &quot;wsp emisyjnosci&quot;<br />Lowerline<br />Lcd &quot;Wynik:&quot; ; Napis2 ;<br />Wait 5<br /><br /><br /><br /><br />'Zapis_wspolczyinnika_e<br /><br />'test czy PEC dobrze wyliczony<br />Ar(2) = &amp;HB4<br />Ar(3) = &amp;H22<br />Ar(4) = &amp;H07<br />Ar(5) = &amp;HC8<br /><br />Crc = Crc8smb(ar(2))<br />Crc = Crc8smb(ar(3))<br />Crc = Crc8smb(ar(4))<br />Crc = Crc8smb(ar(5))<br /><br />cls<br />Lcd &quot;PEC &quot; ; Crc                                            'wychodzi 72 czyli ok<br />Lowerline<br />Lcd &quot;PEC nota 72 &quot;<br />Wait 5<br />Cls<br /><br />'Obliczanie pec do zmiany wsp em<br />Ar(2) = &amp;HB4<br />Ar(3) = &amp;H24<br />Ar(4) = &amp;H01<br />Ar(5) = &amp;H00<br /><br />Crc = Crc8smb(ar(2))<br />Crc = Crc8smb(ar(3))<br />Crc = Crc8smb(ar(4))<br />Crc = Crc8smb(ar(5))<br /><br />cls<br />Lcd &quot;PEC &quot; ; Crc<br />Lowerline<br />Lcd &quot;wsp e &quot;<br />Wait 5<br />Cls<br /><br />'zapis wsp emisyjnosci<br />Lowbyt = &amp;H01<br />Highbyt = &amp;H00<br /><br />I2cstart<br />I2cwbyte &amp;B10110100<br />I2cwbyte &amp;H24<br />I2cwbyte Lowbyt<br />I2cwbyte Highbyt<br />I2cwbyte Crc<br />I2cstop<br /><br />Loop<br />End[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11622">m-rarcin</a> — 7 lis 2015, o 08:14</p><hr />
]]></content>
</entry>
</feed>