<?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=4&amp;t=5051&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-09T14:43:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5051&amp;mode</id>
<entry>
<author><name><![CDATA[robert_771]]></name></author>
<updated>2013-12-09T14:43:19+01:00</updated>
<published>2013-12-09T14:43:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=60278#p60278</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=60278#p60278"/>
<title type="html"><![CDATA[Re: AT90CANxx - Transmisja z wykorzystaniem biblioteki CAN z]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=60278#p60278"><![CDATA[
Dobra, problem rozwiązany <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Okazało się, że od początku było dobrze, tylko producent w dostarczanym do konwertera oprogramowaniu ma błąd - należu ustawić 2razy większą prędlkość transmisji, a niżeli w AVRce <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br /><br />Miałbym teraz nową prośbę - sprawdzenie kodu do pomiaru napięcia, bo właśnie do tego chcę wykorzystać CANa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />config.h:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define FOSC           8000        // 8 MHz <br />#define F_CPU          (FOSC*1000) <br />#define CAN_BAUDRATE   250        // kbps<br /></div><br /><br />Natomiast cały kod:<br />[syntax=c]#include &quot;config.h&quot;<br />#include &quot;can_lib.h&quot;<br /><br />U8 pomiar_napiecia (uint8_t channel);<br /><br />int main(void)<br />{<br />//ADC<br />ADMUX |= (1&lt;&lt;REFS0) | (1&lt;&lt;REFS1); //napiecie odniesienia = 2.56V<br />ADMUX = (1&lt;&lt;ADLAR);  //8 bitowa dokladnosc<br />ADCSRA |= (1&lt;&lt;ADEN) | (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS0); //enableADC, presklaer = 32<br />ADCSRB = 0x00;<br /><br />//CAN<br />st_cmd_t message;<br /><br />message.cmd = CMD_TX;<br />message.id.std = 225;//ID<br />message.dlc=1;//8 bajtow wiadomosci<br />U8 buffer &#91;message.dlc&#93;;//bufor dlugosci 8<br />message.pt_data = &amp;buffer &#91;0&#93;;//wskaznik na wiadomosc do przeslania przez CAN<br />message.ctrl.rtr = 0;//TX data frame<br />message.ctrl.ide = 0;//CAN standard 2.0A - 11bitowy identyfikator (ID)<br /><br />can_init(1);//inicjalizacja CAN -&gt; mode 1<br /><br /><br />while (1)<br />{<br />buffer&#91;0&#93;=pomiar_napiecia(5);<br /><br />while (can_cmd(&amp;message) != CAN_CMD_ACCEPTED) {}//nie wyjdzie dopoki ramka danych nie jest OK<br />while (can_get_status(&amp;message) == CAN_STATUS_NOT_COMPLETED) {}//nie wyjdzie, dopóki transmisja nie będzie OK<br />}<br /><br />}<br /><br />U8 pomiar_napiecia (uint8_t channel)<br />{<br />ADMUX |= (ADMUX &amp; 0xF8) | channel; //ustawienie kanalu w ADMUX<br />ADCSRA |= (1&lt;&lt;ADSC);//start pomiaru<br /><br />while (ADCSRA &amp; (1&lt;&lt;ADSC)) {}//czeka na koniec poamiru<br /><br />return ADCH;<br />}[/syntax]<br /><br />Proszę o sprawdzenie, ponieważ tym razem monitor CANa się wiesza <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br /><span style="color: #FF0000">Kody wklejamy przy pomocy syntax=c - Różowy J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2182">robert_771</a> — 9 gru 2013, o 14:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robert_771]]></name></author>
<updated>2013-12-07T15:34:17+01:00</updated>
<published>2013-12-07T15:34:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=59999#p59999</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=59999#p59999"/>
<title type="html"><![CDATA[Re: AT90CANxx - Transmisja z wykorzystaniem biblioteki CAN z]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=59999#p59999"><![CDATA[
Programuje przez JTAG'a, ale bez możliwości debuggowania.<br /><br />Zrobiłem prosty test:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">while (can_cmd(&amp;message) != CAN_CMD_ACCEPTED) {}   //nie wyjdzie dopoki ramka danych nie jest OK<br />   LED1_ON;   //zapal diode<br />   <br />   while (can_get_status(&amp;message) == CAN_STATUS_NOT_COMPLETED) {}   //nie wyjdzie, dopóki transmisja nie będzie OK   <br />   _delay_ms(5000);<br />   LED1_OFF;   //zgas diode<br /></div><br /><br />Dioda się zapaliła, później zgasła, więc niby drugi <em>while</em> zwraca <em>CAN_STATUS_COMPLETED</em>, czyli transmisja przebiegła OK.<br /><br />Jednak próbując wsadzić kod w pętlę nieskończoną niby dioda zaczyna migać, czyli teoretycznie wszystko jest ok, jednak na konwerterze zaplaca się czerwona dioda RX ;/<br /><br />Oczywiście CAN Monitor nie widzi żadnych informacji  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br /><br /><br /><br /><br />Jakieś pomysły co może być nie tak <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2182">robert_771</a> — 7 gru 2013, o 15:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robert_771]]></name></author>
<updated>2013-12-07T10:19:00+01:00</updated>
<published>2013-12-07T10:19:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=59970#p59970</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=59970#p59970"/>
<title type="html"><![CDATA[AT90CANxx - Transmisja z wykorzystaniem biblioteki CAN z Atm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5051&amp;p=59970#p59970"><![CDATA[
Witam, <br /><br />próbowałem stworzyć prosty przykład transmisji z użyciem sieci CAN opierając się na gotowej bibliotece stworzonej przez Atmel'a oraz na płytce AVR-CAN z Olimexa. <br />Do podsłuchiwania wiadomości krążących po sieci posiadam konwerter CAN-USB. <br />Konwerter posiada 2 diody - RX oraz TX, które zapalają się na czerwono gdy wystąpi błąd w próbie odebrania czy też transmisji danych. <br />Kierując się owymi diodami mogę stwierdzić, że obecnie błędy nie występują, jednak monitor CANa nic mi nie pokazuje, żadnych ramek nie odbiera. <br /><br />Stąd moja prośba do Was o weryfikację tego prostego kodu, czy też pomoc w rozwiązaniu problemu. <br /><br />Kod: <br />[syntax=c]#include &quot;config.h&quot;<br />#include &quot;can_lib.h&quot;<br /> <br /> <br /> <br />int main(void)<br />{<br /> <br />can_init(0);//inicjalizacja CAN -&gt; mob 0<br /> <br />st_cmd_t message;<br /> <br />//message.handle = 0; // mob=0, <br />message.cmd = CMD_TX;<br />message.id.std = 123;//ID<br />message.dlc=8;//8 bajtow wiadomosci<br />U8 buffer &#91;message.dlc&#93;;//bufor dlugosci 8<br />message.pt_data = &amp;buffer &#91;0&#93;;//wskaznik na wiadomosc do przeslania przez CAN<br />message.ctrl.rtr = 0;//TX data frame<br />message.ctrl.ide = 0;//CAN standard 2.0A - 11bitowy identyfikator (ID)<br /> <br />//while (can_cmd(&amp;message) != CAN_CMD_ACCEPTED);//nie wyjdzie dopoki ramka danych nie jest OK<br /> <br />for (uint8_t licznik =0; licznik&lt;message.dlc; licznik++)//wiadomosc do przeslania (8bajtowa)<br />{<br />buffer&#91;licznik&#93;=licznik*2;<br />}<br /> <br />while (can_get_status(&amp;message) == CAN_STATUS_NOT_COMPLETED);//nie wyjdzie, dopóki transmisja nie będzie skończona<br />}[/syntax]<br /><br />PS: jak trzeba, to mogę załączyć projekt z kodem z AVR Studio 5 <br /><br />Dzięki za pomoc  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  <br /><br />pozdr.<br /><br /><span style="color: #FF0000">Kody wklejamy przy pomocy syntax=c - Różowy J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2182">robert_771</a> — 7 gru 2013, o 10:19</p><hr />
]]></content>
</entry>
</feed>