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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-18T07:10:21+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6550&amp;mode</id>
<entry>
<author><name><![CDATA[Kuźnia]]></name></author>
<updated>2014-04-18T07:10:21+01:00</updated>
<published>2014-04-18T07:10:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=78505#p78505</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=78505#p78505"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=78505#p78505"><![CDATA[
Teraz mi tak przyszło do głowy - Czy podciągnąłeś do Vcc wyjście impulsów. W wentylatorach to jest wyjście typu OC i po podciągnięciu impulsy mają amplitudę 12V. Nie będzie Ci potrzebny wtedy wzmacniacz tylko konwerter poziomów z 12V na 5V. Na płytce prototypowej używam do tego celu konwertera z RS232 na TTL.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2537">Kuźnia</a> — 18 kwi 2014, o 07:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-04-17T23:08:38+01:00</updated>
<published>2014-04-17T23:08:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=78486#p78486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=78486#p78486"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=78486#p78486"><![CDATA[
<div class="quotetitle">Kuźnia napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">cyber90 napisał(a):</div><div class="quotecontent">Nie wiem czy pomiar był prawidłowy, ale wyszło że impulsy mają amplitudę 300-400mV<br /></div><br />robiliśmy na kuźni takie pomiary ale nam wychodzilo inaczej. Dzisiaj tam będę , sprawdzę i odpiszę<br /><div class="quotetitle">cyber90 napisał(a):</div><div class="quotecontent"><br />W jakiś sposób zliczać okres tych impulsów<br /></div><br />okres(T) to 1/f,  ( f (taktowania timera1)=f_cpu/prescaler).Znając okres zegara taktującego licznik1 oraz wartość ICR - która jest przechwyconą ilością(wartość rejestru ICR1) tych okresów(taktowania timera1) pomiędzy  zboczami (np. narastającymi )ustalisz okres pomiędzy zboczami na czujniku Halla. Nie zapomnij o zerowaniu TCNT1 co przerwanie !</div><br /><br />Z powodu że amplituda impulsów z czujnika Halla jest bardzo mała i różna dla różnych prędkości postanowiłem wzmocnić sygnał przez wzmacniacz i to napięcie porównywać w komparatorze. I zliczać te porównania czyli ilość impulsów. Mój kod wygląda następująco: Niestety nie działa tak jak powinien. <br /><br />[syntax=c]static void komparator_init(void)<br />{<br />   ACSR  |= (1&lt;&lt;ACIE);<br />   SFIOR |= (1&lt;&lt;ACME);       //włącza multiplekser  <br />   ADMUX |= (1&lt;&lt;MUX1);       //ADC2 jako wejście ujemne  <br />   ACSR |= (1&lt;&lt;ACBG);       //porównanie z napięciem referencyjnym<br />}<br /> <br />ISR(ANA_COMP_vect)           //obsługa przerwania  <br />{  <br />//if( ~(ACSR &amp; (1&lt;&lt;ACO))) <br />//stan=stan+1;     <br />}[/syntax]<br /><br />Wyświetlam zmienną stan na wyświetlaczu. Coś nie rozumiem do końca. Jaki umieścić kod w przerwaniu od komparatora aby zliczał ilość impulsów (narazie nie istotne czy zbocze narastające czy opadające). Efekty mojego kodu wyglądały tak: gdy napięcie z potencjometru było większe od referencyjnego (1,2V) to cały czas inkrementował zmienną stan, a chodzi mi aby zwiększył ja jeden raz, wtedy napięcie spada i ponownie rośnie i jest większe od ref i wtedy powinien zwiększyć zmienną stan znowu o jeden. A program działa tak że gdy napięcie jest większe od ref cały czas inkrementuje zmienną stan i dopiero przestaje gdy napięcie jest mniejsze. Macie jakieś pomysły?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 17 kwi 2014, o 23:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-04-06T17:52:21+01:00</updated>
<published>2014-04-06T17:52:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=77108#p77108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=77108#p77108"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=77108#p77108"><![CDATA[
Pomiary powtórzyłem i okazuje się że takie wartości amplitudy są faktycznie. Mój pomysł to użycie wzmacniacza i tranzystor NPN pracyjący jako klucz przełączający napięcie Vcc mikrokontrolera. Sprawa jest trochę trudna bo czujnik Halla przy maksymalnych obrotach pokazuje jakieś dziwaczne przebiegu, przy 90% - 0 % jest ok ale nie do końca. Jak się uda wrzucę screny z oscyloskopu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 6 kwi 2014, o 17:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Kuźnia]]></name></author>
<updated>2014-04-04T13:04:04+01:00</updated>
<published>2014-04-04T13:04:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76936#p76936</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76936#p76936"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76936#p76936"><![CDATA[
<div class="quotetitle">cyber90 napisał(a):</div><div class="quotecontent"><br />Nie wiem czy pomiar był prawidłowy, ale wyszło że impulsy mają amplitudę 300-400mV<br /></div><br />robiliśmy na kuźni takie pomiary ale nam wychodzilo inaczej. Dzisiaj tam będę , sprawdzę i odpiszę<br /><div class="quotetitle">cyber90 napisał(a):</div><div class="quotecontent"><br />W jakiś sposób zliczać okres tych impulsów<br /></div><br />okres(T) to 1/f,  ( f (taktowania timera1)=f_cpu/prescaler).Znając okres zegara taktującego licznik1 oraz wartość ICR - która jest przechwyconą ilością(wartość rejestru ICR1) tych okresów(taktowania timera1) pomiędzy  zboczami (np. narastającymi )ustalisz okres pomiędzy zboczami na czujniku Halla. Nie zapomnij o zerowaniu TCNT1 co przerwanie !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2537">Kuźnia</a> — 4 kwi 2014, o 13:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-04-02T13:22:33+01:00</updated>
<published>2014-04-02T13:22:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76726#p76726</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76726#p76726"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76726#p76726"><![CDATA[
<div class="quotetitle">eMCe2 napisał(a):</div><div class="quotecontent"><br />A ja nie widzę gdzie bufor Text jest definiowany np [syntax=c]char Text&#91;10&#93;;[/syntax]<br /></div><br />Buffor jest zdefiniowany, poprostu wrzuciłem najważniejsze fragmenty kodu które dotyczą pomiaru prędkości.<br /><br /><div class="quotetitle">Kuźnia napisał(a):</div><div class="quotecontent"><br />Witam<br /><br />Przede wszystkim nie napisałeś jednej ważnej rzeczy. Mianowicie z jakiego napięcia będzie zasilany wentylator PC bo jeżeli z 12V, to należy amplitudę impulsów wyjściowych wentylatora ograniczyć do poziomu akceptowalnego przez mikrokontroler.<br />Przy wyświetlaniu przydało by się najpierw wykasować starą wartość (albo LCD_CLS() albo nadpisać ją spacjami i z powrotem ustawić lcd_locate() ). Może to powoduje chaotyczne wartości na wyświetlaczu.<br />Wyświetlając zawartość rejestru ICR1 wyświetlasz przechwyconą wartość licznika, która zawiera ilość zliczonych impulsów zegara wewnętrznego AVR-a z preskalerem do momentu pojawienia się impulsu z wentylatora na pinie ICP1. Nie jest to wartość o jaką Ci chodzi bo nie zliczasz ilości impulsów z wentylatora. Jest to przechwytywanie. <br />Pomyśl czy nie należałoby w rejestrze TCCR1B ustawić też bitu CS12 co da Ci możliwość &quot;taktowania&quot; rejestru zliczającego sygnałem zewnętrznym &quot;External Clock Source&quot; na końcówce T1 (PB1). To już niestety nie będzie &quot;tryb przechwytywania&quot; i będziesz np. musiał sam zadbać o wyzerowanie rejestru po pomiarze, bramkowanie itp. A przy pomiarze prędkości czas mierzyć drugim timerem.<br /></div><br /><br />Wentylator jest zasilany napięciem 12V. Nie znalazłem żadnych wiadomości na temat w jaki sposób czujnik Halla podaje impulsy (RPM). Więc skorzystałem z oscyloskopu. Nie wiem czy pomiar był prawidłowy, ale wyszło że impulsy mają amplitudę 300-400mV. Troszkę się zdziwiłem, no ale tak prawdopodobnie jest. Trzeba będzie zamontować jakis wzmacniacz albo klucz tranzystorowy. Bo rozumiem że ATmega32 wykrywa tylko impulsy o amplitudzie równej napięciu zasilania procka? Odnośnie wyświetlacza mam pomiar temperatury zaprogramowany w podobny sposób bez czyszczenia poprzedniej wyświetlanej wartości i działa, więc chyba nie tutaj jest problem, ale wezmę to pod uwagę.<br />Odnoście ICP1 tak wiem że jest to wartość licznika, a nie ilość impulsów. I właśnie na podstawie tej wartości chciałbym wyliczyć prędkość. W jakiś sposób zliczać okres tych impulsów, jeszcze nie przemyślałem do końca tej sprawy. Ważne jest to aby wykonać pomiar przy użyciu jednego timera (timer1 16-bitowy) ponieważ dwa pozostałe wykorzystuję w innym celu. Chciałbym się upewnić że wektor przerwania jest prawidłowy i że dobrze rozumiem zasadę działania. Podczas pojawienia się zbocza narastającego (akceptowanego przez procek) do rejestru ICR1 wpisywana jest wartość licznika. Dzieje się to automatycznie nie trzeba ustawiać, bądź sprawdzać flag?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 2 kwi 2014, o 13:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[eMCe2]]></name></author>
<updated>2014-04-01T20:31:39+01:00</updated>
<published>2014-04-01T20:31:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76657#p76657</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76657#p76657"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76657#p76657"><![CDATA[
A ja nie widzę gdzie bufor Text jest definiowany np [syntax=c]char Text&#91;10&#93;;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1363">eMCe2</a> — 1 kwi 2014, o 20:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Kuźnia]]></name></author>
<updated>2014-03-31T20:20:55+01:00</updated>
<published>2014-03-31T20:20:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76541#p76541</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76541#p76541"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76541#p76541"><![CDATA[
Witam<br /><br />Przede wszystkim nie napisałeś jednej ważnej rzeczy. Mianowicie z jakiego napięcia będzie zasilany wentylator PC bo jeżeli z 12V, to należy amplitudę impulsów wyjściowych wentylatora ograniczyć do poziomu akceptowalnego przez mikrokontroler.<br />Przy wyświetlaniu przydało by się najpierw wykasować starą wartość (albo LCD_CLS() albo nadpisać ją spacjami i z powrotem ustawić lcd_locate() ). Może to powoduje chaotyczne wartości na wyświetlaczu.<br />Wyświetlając zawartość rejestru ICR1 wyświetlasz przechwyconą wartość licznika, która zawiera ilość zliczonych impulsów zegara wewnętrznego AVR-a z preskalerem do momentu pojawienia się impulsu z wentylatora na pinie ICP1. Nie jest to wartość o jaką Ci chodzi bo nie zliczasz ilości impulsów z wentylatora. Jest to przechwytywanie. <br />Pomyśl czy nie należałoby w rejestrze TCCR1B ustawić też bitu CS12 co da Ci możliwość &quot;taktowania&quot; rejestru zliczającego sygnałem zewnętrznym &quot;External Clock Source&quot; na końcówce T1 (PB1). To już niestety nie będzie &quot;tryb przechwytywania&quot; i będziesz np. musiał sam zadbać o wyzerowanie rejestru po pomiarze, bramkowanie itp. A przy pomiarze prędkości czas mierzyć drugim timerem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2537">Kuźnia</a> — 31 mar 2014, o 20:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-03-30T18:53:07+01:00</updated>
<published>2014-03-30T18:53:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76391#p76391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76391#p76391"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76391#p76391"><![CDATA[
Może to nie jest błędem i nie poprawi programu ale na pewno lepiej wygląda<br />jak funkcję sei() wywołasz w głównej funkcji programu  main () gdzieś przed<br />główną pętlą  niż w innej funkcji.<br /><br />Ale na pewno błędem jest to: DDRD=(0&lt;&lt;PORTD6)<br />przesuwanie zera nie służy do wyzerowania bitu w rejestrze DDR<br />jeśli chcesz wyzerować ten bit to powinieneś zrobić to np. tak:<br /><br />DDRD &amp;= ~(1&lt;&lt;PD6);<br /><br />I uwierz mi nie piszę tego złośliwie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 30 mar 2014, o 18:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-03-30T18:40:12+01:00</updated>
<published>2014-03-30T18:40:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76388#p76388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76388#p76388"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76388#p76388"><![CDATA[
<div class="quotetitle">cyber90 napisał(a):</div><div class="quotecontent"><br />DDRD=(0&lt;&lt;PORTD6);<br /></div><br />a to nie ma być czasem tak<br />DDRD |= (1&lt;&lt;PORTD6);<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br />a może raczej tak<br />PORTD |= (1&lt;&lt;PD6);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 30 mar 2014, o 18:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-03-30T18:33:21+01:00</updated>
<published>2014-03-30T18:33:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76387#p76387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76387#p76387"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76387#p76387"><![CDATA[
Poprawiłem kod teraz część odnośnie inicjalizacji timer1 i sposób wyświetlania wygląda tak:<br /><br />[syntax=c]#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt; <br /><br />volatile uint16_t stan;<br />static void timer1_init(void);<br /><br />int main(void)<br />{<br />    timer1_init();<br />    while(1)<br />{<br />                <br />              LCD_LOCATE(7,1);<br />utoa(stan,Text,10);<br />lcd_puts(Text);<br />         }<br />}<br />static void timer1_init(void)<br />{<br />    TCCR1B |= (1&lt;&lt;CS11)|(1&lt;&lt;CS10)|(1&lt;&lt;ICES1)|(1&lt;&lt;ICNC1);<br />    TIMSK|=(1&lt;&lt;TICIE1);<br />    sei();<br />    DDRD=(0&lt;&lt;PORTD6);<br />}<br /><br />ISR(TIMER1_CAPT_vect)<br />{      <br />        stan=ICR1;<br />}[/syntax]<br /><br />Na wyświetlaczu pojawiają się przypadkowe cyfry raz maleją raz rosną. Dodałem do konfiguracji bit odpowiedzialny za filtrowanie wejścia. Nie wiem co może być źle wektor przerwania jest raczej dobrze z tego co wyczytałem i jak zrozumiałem z instrukcji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 30 mar 2014, o 18:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-03-29T23:52:01+01:00</updated>
<published>2014-03-29T23:52:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76302#p76302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76302#p76302"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76302#p76302"><![CDATA[
Ok widzę jutro przetestuję czy to działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 29 mar 2014, o 23:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-03-29T20:18:57+01:00</updated>
<published>2014-03-29T20:18:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76279#p76279</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76279#p76279"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76279#p76279"><![CDATA[
<div class="quotetitle">cyber90 napisał(a):</div><div class="quotecontent"><br />Ok widzę  ale to chyba nie miało wpływu, bo w programie pojawił by mi się błąd przy kompilacji , a pewnie ja tutaj źle przepisałem (CS10) ---&gt; (1&lt;&lt;CS10).<br /></div><br />tutaj i tu TCCR1B |=<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 29 mar 2014, o 20:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-03-29T20:09:52+01:00</updated>
<published>2014-03-29T20:09:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76278#p76278</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76278#p76278"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76278#p76278"><![CDATA[
Ok widzę <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> ale to chyba nie miało wpływu, bo w programie pojawił by mi się błąd przy kompilacji , a pewnie ja tutaj źle przepisałem  <strong>(CS10)  ---&gt; (1&lt;&lt;CS10)</strong>.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 29 mar 2014, o 20:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-03-29T19:34:04+01:00</updated>
<published>2014-03-29T19:34:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76273#p76273</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76273#p76273"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76273#p76273"><![CDATA[
Kolega arturf209 dobrze podpowiada.<br />[syntax=c]TCCR1B |= (1&lt;&lt;CS11)|(1&lt;&lt;CS10)|(1&lt;&lt;ICES1);[/syntax]<br />Porównaj ze swoim zapisem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 29 mar 2014, o 19:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-03-29T19:27:51+01:00</updated>
<published>2014-03-29T19:27:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76272#p76272</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76272#p76272"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76272#p76272"><![CDATA[
Tak zmienna stan jest volatile. Odnośnie tego co napisałem to patrzę i dalej nie wiem co może być źle. Rozumiem że chodzi o bit ICES1:<br /><br />ICES1 = 0 przechwytywanie podczas zbocza opadającego na pinie ICP1, natomiast ICES1 = 1 podczas zbocza narastającego.  Skopiowanie zawartości licznika do rejestru ICR1 następuje podczas wyzwolenie przechwycenia, równocześnie zostaje ustawiona flaga przerwania ICF1 i wykonanie przerwania, o ile system przerwań jest aktywny. Chyba wiem o co Ci chodzi , ale też testowałem przechwytywanie w taki sposób:<br /><br />[syntax=c]ISR(TIMER1_CAPT_vect)<br />{      <br />        if(ICR1 &amp;&amp; 0)<br />        {<br />         stan ++;<br />        }<br />}[/syntax]<br /><br />i też nie działał tak ja powinien, bo rozumiem że podczas podania zbocza narastającego aktualna wartość licznika jest wpisywana do rejestru ICR1 w przerwaniu o wektorze <strong>TIMER1_CAPT_vect)</strong>, czyli na wyświetlaczu powinien jakoś zliczać te impulsy a wszystko dzieje się chaotycznie albo nie zlicza wogóle.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 29 mar 2014, o 19:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[arturf209]]></name></author>
<updated>2014-03-29T13:52:39+01:00</updated>
<published>2014-03-29T13:52:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76237#p76237</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76237#p76237"/>
<title type="html"><![CDATA[Re: Pomiar prędkości obrotów wentylatora sterowanego przez P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76237#p76237"><![CDATA[
[syntax=c]TCCR1B = (1&lt;&lt;CS11)|(CS10)|(1&lt;&lt;ICES1);[/syntax]<br />Przypatrz się <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Czy zmienna stan jest volatile?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=801">arturf209</a> — 29 mar 2014, o 13:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyber90]]></name></author>
<updated>2014-03-29T12:21:45+01:00</updated>
<published>2014-03-29T12:21:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76235#p76235</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76235#p76235"/>
<title type="html"><![CDATA[Pomiar prędkości obrotów wentylatora sterowanego przez PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6550&amp;p=76235#p76235"><![CDATA[
Witam zajmuję się obecnie projektem &quot;Zewnętrzny sterownik wentylatora do komputera PC&quot;, mam już zaprogramowaną prawię większość między innymi pomiar temperatury przez cyfrowy czujnik, obsługa wyświetlacza znakowego, sterowanie PWM wentylatorem, ale stoję na jednej sprawie. Nie potrafię do końca dobrze napisać programu który zliczał by impulsy podawane przez wentylator ( żółty kabel), dwa impulsy na obrót. Czytam czytam dattashet ATmega32 bo taki mikrokontroler używam i w ostateczności jak już programuję to nie działa tak jak chce. Dlatego proszę o wskazówki bądź pomoc. Do pomiaru prędkości obrotowej chciałem użyć timer1 i wejścia ICP1. Jeżeli macie inny pomysł to proszę napisać. Chcąc sprawdzić czy dobrze konfiguruję rejestry napisałem program który zliczał by pojedyncze impulsy program poniżej.<br /><br />[syntax=c]}<br />        TCCR1B = (1&lt;&lt;CS11)|(CS10)|(1&lt;&lt;ICES1);<br />TIMSK|=(1&lt;&lt;TICIE1);<br />sei();<br />DDRD=(0&lt;&lt;PORTD6);<br /><br />while(1)<br />{<br />LCD_LOCATE(0,0);<br />utoa(stan,Text,10);<br />lcd_puts(Text);<br />}<br />}<br /><br />ISR(TIMER1_CAPT_vect)<br />{<br />stan++;<br />}[/syntax]<br /><br />Wkleiłem tylko urywek konfiguracji rejestrów i przerwanie. Cały układ mam na płytce stykowej, gdy podaję napięcie (+5V) na wejście ICP1 stan nie zwiększa się. Gdy układ jest blisko komputera bądź innego urządzenia zaczyna zliczać. Sądzę że to przez zakłócenia, ale tak też nie powinno być. Proszę o jakieś sugestie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3751">cyber90</a> — 29 mar 2014, o 12:21</p><hr />
]]></content>
</entry>
</feed>