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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-05T21:24:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13776&amp;mode</id>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2015-12-05T21:24:49+01:00</updated>
<published>2015-12-05T21:24:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13776&amp;p=147143#p147143</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13776&amp;p=147143#p147143"/>
<title type="html"><![CDATA[Re: Funkcja obsługująca buzzer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13776&amp;p=147143#p147143"><![CDATA[
Ja uruchamiam buzzera w przerwaniu timera. W kodzie wpisuję np. &quot;TimerBuz=100;&quot; . No, ale takie bajery jak ilość powtórzeń dopiero mam w planach na przyszłość <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /> Przykładowy kod:<br />[syntax=c]n = TimerBuz;<br /> if (n) {TimerBuz = --n; BUZ_ON;} //pikanie w menu<br /> else BUZ_OFF;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 5 gru 2015, o 21:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoreX]]></name></author>
<updated>2015-12-05T20:22:18+01:00</updated>
<published>2015-12-05T20:22:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13776&amp;p=147139#p147139</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13776&amp;p=147139#p147139"/>
<title type="html"><![CDATA[Funkcja obsługująca buzzer]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13776&amp;p=147139#p147139"><![CDATA[
Cześć, <br />piszę mały programik i prosiłbym o weryfikację pomysłu obsługi buzzera,<br />założenia:<br />-niezależne działanie buzzera od programu (nieblokowanie)<br />-ustawienie czasu &quot;time&quot; (na który załączany jest buzzer)<br />-ustawienie czasu &quot;break_time&quot; (na który jest wyłączany buzzer)<br />-ustawienie ilości &quot;count&quot; (ilość powtórzeń)<br /><br />-Timer2 klika co 10ms<br /><br />Po chwili powstał następujący kod:<br />[syntax=c]#define BUZZER (1&lt;&lt;PA1)<br />#define BUZZER_ON PORTA |= BUZZER // STAN WYSOKI NA PA1<br />#define BUZZER_OFF PORTA &amp;= ~BUZZER // STAN NISKI NA PA1<br />#define BUZZER_STATUS (PINA &amp; BUZZER)<br /><br />uint8_t time;<br />uint8_t break_time;<br />uint8_t count;<br /><br />void buzzer(void)<br />{<br />if(!time)<br />time = 20;<br />if(!break_time)<br />break_time = 20;<br />if(count&gt;0)<br />{<br />if(!BUZZER_STATUS &amp;&amp; !Timer2) // jeśli buzzer wyłączony<br />{<br />if(!Timer2)<br />{<br />Timer2 = time; //włączamy buzzer na czas time<br />BUZZER_ON;<br />}<br />}<br />else if(!Timer2)//jeśli buzzer włączony oraz minał czas time<br />{<br />if(!Timer2)<br />{<br />Timer2 = break_time; //wyłączamy buzzer na czas break_time<br />BUZZER_OFF;<br />count-=1;<br />}<br /><br />}<br />}<br />}[/syntax]<br /><br />Moja funkcja wywoływana jest co &quot;obrót&quot; pętli głównej, wszystko działa zgodnie z założeniami, jest jednak jedna rzecz która nie do końca się mi podoba - aby &quot;ustawić&quot; buzzer mam drugą funkcję która zmienia parametry (time, break_time, count)<br />i wywoływana jest w miejscu w którym chce włączyć buzzer,<br />Proszę o konstruktywną krytykę do funkcji, co można uprościć, ulepszyć?<br /><br />Pozdrawiam<br />KoreX<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=229">KoreX</a> — 5 gru 2015, o 20:22</p><hr />
]]></content>
</entry>
</feed>