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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-12-29T09:39:37+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17141&amp;mode</id>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2016-12-29T09:39:37+01:00</updated>
<published>2016-12-29T09:39:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178466#p178466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178466#p178466"/>
<title type="html"><![CDATA[Re: Obsługa czujnika prędkości wiatru.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178466#p178466"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />A jak chce się obliczyć i wysłać średnią wiatru z 60 sek ? to nie ma co usypiać bo to nie ma sensu no chyba że się mylę bo mało jeszcze wiem.<br /></div><br />Witam! <br />Należy koniecznie mierzyć średnią prędkość i średni kierunek wiatru co wymaga pomiarów non-stop np. na wejściu ICP (prędkość) i ADC (kierunek). Jest to niezbędne do oceny energii, którą niesie wiatr i oceny lokalizacji pod kątem ustawienia wiatraka energetycznego. Pomiar chwilowej prędkości wiatru nie niesie tych informacji i jest wg mnie tylko ciekawostką, którą można ładnie zaprezentować na wykresie.<br /><br />Pozdrawiam<br />avrfun<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 29 gru 2016, o 09:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-12-28T22:48:00+01:00</updated>
<published>2016-12-28T22:48:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178446#p178446</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178446#p178446"/>
<title type="html"><![CDATA[Re: Obsługa czujnika prędkości wiatru.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178446#p178446"><![CDATA[
<div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />Nie obsługiwałbym prędkości wiatru na przerwaniu cały czas, bo to też pewnie wybudza procesor i to niepotrzebnie a timer i tak nie chodzi. Prędkość można zmierzyć zaraz przed wysłaniem:<br />[syntax=c]while(1)<br />{<br />if(wake_up)<br />{<br />LED_ON;<br />PCIFR = (1&lt;&lt;PCIF2); //wpisanie 1 zeruje flage przerwania - tu nie ma bledu tak to sie robi<br />PCICR |= (1&lt;&lt;PCIE2); //dopiero tu odblokowanie przerwan czujnika predkosci wiatru<br />Timer1 = 10; //timer programowy 100Hz<br />while(Timer1)//czeka 1 sekunde - wstrzymuje program glowny, ale przerwania wykonuja robote<br />{<br />}<br /><br />PCICR &amp;= ~(1&lt;&lt;PCIE2)// zablokowanie przerwań czujnika predkosci wiatru<br />//obliczenie predkosci<br />Anemometr_predkosc = Anemometr_obroty * 240;  //1 impuls to 2,4 km/h<br /> Anemometr_obroty = 0;<br /> <br />rf12_txdata(Wyslij(dane), 0);<br /><br />set_sleep_mode(SLEEP_MODE_PWR_DOWN); //select mode<br />wake_up = 0;<br /><br />LED_OFF;<br />}<br />sleep_mode();<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 pikosekundach ]</span></strong><br /><br /><div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent">[syntax=c]PCICR |= (1&lt;&lt;PCIE2);  // Konfiguracja przerwania od czujnika prędkości wiatru<br />EICRA |= (1&lt;&lt;ISC11);<br />PCMSK2 |= (1&lt;&lt;PCINT19);[/syntax]<br /></div><br /><br />EICRA nie ma nic wspólnego z przerwaniami PCINTx.</div><br /><br />A jak chce się obliczyć i wysłać średnią wiatru z 60 sek ? to nie ma co usypiać bo to nie ma sensu no chyba że się mylę bo mało jeszcze wiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 28 gru 2016, o 22:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2016-12-28T22:35:40+01:00</updated>
<published>2016-12-28T22:35:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178443#p178443</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178443#p178443"/>
<title type="html"><![CDATA[Re: Obsługa czujnika prędkości wiatru.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178443#p178443"><![CDATA[
Nie obsługiwałbym prędkości wiatru na przerwaniu cały czas, bo to też pewnie wybudza procesor i to niepotrzebnie a timer i tak nie chodzi. Prędkość można zmierzyć zaraz przed wysłaniem:<br />[syntax=c]while(1)<br />{<br />if(wake_up)<br />{<br />LED_ON;<br />PCIFR = (1&lt;&lt;PCIF2); //wpisanie 1 zeruje flage przerwania - tu nie ma bledu tak to sie robi<br />PCICR |= (1&lt;&lt;PCIE2); //dopiero tu odblokowanie przerwan czujnika predkosci wiatru<br />Timer1 = 10; //timer programowy 100Hz<br />while(Timer1)//czeka 1 sekunde - wstrzymuje program glowny, ale przerwania wykonuja robote<br />{<br />}<br /><br />PCICR &amp;= ~(1&lt;&lt;PCIE2)// zablokowanie przerwań czujnika predkosci wiatru<br />//obliczenie predkosci<br />Anemometr_predkosc = Anemometr_obroty * 240;  //1 impuls to 2,4 km/h<br /> Anemometr_obroty = 0;<br /> <br />rf12_txdata(Wyslij(dane), 0);<br /><br />set_sleep_mode(SLEEP_MODE_PWR_DOWN); //select mode<br />wake_up = 0;<br /><br />LED_OFF;<br />}<br />sleep_mode();<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 pikosekundach ]</span></strong><br /><br /><div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />[syntax=c]PCICR |= (1&lt;&lt;PCIE2);  // Konfiguracja przerwania od czujnika prędkości wiatru<br />EICRA |= (1&lt;&lt;ISC11);<br />PCMSK2 |= (1&lt;&lt;PCINT19);[/syntax]<br /></div><br /><br />EICRA nie ma nic wspólnego z przerwaniami PCINTx.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 28 gru 2016, o 22:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[danielos]]></name></author>
<updated>2016-12-26T19:43:23+01:00</updated>
<published>2016-12-26T19:43:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178284#p178284</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178284#p178284"/>
<title type="html"><![CDATA[Re: Obsługa czujnika prędkości wiatru.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178284#p178284"><![CDATA[
Nigdy nie robiłem wybudzania poprzez watchdoga, ale w swoim projekcie też potrzebowałem energooszczędności i zrobiłem to na trybie IDLE <br />[syntax=c]//**********inicjalizacja uśpienia<br />set_sleep_mode(SLEEP_MODE_IDLE);[/syntax]<br /><br />a uśpienie robię po zakończeniu obiegu pętli głównej while(1).<br /><br />Spróbuj tego sposobu, bo watchdog może resetuje Ci uC, albo usypiesz go tak bardzo, że potem inne rzeczy wariują (to są moje domysły). <br /><br />Hmmm, problemem może być typ uśpienia power down - przy nim nie działa zegar timerów, główny zegar układu i dlatego Ci wszystko wariuje. Zmień tryb uśpienia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=898">danielos</a> — 26 gru 2016, o 19:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2016-12-26T10:35:33+01:00</updated>
<published>2016-12-26T10:35:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178238#p178238</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178238#p178238"/>
<title type="html"><![CDATA[Obsługa czujnika prędkości wiatru.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17141&amp;p=178238#p178238"><![CDATA[
Hej, <br /><br />Mam następujący problem z obsługą czujnika prędkości wiatru. <br />Całą płytkę zasilam z baterii, stąd też potrzeba uśpienia procesora oraz wykonywania pętli głównej co jakiś czas. <br />Procesor to Atmega88 taktowana 8Mhz. <br /><br />Czujnik prędkości podłączony jest pod pin PD3<br /><br />[syntax=c]PCICR |= (1&lt;&lt;PCIE2);  // Konfiguracja przerwania od czujnika prędkości wiatru<br />EICRA |= (1&lt;&lt;ISC11);<br />PCMSK2 |= (1&lt;&lt;PCINT19);[/syntax]<br /><br />[syntax=c]ISR(PCINT2_vect)<br />{<br />if ( WIND_TICK )<br />{<br />Anemometr_obroty ++;<br />}<br />}[/syntax]<br /><br />Sama obsługa czujnika wygląda tak:<br /><br />[syntax=c]void Predkosc_wiatru (void)<br />{<br /><br />if( !Timer1 )  // Wykonanie co 1 sekundę<br />{<br />Timer1 = 10;<br /><br />Anemometr_predkosc = Anemometr_obroty * 240;  //1 impuls to 2,4 km/h<br /><br />Anemometr_obroty = 0;<br />}<br />}[/syntax]<br /><br />Jeśli w pętli głównej wywołam funkcje &quot;Predkosc_wiatru();&quot; Wszystko dziala prawidlowo, pokazuje mi dobrze wartosci. Problem zaczyna się kiedy chce zrobić aby petla wykonywala sie co jakis czas. <br /><br />[syntax=c]while(1)<br />{<br />if(wake_up)<br />{<br />LED_TOG;<br /><br />Predkosc_wiatru ();<br /><br />rf12_txdata(Wyslij(dane), 0);<br /><br />set_sleep_mode(SLEEP_MODE_PWR_DOWN); //select mode<br />wake_up = 0;<br />}<br />sleep_mode();<br />}[/syntax]<br /><br />W tym momencie pętla wykonuje się co 8 sec. ale wartości jakie dostaje z czujnika są z kosmosu... nie wiem od czego to zalezy i czemu się tak dzieje.. <br /><br />[syntax=c]ISR(WDT_vect)<br />{<br />uint16_t counter = 0;<br />if( ++counter &gt; WAKE_UP_PERIOD(WAKE_UP_MIN))<br />{<br />counter = 0;<br />wake_up = 1;<br />}<br />}[/syntax]<br /><br />[syntax=c]// Konfiguracja watchdoga<br />WDTCSR |= (1&lt;&lt;WDCE) | (1&lt;&lt;WDE);  //prescaler change enable<br />WDTCSR = (1&lt;&lt;WDP3) | (1&lt;&lt;WDP0); //set prescaler ~8s<br />WDTCSR |= (1&lt;&lt;WDIE);[/syntax]<br /><br />[syntax=c]#define WAKE_UP_MIN0.1  //co minutę pobudka  0.1 = 8 sekund<br />#define WAKE_UP_PERIOD(min) (min*60/8)<br />volatile uint8_t wake_up;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 26 gru 2016, o 10:35</p><hr />
]]></content>
</entry>
</feed>