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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-08-21T22:03:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3931&amp;mode</id>
<entry>
<author><name><![CDATA[afrikanerhart]]></name></author>
<updated>2013-08-21T22:03:25+01:00</updated>
<published>2013-08-21T22:03:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46587#p46587</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46587#p46587"/>
<title type="html"><![CDATA[Re: Alarm dźwiękowy i problem z ustawianiem czasu przerwy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46587#p46587"><![CDATA[
Napisałem to w ten sposób, działa ale funkcja wygląda paskudnie.<br />Funkcja wysyła 30 pików potem wchodzi na około minute w stan ciszy.<br /><br />[syntax=c]void Buzzer_brak_wody(unsigned int czas_ciszy, unsigned char dzwiek)<br />{<br />static unsigned char przerwa =0;<br /><br />if( ((znacznik %60)!=0) &amp;&amp; (przerwa ==0) )<br />{<br />if((znacznik %2)==0) <br />WLACZ_ALARM;<br />else<br />WYLACZ_ALARM;<br />}<br />else<br />{<br />WYLACZ_ALARM;<br />przerwa =1;<br />};<br /><br />if((znacznik %650)==0 )<br />{<br />przerwa =0;<br />znacznik =1;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1233">afrikanerhart</a> — 21 sie 2013, o 22:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[banita 17]]></name></author>
<updated>2013-08-21T21:34:16+01:00</updated>
<published>2013-08-21T21:34:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46564#p46564</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46564#p46564"/>
<title type="html"><![CDATA[Re: Alarm dźwiękowy i problem z ustawianiem czasu przerwy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46564#p46564"><![CDATA[
Tak jak lemosek pisze. Może wyglądać to np tak:<br /><br /><br /><br /><br />[syntax=c]if(((PAIN &amp; SENSOR_MIN)==0) &amp;&amp; (!licznik ))<br />        {<br />        licznik = 100;<br />            PCOUT &amp;= ~LEVEL_MAX;<br />            PCOUT |= LEVEL_MIN;<br />            Buzzer_brak_wody(100,20);<br />        }<br />        else WYLACZ_ALARM;<br /><br /><br /><br /><br /><br /><br /><br />ISR(nazwa przerwania w zaleznosci od procka i timera)<br />{<br />static uint8_t licznik = 100;<br />/*<br /> * a wartosc licnzika dobrac trzeba  w zaleznosci od czestotliwosci przerwan<br /> */<br /><br />if(licznik) licznik--;<br />}[/syntax]<br /><br /><br />P.S. Nie wiem jakie masz taktowanie i ustawiony timer ale to na takiej zasadzie powinno działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=279">banita 17</a> — 21 sie 2013, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lemosek]]></name></author>
<updated>2013-08-21T16:13:19+01:00</updated>
<published>2013-08-21T16:13:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46531#p46531</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46531#p46531"/>
<title type="html"><![CDATA[Re: Alarm dźwiękowy i problem z ustawianiem czasu przerwy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46531#p46531"><![CDATA[
Witam, <br />To jest bardzo proste <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Jeśli masz timer sprzętowy to stwórz sobie zmienną i ją inkrementuj z przerwaniu. Teraz w programie robisz pętlę if mniejsza wartość zmiennej od jakieś wartości to uruchamiasz serię impulsów. Jeśli wartość większa to wylaczasz buzer i inkrementujesz aż minie przykładowo minuta. Wtedy zerujesz zmienną i rozpoczyna się od początku sekwencja.<br /><br />Pozdrawiam <br />R.L.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=426">Lemosek</a> — 21 sie 2013, o 16:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[afrikanerhart]]></name></author>
<updated>2013-08-21T15:23:07+01:00</updated>
<published>2013-08-21T15:23:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46525#p46525</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46525#p46525"/>
<title type="html"><![CDATA[Alarm dźwiękowy i problem z ustawianiem czasu przerwy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3931&amp;p=46525#p46525"><![CDATA[
Robię w złożeniu prosty układzik do sygnalizacji poziomu cieczy do swojego samochodu. <br />Natrafiłem na banalny problem nad którym głowię się na tyle dlugo że aż postanowiłęm napisać na forum.<br /><br />Chodzi o to że, uruchamia mi się alarm dźwiękowy, to mi ładnie działa. Natomiast nie mogę zaprogramować przedziału czasu miedzy kolejnymi uruchomieniami alarmu.<br /><br />Wygląda to tak że:<br />1) na buzer idzie seria impulsów które go włączają i wyłączają na przemian.<br />2) Chce zrobić żeby poszła taka paczka impulsów potem przerwa powiedzmy 1 minuta i znowu paczka. <br /><br />Kod do generacji dźwięku wygląda tak :<br />znacznik - to zmienna zwiększająca wartość w przerwaniu od timera sprzętowego.<br /><br />[syntax=c]if((znacznik %20)!=0)<br />{<br />if((znacznik %2)==0) <br />WLACZ_ALARM;<br />else<br />WYLACZ_ALARM;<br />}[/syntax]<br /><br />Ten fragment kodu jest częścia funkcji odpowiedzialnej za wykrywanie poziomu płynu.<br />[syntax=c]void Wskaznik_plynu(void)<br />{<br />if((PAIN &amp; SENSOR_MIN)==0)<br />{<br />PCOUT &amp;= ~LEVEL_MAX;<br />PCOUT |= LEVEL_MIN;<br />Buzzer_brak_wody(100,20);<br />}<br />else<br />WYLACZ_ALARM;<br /><br />if((PAIN &amp; SENSOR_SRE)==0)<br />{<br />PCOUT &amp;= ~LEVEL_MAX;<br />PCOUT |= LEVEL_MID;<br />WYLACZ_ALARM;<br />}<br /><br />if((PAIN &amp; SENSOR_MAX)==0)<br />{<br />PCOUT |= LEVEL_MAX;<br />WYLACZ_ALARM;<br />}<br />}[/syntax]<br /><br />Napisałem to bez użycia przerwań bo akurat tak było wygodniej.<br />Fizycznie do procka podłaczone są 3 elektrody + elektroda masy. Woda zamyka obwód i palą się diody. <br /><br />Jak w programie głownym napisać kod żeby dźwięk był na przykład tak: seria pików + 1minuta przerwy .... seria pików.<br />Niby to proste jak drut a piszę już chyba ze 20 wersję kodu i nie działa jak trzeba.<br /><br /><span style="color: #FF0000">Kod wstawiamy przy pomocy syntax=c - Różowy J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1233">afrikanerhart</a> — 21 sie 2013, o 15:23</p><hr />
]]></content>
</entry>
</feed>