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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=22442&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-30T07:21:50+01:00</updated>
<published>2019-10-30T07:21:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222785#p222785</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222785#p222785"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222785#p222785"><![CDATA[
No to pochwal się efektem końcowym <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />No i cóż to za rzecz jedna banalna Cię denerwuje? Może wspólnymi siłami ją ogarniemy <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=1922">SylwekK</a> — 30 paź 2019, o 07:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-26T22:46:12+01:00</updated>
<published>2019-10-26T22:46:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222708#p222708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222708#p222708"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222708#p222708"><![CDATA[
Nie sprawdziłeś mojego programu, a oceniasz. Gdybyś go wypróbował wiedział byś, że mam rację i o co mi chodzi.<br />Masz ograniczy czas na korektę, gdy on minie to ponowny klik znów rozpoczyna liczenie. Można oczywiście zmodyfikować program i wydlużać imtetwał trzecim klikiem, ale wydaje mi się to trochę bez sensu - nie wiem jakie będzie zastosowanie tego urządzenia. <br />Jeszcze raz apeluję abyś przetestował mój program inaczej uznam, że po prostu straciłem czas próbując Ci pomoc, a jedyną pociechą będzie, że ktoś inny może wykorzysta ten algorytm do jakiejś wycieraczki samochodowej, itp...<br />Program zawsze możesz zmodyfikować jak już będziesz wiedział jak się zachowuje <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=1922">SylwekK</a> — 26 paź 2019, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-25T17:21:02+01:00</updated>
<published>2019-10-25T17:21:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222683#p222683</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222683#p222683"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222683#p222683"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Co masz na myśli z &quot;korektą czasu tylko w dół&quot;?<br /></div><br />Wypróbuj program <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=1922">SylwekK</a> — 25 paź 2019, o 17:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-24T21:14:46+01:00</updated>
<published>2019-10-24T21:14:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222671#p222671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222671#p222671"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222671#p222671"><![CDATA[
No dobra, widzę, że coś próbujesz. Poniżej moja działająca propozycja na attiny13 - tap z możliwością korekty czasu (oczywiście tylko w dół bo to wynika z logiki pracy takiego układu).<br />Dodałem sporo komentarzy, ale jak czegoś nie będziesz rozumiał to pytaj. Zachęcam do szczegółowej analizy tego programiku. Można go napisać na kilka sposobów, np. z wykorzystaniem maszyny stanów jednak obrałem drogę jaką zasugerowałem już wcześniej.<br /><br />[syntax=c]/*<br /> * Tap-migadło z możliwością korekty interwału po jego zatwierdzeniu<br /> *<br /> *  Created on: 24 paź 2019<br /> *      Author: SylwekK<br /> *<br /> *      Attiny13<br /> *      9,6Mhz<br /> */<br /><br /><br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />uint8_t tryb=1, tempo, memtempo=10, poprawka;//wartość 10 (10x100ms) to domyślna wartość interwału po włączeniu zasilania<br />uint16_t  o_key;<br />volatile uint8_t timer_interwal, timer_blysk, tim_poprawka;<br /><br />#define KLAWISZ(PINB &amp; 1&lt;&lt;PB0)//przykładowy klawisz<br />#define LED_ON PORTB |= (1&lt;&lt;PB1)//jakiś led<br />#define LED_OFF PORTB &amp;= ~(1&lt;&lt;PB1)// --//--<br />#define LED_ON2 PORTB |= (1&lt;&lt;PB2)//jakiś inny led<br />#define LED_OFF2 PORTB &amp;= ~(1&lt;&lt;PB2)// --//--<br /><br />#define CZAS_BLYSK 50//to przykładowa wartość trwania błysku (tu 50ms)<br /><br />//*******************************************************************************<br />int main(void)<br />{<br />  DDRB = 0b00000110;//przykładowy port do użytych definicji<br />  PORTB = 0b00000001;//podciągnięcie wejścia<br /><br />  //ustawienie przerwań<br />  TCCR0A |= (1&lt;&lt;WGM01); //CTC<br />  TCCR0B |= (1&lt;&lt;CS00)|(1&lt;&lt;CS01);//Prescale 64<br />  TIMSK0 |= (1&lt;&lt;OCIE0A);//zezwolenie na przerwanie CompareMatch<br />  OCR0A=149;            //1khz przy 9,6Mhz /64<br /><br />  //----------<br />  <br />  sei();<br />  while(1)<br />    {<br />      //-------------------------<br /><br />      if(!KLAWISZ) {if(o_key &lt; 65535) o_key++;} else o_key = 0;//odczyt klawisza i...<br />      if(o_key == 15000)//eliminator drgań styków//...przekazanie jego stanu po ustabilizowaniu<br />{<br />  if(!poprawka) tryb ^= 1;<br /><br />  if(!tryb)//0-zliczanie, 1-odtwarzanie<br />    {<br />      timer_blysk = CZAS_BLYSK;<br />      tempo = 0;<br />      memtempo = 0;<br />      timer_interwal = 0;<br />    }<br />  else<br />    {<br />      //przy tak wolnym taktowaniu przerwań dla zliczania interwału (czyli tu co 100ms) warto dodać poniższe ograniczenie (parametr można<br />      //dostosować do własnych potrzeb), bo może się zdażyć, że przycisk zostanie wciśnięty dwukrotnie w czasie poniżej 100ms i wtedy LED<br />      //będzie świecił ciągle<br />      if(timer_interwal &lt; 2) timer_interwal = 2;//zabezpieczenie przed zbyt małą wartością interwału (2=200ms)<br />      if(tim_poprawka &lt; 2) tim_poprawka = 2;//zabezpieczenie przed zbyt małą wartością interwału (2=200ms)<br />      //<br />      memtempo = tempo;<br />      timer_interwal = 0;<br />      if(poprawka) memtempo = tim_poprawka;<br />      poprawka = 3;//3 - tyle mignięć licząc od zatwierdzenia interwału do wyłączenia możliwości zmiany interwału (włącznie)<br />    }<br />}<br /><br /><br />      //-------------------------<br /><br />      if(!tryb)//zliczanie interwału<br />{<br />  if(!timer_interwal)<br />    {<br />      timer_interwal = 1;<br />      tempo ++;<br />      if(tempo == 255) {tryb = 1; memtempo = tempo; poprawka = 3;}//maksymalny czas dla interwału upłynął<br />    }<br />}<br />      else//błyskanie z zapamiętanym interwałem<br />{<br />  if(!timer_interwal)<br />    {<br />      timer_blysk = CZAS_BLYSK;<br />      timer_interwal = memtempo;<br />      tim_poprawka = 0;<br />      if(poprawka &gt; 0) poprawka --;<br />    }<br />}<br /><br />      //-------------------------<br /><br />      if(timer_blysk) LED_ON; else LED_OFF;<br />      if(poprawka) LED_ON2; else LED_OFF2;//na czas możliwości zmiany interwału świeci drugi LED<br /><br />      //-------------------------<br /><br />    }//END while<br />}// END main<br />//*******************************************************************************<br />//*******************************************************************************<br />ISR(TIM0_COMPA_vect)//dla przerwań ustawionych na 100ms max czas inerwału to 25,5s<br />{<br />  static uint8_t dzielnik=100;//podział 1000Hz przez 100 aby uzyskać 10Hz (tik co 100ms)<br />  if(!dzielnik--)//pracuje co 100ms<br />    {<br />      dzielnik = 100;<br />      if(timer_interwal) {timer_interwal--; tim_poprawka++;}<br />    }<br />  if(timer_blysk) timer_blysk--;//pracuje co 1ms<br /><br />}[/syntax]<br /><br />To co jest w przerwaniach (dzielnik) nie jest wymagane, ale z racji, że to Attiny13 tak mi było wygodniej czas dobrać, a może i takie rozwiązanie Tobie się kiedyś przyda <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Polecam początkującym wykonać układ i przetestować z różnymi parametrami.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 24 paź 2019, o 21:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-23T13:17:09+01:00</updated>
<published>2019-10-23T13:17:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222627#p222627</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222627#p222627"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222627#p222627"><![CDATA[
Ale to już ma być program z tą dodatkową zmianą czasu migania po drugim kliku w odpowiednich ramach czasowych? Czyli ten docelowy, o który Ci chodziło?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 23 paź 2019, o 13:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-15T22:37:15+01:00</updated>
<published>2019-10-15T22:37:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222506#p222506</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222506#p222506"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222506#p222506"><![CDATA[
Pierwszą część zadania masz w moim programie, resztę napisałem post wcześniej. Pokombinuj na tym kodzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 15 paź 2019, o 22:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-15T16:59:01+01:00</updated>
<published>2019-10-15T16:59:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222494#p222494</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222494#p222494"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222494#p222494"><![CDATA[
Rozbudowa tego programu do tego o co pytasz w pierwszym poście to właściwie formalność. Musisz wykorzystać jeszcze jeden timer który odlicza zezwolenie na zmianę tempa i dodatkową zmienną do liczenia i zapamiętania nowej wartości interwału.<br />Albo już nie wiem o co Ci chodzi...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 15 paź 2019, o 16:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-15T09:02:48+01:00</updated>
<published>2019-10-15T09:02:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222487#p222487</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222487#p222487"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222487#p222487"><![CDATA[
Dam Ci wskazówkę na kolanie przed chwilą napisaną. Jest to podstawowy TAP-owy baaardzo uproszczony metronom. Brak w nim kontroli drgań styków i limitów. W przerwaniach należy zrobić do tego dwa timery odliczające do zera (zwykłe programowe): timer_interwal, tiemer_blysk. Pierwszy liczy odstęp między przyciskami, drugi to czas świecenia diody po jej aktywacji. Podaję w tak uproszczonej formie aby wszystko było jasne i czytelne - zdecydowanie taka forma jest łatwiejsza do analizy.<br /><br />[syntax=c]while(1)<br />    {<br />      if(!KLAWISZ)//gdy wciśnięty<br />{<br />  tryb ^=1;<br />  if(!tryb)<br />    {<br />      tempo=0;<br />      memtempo=0;<br />    }<br />  else<br />    {<br />      memtempo=tempo;<br />    }<br />}<br /><br />      if(!tryb)<br />{<br />  tempo ++;//należy pamiętać o zabezpieczeniu przed przekręceniem licznika ;-)<br />}<br />      else<br />{<br />  if(timer_interwal)<br />    {<br />      timer_interwal=memtempo;<br />      timer_blysk=5;//5 to przykładowa wartość trwania błysku<br />    }<br />}<br /><br />      if(timer_blysk) LED_ON; else LED_OFF;<br />    }//END while[/syntax]<br /><br />Myślę, że z rozbudową problemu już nie będziesz miał <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=1922">SylwekK</a> — 15 paź 2019, o 09:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-10-11T17:42:01+01:00</updated>
<published>2019-10-11T17:42:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222430#p222430</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222430#p222430"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=222430#p222430"><![CDATA[
Tak. O ile będziesz ta zmienną zmniejszał o jeden w przerwaniu (do zera)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 11 paź 2019, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-08-04T20:34:15+01:00</updated>
<published>2019-08-04T20:34:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220979#p220979</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220979#p220979"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220979#p220979"><![CDATA[
No do tego konkretnie o co Ci chodzi to nie mam. Jak będę przy kompie (piszę teraz z telefonu) to poszukam czegoś co Ci się przyda tylko może być małe opóźnienie, bo mam remont w domu i czas wolny odliczany w mikrosekundach <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=1922">SylwekK</a> — 4 sie 2019, o 20:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-07-26T15:49:55+01:00</updated>
<published>2019-07-26T15:49:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220710#p220710</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220710#p220710"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220710#p220710"><![CDATA[
Nie musi się zatrzymywać. Co za problem zrobić aby w momencie wciśnięcia zrzucił stan licznika (bez zatrzymywania) do jakiejś zmiennej przechodniej i dalej z niej korzystał do odliczania interwału ? <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=1922">SylwekK</a> — 26 lip 2019, o 15:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2019-07-26T13:36:53+01:00</updated>
<published>2019-07-26T13:36:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220708#p220708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220708#p220708"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220708#p220708"><![CDATA[
Czuję się wywołany do tablicy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Idea działania jest bardzo prosta. W podstawowej wersji ma być dwa tryby: 1-record, 2-play. W twojej wersji dojdzie jeszcze 3-play, ale 2 zamieni się na play&amp;record, oczywiście uwarunkowany czasem, po którym będzie już tylko sam play.<br />Zapomnij o bezpośrednim wykorzystaniu timera jako licznika... można, ale wg mnie to komplikuje sprawę. Ustaw przerwania na jakiś interwał i załatw odmierzanie czasu timerami programowymi. Tu jest bardzo elastycznie i właściwe dowolną potrzebną wartość uzyskasz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 26 lip 2019, o 13:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2019-07-25T22:13:33+01:00</updated>
<published>2019-07-25T22:13:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220700#p220700</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220700#p220700"/>
<title type="html"><![CDATA[Re: Coś jakby &quot;metronom&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22442&amp;p=220700#p220700"><![CDATA[
SylwekK robił kiedyś coś takiego, identyczna idea chyba. Dioda plus TAP. Może zdradzi szczegóły?<br />Jak poszukasz, to pewnie gdzieś na forum znajdziesz.<br />Świetnie to zrobił, jak to Sylwek, bardzo mi się to urządzenie spodobało <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=685">zoom</a> — 25 lip 2019, o 22:13</p><hr />
]]></content>
</entry>
</feed>