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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-03T22:05:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5739&amp;mode</id>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-02-03T22:05:13+01:00</updated>
<published>2014-02-03T22:05:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68281#p68281</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68281#p68281"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68281#p68281"><![CDATA[
Wiem że korzystałeś w Twoim programie z innej biblioteki lcd,dlatego mam parę błędów podczas kompilacji.<br />np:błąd large integer implicitly truncated to unsigned type <br />w tej linijce ??<br />[syntax=c]ICR1 = 200000;  // 20KHz 74[/syntax]<br /><br />I następnie następny błąd kompilacji w tych poniżej linijkach kodu.<br />undefined reference to `lcd_home'<br />undefined reference to `lcd_string_format'<br /><br />[syntax=c]lcd_home();<br />          lcd_string_format(&quot;Dystans: %4.0dmm   &quot;, result);[/syntax]<br /><br />Korzystam z bibiloteki z książki M.K i powiem szczerze że nieweim np. jaką funkcją mam zastąpić &quot;lcd_string_format&quot; ,próbowałem lcd_int czy też lcd_string ale nie działa mi to wcale,jeśli możesz to pomóż mi te linijki Twojego kodu dostosować do mojej bibioteki lcd44780 z książki i przykładów Mirka.K<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 3 lut 2014, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2014-02-03T20:32:57+01:00</updated>
<published>2014-02-03T20:32:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68245#p68245</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68245#p68245"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68245#p68245"><![CDATA[
zerknij do tego tematu : <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic2655.html" >topic2655.html</a><!-- l --><br /><br /><img src="http://forum.atnel.pl/_obrazki/o/58/6142e2bc30a6b202c17f361d9d88b16b.jpg" alt="Obrazek" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 3 lut 2014, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-02-03T20:22:33+01:00</updated>
<published>2014-02-03T20:22:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68242#p68242</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68242#p68242"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68242#p68242"><![CDATA[
Już umiem zmieniać częstotliwość taktowania,popełniałem błąd bo po każdej próbie zmian taktowania po zmienie fusebitów robiłem kompilacje projektu a to był błąd (nie należy tego robić tylko od razu po zmianie wgrać nowo ustawione fusebity-teraz to już wyczaiłem.<br />Ale ok to nie jest temat tego postu,ponieważ po ustawieniu taktowania na 1Mhz raz tylko to zadziałało a po chwili już nie,pewnie w tym programie jest coś nie dopracowane.<br />Proszę o dalsze sugestie co do tego kodu.<br /><br />Proszę jeszcze o sprawdzenie poprawności moich fusebitów dla Atmaga16  16Mhz<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/922/da5e5281bb54701fef182251711a6b2a.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/922/da5e5281bb54701fef182251711a6b2a.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 3 lut 2014, o 20:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-02-02T23:10:55+01:00</updated>
<published>2014-02-02T23:10:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68131#p68131</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68131#p68131"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68131#p68131"><![CDATA[
Przestawiłem na 1Mhz ale niestety raz tylko zadziałao a potem już licznik stoi w miejscu ,ale mam problem z powróceniem do 16Mhz z powrotem,nie potrafię zmienić na 16Mhz pomimo że wybieram to w oknie programu stale jest 1Mhz<br /><br />Podaję screen z moich fusebitów<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/922/368fd2116b1422078696ef3e3522be3b.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/922/368fd2116b1422078696ef3e3522be3b.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 2 lut 2014, o 23:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-02-02T22:35:23+01:00</updated>
<published>2014-02-02T22:35:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68130#p68130</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68130#p68130"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68130#p68130"><![CDATA[
<div class="quotetitle">mirek1968 napisał(a):</div><div class="quotecontent"><br />Niestety nie mam pełnej wersji programu MkAvrCalculator<br /></div> To zgłoś się do <a href="http://mirekk36.blogspot.com/2014/01/bluebook-na-krancach-swiata-konkurs.html"  class="postlink">konkursu</a><br /><br />W eclipse też sobie możesz przestawić:<br /><a href="http://forum.atnel.pl/_obrazki/o/465/6fd59d8bfafefca58824c7978dd3453d.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/465/6fd59d8bfafefca58824c7978dd3453d.jpg" alt="Obrazek" /></a><br />Najpierw odznacz programowanie w zakładce Flash i przejdź do Fuses przestaw radiobutton na direct hex values (1) potem odczytaj to co jest (2), ustaw korzystając z edytora (3) jak na poniższym obrazku:<br /><a href="http://forum.atnel.pl/_obrazki/o/465/11e99e96b3808ca98f3cf7eee39a16dd.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/465/11e99e96b3808ca98f3cf7eee39a16dd.jpg" alt="Obrazek" /></a><br />Zaprogramuj jak zwykle z tym, że teraz to fusebity się zaprogramują i przestaw z powrotem jak było na początku, aby następnym razem programować tylko pamięć flash.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 2 lut 2014, o 22:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-02-02T21:50:04+01:00</updated>
<published>2014-02-02T21:50:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68125#p68125</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68125#p68125"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68125#p68125"><![CDATA[
Niestety nie mam pełnej wersji programu MkAvrCalculator i nie mogę zmienićtaktowania na wewn oscylator 1Mhz a próbowałem programem AVR Burn-O-Mat ten z klei w oknie wyboru programatora nic nie widzi po usb a ja mam programator fizycznie usbasp i znów problem:-(<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 2 lut 2014, o 21:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-02-02T21:45:19+01:00</updated>
<published>2014-02-02T21:45:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68124#p68124</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68124#p68124"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=68124#p68124"><![CDATA[
No tak jest jeszcze linijka:<br />[syntax=c]time=num*256+TCNT0;[/syntax]<br />Nie bardzo wiadomo co z tym teraz zrobić  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> . A jak próby z przestawieniem na 1MHz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 2 lut 2014, o 21:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-01-31T23:14:02+01:00</updated>
<published>2014-01-31T23:14:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67703#p67703</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67703#p67703"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67703#p67703"><![CDATA[
Zmieniłem kod z Twoją sugestią ale niestety nie działa pokazuje na lcd &quot;D stance:000.0c&quot; a w drugim wierszu &quot;i&quot;.<br /><br />Poniżej kod po zmianach.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define BUZZER (1&lt;&lt;PD5) //Aktywacja buzzera na pin PB0<br />#define BUZZER_OFF PORTD  |= BUZZER  //Wyłącznie buzzera<br />#define BUZZER_ON PORTD &amp;= ~ BUZZER //Załączanie buzzera<br /><br />#define uint unsigned int<br />#define uchar unsigned char<br />unsigned int  time=0;<br />unsigned long S=0;<br />uchar  flag =0;<br />volatile int num=0;<br />unsigned char  Range&#91;&#93; =&quot;==Range Finder==&quot;;//LCD1602<br />unsigned char  ASC&#91;&#93; = &quot;0123456789.-M&quot;;<br />unsigned char  table&#91;&#93;=&quot;Distance:000.0cm&quot;;<br />unsigned char  table1&#91;&#93;=&quot;!!! Out of range&quot;;<br />uchar cont;<br /><br /><br />void Conut(void)<br />{<br />if(num&gt;256) <br />{<br />flag=1;<br />num=0;<br />}<br />time=num*256+TCNT0;<br />num=0;<br />TCNT0 = 0; //wyłączenie licznika timer0<br /><br />S=time*17;<br />S=S/10; <br />if((S&gt;=5000)||flag==1||(S&lt;20))<br />{<br />flag=0;<br />S=0;<br />num=0;<br />for(cont=0;cont&lt;16;cont++) lcd_locate(cont,1),lcd_char(table1&#91;cont&#93;);<br />//LCD1602-cont·table1&#91;cont&#93;<br />}<br />else<br />{<br />for(cont=0;cont&lt;16;cont++) lcd_locate(cont,1),lcd_char(table&#91;cont&#93;);//cm<br />lcd_locate(9,1),lcd_char(ASC&#91;S/1000&#93;);<br />lcd_locate(10,1),lcd_char(ASC&#91;(S/100)%10&#93;);<br />lcd_locate(11,1),lcd_char(ASC&#91;(S/10)%10&#93;);<br />lcd_locate(12,1),lcd_char(ASC&#91;10&#93;);<br />lcd_locate(13,1),lcd_char(ASC&#91;S%10&#93;);<br />}<br />}<br /><br />void Timer_Count(void)<br />{<br />TCCR0 |= (1 &lt;&lt; CS01);    // źródłem CLK, preskaler 8<br />while(PINC &amp; (1&lt;&lt;PC1));//µ±RX<br />TCCR0 = 0x00;//wyłączenie timera TCCR0<br />Conut();<br />}<br /><br />/************HC-SR04********************************************/<br />void  StartModule()<br />{<br />uchar i;<br />PORTC |=(1&lt;&lt;PC0);//TX=1-załączenie nadawania TRIG ustawiony na 1<br />for(i=0;i&lt;15;i++);<br />PORTC &amp;=~(1&lt;&lt;PC0);//TX=0-wyłączenie nadawania TRIG ustawiony na 0<br />}<br /><br /><br />int main(void)<br />{<br />DDRD |=BUZZER;//ustawienie rejestru buzzera PD5 jako wyjście<br />BUZZER_OFF; //Wyłącznie buzzera<br /><br />    uint a;<br /><br />DDRC |=(1&lt;&lt;PC0);//było DDRC |=0XFD;<br />DDRC &amp;=~(1&lt;&lt;PC1);//<br /><br />TCNT0 = 0; //inicjalizacja licznika wartością 0 lub reset licznika<br />TIMSK |= (1 &lt;&lt; TOIE0); // aktywne przerwanie overflow (czyli od przepełnienia licznika wartość 255)<br />TCCR0 &amp;= 0x00;//0 było &amp;= 0x00<br />sei();<br /><br />_delay_ms(400);<br />lcd_init();<br />_delay_ms(5);<br />//for(a=0;a&lt;16;a++) lcd_locate(a,0),lcd_char(Range&#91;a&#93;);<br />for(a=0;a&lt;16;a++) lcd_locate(a,1),lcd_char(table&#91;a&#93;);<br />   <br /> while(1)<br />{<br />StartModule();<br />for(a=8000;a&gt;0;a--)<br />{<br />if(PINC &amp; (1&lt;&lt;PC1))//RX==1<br />{<br />Timer_Count();<br />}<br />}<br />}<br />} <br /><br />//############ Procedura obsługi przerwania od przepełnienia timera ############<br /><br />ISR(TIMER0_OVF_vect)<br />{<br />    static uint8_t licznik;<br />    TCNT0 = 0;<br />    ++licznik;<br />    if(licznik &gt; 15) //dodatkowy podział przez 16<br />    {<br />        licznik = 0;<br />        num++;<br />   }<br />}<br /><br />//##############################################################################[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 31 sty 2014, o 23:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-01-31T21:11:59+01:00</updated>
<published>2014-01-31T21:11:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67684#p67684</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67684#p67684"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67684#p67684"><![CDATA[
Najprościej przestawić atmegę na generator wewnętrzny 1MHz.<br /><br />Druga opcja to modyfikacja kodu:<br />[syntax=c]SIGNAL(SIG_OVERFLOW0) //to jest stary sposób obsługi przerwań, po nowemu ISR(TIMER0_OVF_vect)<br />{<br />        static uint8_t licznik;<br />        TCNT0 = 0;<br />        ++licznik;<br />        if(licznik &gt; 15) //dodatkowy podział przez 16<br />        {<br />            licznik = 0;<br />            num++;<br />       }<br />}[/syntax]<br />Należałoby jeszcze zmienić funkcje Delay5Ms i Delay400Ms, ale lepiej zastąpić je _delay_ms(5); i _delay_ms(400);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 31 sty 2014, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-01-30T23:46:53+01:00</updated>
<published>2014-01-30T23:46:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67562#p67562</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67562#p67562"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67562#p67562"><![CDATA[
Mam prośbę,jak znajdzie się Ktoś z konkretną pomocą to zapraszam.<br />Nie chodzi mi o to żeby za mnie pisać poprawiony  kod ,myślę żeby było najlepiej dla mnie żebym pisał tak jak powyżej z czym mam problem(lub mam wątpliwości)  a osoba zainteresowana pomocą pisała by ewentualnie komentarze do moich wpisów lub poprawki ,lub coś w podobny sposób.<br />Pozdrawiam i mam nadzieję na zainteresowanie:-).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 30 sty 2014, o 23:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-01-31T09:57:27+01:00</updated>
<published>2014-01-30T12:17:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67404#p67404</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67404#p67404"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67404#p67404"><![CDATA[
Jeśli dobrze zrozumiałem to w powyższym kodzie przy Atmedze 64 i taktowaniu 1MHz <br />TCCR0 |= (1 &lt;&lt; CS01);  //czyli preskaler na 8<br />jeśli podzielimy 1000000/8/256=488Hz (czy dobrze myślę?)<br /><br />To z tego wynika przerwanie będzie się odbywać co 488 razy na sekundę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 30 sty 2014, o 12:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-01-30T11:22:41+01:00</updated>
<published>2014-01-30T11:22:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67397#p67397</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67397#p67397"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67397#p67397"><![CDATA[
<div class="quotetitle">mirek1968 napisał(a):</div><div class="quotecontent"><br />Ten program był pisany na ATMEGA64 /1MHz  <br />Ja natomiast posiadam Atmegę16 16MHz -proszę o pomoc w dobraniu tych timerów bo u mnie z angielskim słabo i sam sobie nie poradzę.<br /></div><br /><br />hmm a w Bluebooku - szczególnie w rozdziale o multipleksowaniu LED jest po polsku i to cały rozdział jak zabierać się za timery ... Więc może warto to poczytać ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 sty 2014, o 11:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-01-30T10:59:50+01:00</updated>
<published>2014-01-30T10:59:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67393#p67393</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67393#p67393"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67393#p67393"><![CDATA[
Ten program był pisany na ATMEGA64 /1MHz  <br />Ja natomiast posiadam Atmegę16 16MHz -proszę o pomoc w dobraniu tych timerów bo u mnie z angielskim słabo i sam sobie nie poradzę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 30 sty 2014, o 10:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2014-01-30T10:49:13+01:00</updated>
<published>2014-01-30T10:49:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67391#p67391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67391#p67391"/>
<title type="html"><![CDATA[Re: Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67391#p67391"><![CDATA[
Nie wiem na jaki procesor była napisany , jeśli nie zmieniałeś nic to :<br /><br /><br />[syntax=c]//HC-SR04˛2cm--450cm-LCD1602<br />//ATMEGA16<br />//16MHz[/syntax]<br /><br />mówi że był pisany na ATMEGE16  16MHz  wiec nie wiem co chcesz tu zmieniać i poco  <br />Na Swoją Atemegę 16  16Mhz  ??<br /><br />Jeśli jednak ty tam dopisałeś powyższy komentarz  to  ..  zainteresuje się ustawieniami timerów<br />sparawdzasz w nocie i przeliczasz ... nic więcej<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 30 sty 2014, o 10:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-01-29T23:41:26+01:00</updated>
<published>2014-01-29T23:41:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67366#p67366</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67366#p67366"/>
<title type="html"><![CDATA[Obsługą HC-SR04 procesor Atmega16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5739&amp;p=67366#p67366"><![CDATA[
Ja także mam problem z obsługą HC-SR04 na moim procesorze Atmega16 taktowanym kwarcem 16Mhz i proszę o pomoc w modyfikacji kodu tego poniżej,o sam sobie z tym nie poradzę.<br /><br />[syntax=c]//HC-SR04˛2cm--450cm-LCD1602<br />//ATMEGA16<br />//16MHz<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define BUZZER (1&lt;&lt;PD5) //Aktywacja buzzera na pin PB0<br />#define BUZZER_OFF PORTD  |= BUZZER  //Wyłącznie buzzera<br />#define BUZZER_ON PORTD &amp;= ~ BUZZER //Załączanie buzzera<br /><br />#define uint unsigned int<br />#define uchar unsigned char<br />unsigned int  time=0;<br />unsigned long S=0;<br />uchar  flag =0;<br />volatile int num=0;<br />unsigned char  Range&#91;&#93; =&quot;==Range Finder==&quot;;//LCD1602<br />unsigned char  ASC&#91;&#93; = &quot;0123456789.-M&quot;;<br />unsigned char  table&#91;&#93;=&quot;Distance:000.0cm&quot;;<br />unsigned char  table1&#91;&#93;=&quot;!!! Out of range&quot;;<br />uchar cont;<br /><br />/************±5ms************************/<br />void Delay5Ms(void)//<br />{<br />uint TempCyc = 5000;<br />while(TempCyc--);<br />}<br /><br />/*****************±400ms****************/<br />void Delay400Ms(void)<br />{<br />uchar TempCycA = 5;<br />uint TempCycB;<br />while(TempCycA--)<br />{<br />TempCycB=8000;<br />while(TempCycB--);<br />};<br />}<br /><br />void Conut(void)<br />{<br />if(num&gt;256) <br />{<br />flag=1;<br />num=0;<br />}<br />time=num*256+TCNT0;<br />num=0;<br />TCNT0 = 0; <br /><br />S=time*17;<br />S=S/10; <br />if((S&gt;=5000)||flag==1||(S&lt;20))<br />{<br />flag=0;<br />S=0;<br />num=0;<br />for(cont=0;cont&lt;16;cont++) lcd_locate(cont,1),lcd_char(table1&#91;cont&#93;);<br />//LCD1602-cont·table1&#91;cont&#93;<br />}<br />else<br />{<br />for(cont=0;cont&lt;16;cont++) lcd_locate(cont,1),lcd_char(table&#91;cont&#93;);//cm<br />lcd_locate(9,1),lcd_char(ASC&#91;S/1000&#93;);<br />lcd_locate(10,1),lcd_char(ASC&#91;(S/100)%10&#93;);<br />lcd_locate(11,1),lcd_char(ASC&#91;(S/10)%10&#93;);<br />lcd_locate(12,1),lcd_char(ASC&#91;10&#93;);<br />lcd_locate(13,1),lcd_char(ASC&#91;S%10&#93;);<br />}<br />}<br /><br />void Timer_Count(void)<br />{<br />TCCR0 |= (1 &lt;&lt; CS01);    //było |= (1 &lt;&lt; CS01)clk/8<br />while(PINC &amp; (1&lt;&lt;PC1));//µ±RX<br />TCCR0 = 0x00;<br />Conut();<br />}<br /><br />/************HC-SR04********************************************/<br />void  StartModule()<br />{<br />uchar i;<br />PORTC |=(1&lt;&lt;PC0);//TX=1<br />for(i=0;i&lt;15;i++);<br />PORTC &amp;=~(1&lt;&lt;PC0);//TX=0;<br />}<br /><br /><br />int main(void)<br />{<br />DDRD |=BUZZER;//ustawienie rejestru buzzera PD5 jako wyjście<br />BUZZER_OFF; //Wyłącznie buzzera<br /><br />    uint a;<br /><br />DDRC |=(1&lt;&lt;PC0);//było DDRC |=0XFD;<br />DDRC &amp;=~(1&lt;&lt;PC1);//<br /><br />TCNT0 = 0;<br />TIMSK |= (1 &lt;&lt; TOIE0);<br />TCCR0 &amp;= 0x00;//0 było &amp;= 0x00<br />sei();<br /><br />Delay400Ms();<br />lcd_init();<br />Delay5Ms();<br />//for(a=0;a&lt;16;a++) lcd_locate(a,0),lcd_char(Range&#91;a&#93;);<br />for(a=0;a&lt;16;a++) lcd_locate(a,1),lcd_char(table&#91;a&#93;);<br />   <br /> while(1)<br />{<br />StartModule();<br />for(a=8000;a&gt;0;a--)<br />{<br />if(PINC &amp; (1&lt;&lt;PC1))//RX==1<br />{<br />Timer_Count();<br />}<br />}<br />}<br />} <br /><br />SIGNAL(SIG_OVERFLOW0)<br />{<br />TCNT0 = 0;<br />num++;<br />}[/syntax]<br /><br />Proszę o pomoc bo jak na razie nie rozumiem tego przykładowego kodu i pewnie muszę go jakoś dostosować do mojego procesora Atmaga16 taktowanego kwarcem 16MHz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 29 sty 2014, o 23:41</p><hr />
]]></content>
</entry>
</feed>