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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-08-13T19:36:18+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1398&amp;mode</id>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2012-08-11T17:17:40+01:00</updated>
<published>2012-08-11T17:17:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12391#p12391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12391#p12391"/>
<title type="html"><![CDATA[Re: [Arduino] Stoper z zapisem na SD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12391#p12391"><![CDATA[
Biblioteka do kart standardowa w arduino 1.0.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 11 sie 2012, o 17:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-08-11T17:08:01+01:00</updated>
<published>2012-08-11T17:08:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12390#p12390</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12390#p12390"/>
<title type="html"><![CDATA[Re: [Arduino] Stoper z zapisem na SD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12390#p12390"><![CDATA[
Z jakich bibliotek obsługi kart korzystasz?<br /><br />Co do debouncingu to polecam:<br />[syntax=c]u08 debounce(void)<br />{<br />   static u08 last = 0;<br />   u08 port;<br />   u08 KeybKey;<br /><br />   port = PINB&amp;0b00000011; // Odczyt tylko z młodszych pinów<br />   KeybKey = last&amp;(~port);<br />   last = port;<br /><br />   return KeybKey;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 11 sie 2012, o 17:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2012-08-13T19:34:32+01:00</updated>
<published>2012-08-11T16:09:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12388#p12388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12388#p12388"/>
<title type="html"><![CDATA[Re: [Arduino] Stoper z zapisem na SD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12388#p12388"><![CDATA[
Niestety Twój kod nie działa również. Nie zapisuje wszystkich czasów.<br /><br />Mój kod po małej modyfikacji działa. <br /><br /><br /><br />Niestety nie jest dobrze wyeliminowane drganie styków do końca bo czasami zapisze więcej pomiarów niż wciśnięć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 11 sie 2012, o 16:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-08-11T12:07:03+01:00</updated>
<published>2012-08-11T12:07:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12381#p12381</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12381#p12381"/>
<title type="html"><![CDATA[Re: [Arduino] Stoper z zapisem na SD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12381#p12381"><![CDATA[
Twoja funkcja <em>void klik()</em> jest dla mnie dziwna. Poza tym w tego typu funkcjach nie umieszcza się <em>delay()</em>, bo to funkcje przerwań (Interrupt) i powinny być wykonywane możliwie szybko, by nie blokować swoim działaniem pętli głównej<em> loop()</em>. Twój czas będzie zakłamany przez <em>delay()</em> i dlatego, że później wykonujesz sporo operacji nim odczytasz <em>s</em> i <em>ms</em>. Ja to bym to poprawił w ten sposób<br /><br />[syntax=c]<br />//...<br />volatile unsigned int ms=0;<br />volatile unsigned int s=0;<br />volatile boolean flaga=0;<br />//volatile boolean koniec=0;<br />volatile unsigned int msToWrite;<br />volatile unsigned int sToWrite;<br />volatile unsigned int counter=0;<br /><br /> <br />void loop(){<br />   if(flaga==1) {<br />      plik=SD.open(&quot;czasy.txt&quot;,FILE_WRITE); //otwieram plik do zapisu<br />      if(plik) { //sprawdzam czy poprawnie otwarty<br />         plik.print(sToWrite,DEC);<br />         plik.print(&quot;.&quot;);<br />         if(ms&lt;100)plik.print(&quot;0&quot;);<br />         if(ms&lt;10)plik.print(&quot;0&quot;);<br />         plik.print(msToWrite,DEC);<br />         plik.println(&quot; s&quot;);<br />         plik.close(); //zamykam plik<br />         flaga=0;<br />      }<br />   }<br />   if(counter == 0){<br />      if(digitalRead(2)==1){<br />         delay(10);<br />         attachInterrupt(INT0,klik,FALLING);<br />      }<br />   }<br />}<br /> <br />void ms_tick(){<br />   ms++;<br />   if(ms==1000){<br />   ms=0;<br />   s++;<br />   if(counter) counter--;<br />   }<br />}<br />  <br />void klik() {<br />   detachInterrupt(INT0);<br />   flaga = 1;<br />   msToWrite = ms;<br />   sToWrite = s;<br />   counter = 20;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 11 sie 2012, o 12:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2012-08-13T19:36:18+01:00</updated>
<published>2012-08-11T09:10:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12370#p12370</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12370#p12370"/>
<title type="html"><![CDATA[[Arduino] Stoper z zapisem na SD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1398&amp;p=12370#p12370"><![CDATA[
Witam.<br />Chcę sobie zrobić stoper z funkcją zapisu czasów na kartę SD. Niestety namieszałem chyba coś z eliminacją drgań styków i teraz już nie mam pojęcia co jest źle. Program raz działa a raz nie, tzn. zapisze jeden czas (ciągle ten sam ok.460ms) i później jakby się zawieszał.<br /><br />Kod poniżej:<br /><br />[syntax=c]#include &lt;TimerOne.h&gt; /biblioteka obsługi timera<br />#include &lt;SD.h&gt; //biblioteka do obsługi kart SD<br />File plik; //tworzymy obiekt, który będzie przechowywać informacje konieczne do prowadzenia operacji na plikach<br /><br /><br /><br />void setup(){<br /><br />Timer1.initialize();//inicjalizujemy Timer1<br />Timer1.setPeriod(1000);//przerwanie co 1000 us = 1 ms<br />Timer1.attachInterrupt(ms_tick);<br />attachInterrupt(INT0,klik,FALLING);<br />//przycisk<br />pinMode(2,INPUT);<br />digitalWrite(2,HIGH);<br />pinMode(6,OUTPUT); //dioda sygnalizująca poprawność inicjalizacji karty<br />digitalWrite(6,LOW);<br /><br /><br /><br />pinMode(10,OUTPUT);//ustawiam pin 10, podłączony do pinu CS karty jako wyjście <br /><br />if(SD.begin(10)){  //sprawdzam czy karta jest w slocie<br />  <br />    digitalWrite(6,HIGH);<br />    <br />  }else{<br />    digitalWrite(6,LOW);<br />    <br />    while(1); <br />    <br />  }<br /><br /><br /><br /><br />}<br />kod usunięty  <br />  }[/syntax]<br /><br />[tylko proszę o umieszczenie kodów w znacznikach [ syntax = c ] na drugi raz - ok? tak jak to poprawiłem teraz - mirekk36]<br /><br />Proszę o wyjaśnienie problemu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 11 sie 2012, o 09:10</p><hr />
]]></content>
</entry>
</feed>