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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-06-20T23:24:34+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=12074&amp;mode</id>
<entry>
<author><name><![CDATA[Marcin_W]]></name></author>
<updated>2015-06-20T23:24:34+01:00</updated>
<published>2015-06-20T23:24:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12074&amp;p=132304#p132304</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12074&amp;p=132304#p132304"/>
<title type="html"><![CDATA[Timer i kasta SD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12074&amp;p=132304#p132304"><![CDATA[
Witam mam taki problem:<br /><br />Konfiguruję Timer0 do Timerów programowych (odliczanie 10ms odcinków) :<br /><br />[syntax=c]cli();<br />TCCR0A = 0;<br />TCCR0B = 0;<br />TCNT0  = 0;<br />OCR0A = (F_CPU/1024UL)/100UL;<br />TCCR0A |= (1 &lt;&lt; WGM01);<br />TCCR0B |= (1 &lt;&lt; CS02)|(1 &lt;&lt; CS00);<br />TIMSK0 |= (1 &lt;&lt; OCIE0A);<br />sei();[/syntax]<br /><br />w przerwaniu &quot;obrabiam&quot; liczniki programowe:<br /><br />[syntax=c]ISR(TIMER0_COMPA_vect){<br />int n;<br />n = Timer1; // Timer dla encodera<br />if( n ) Timer1 = --n;<br />n = Timer2; // Timer dla wyswietlacza<br />if( n ) Timer2 = --n;<br />n = Timer3; // Timer dla migania<br />if( n ) Timer3 = --n;<br />        ...<br />}[/syntax]<br /><br />I wszystko do tej pory działało jak trzeba. Zegary odliczały, pomiary się robiły LCD działał jak trzeba.<br /><br />Dopóki nie wymyśliłem, aby zrobić jeszcze loger na karcie SD.<br /><br />Zamówiłem u Mirka czytnik kart. Czytnik sprawdzony na przykładach z pod Arduino, żeby zobaczyć czy wszystko działa. Oczywiście te Arduinowe sprawdziłem w uzupełnieniu o piny CD i PWR. Wszystko OK karta się wykrywa, pliki się tworzą, dane się w nich zapisują.<br /><br />Dopóki nie chcę odpalić logera na działającym już moim programie...<br /><br />W chwili wydania komendy:<br /><br />[syntax=c]SD.begin(CS)[/syntax]<br />lub<br /><br />[syntax=c]card.init(SPI_HALF_SPEED, CS)[/syntax]<br /><br />Czy to łącznie z if'em. Czy samodzielnie jest zawis programu. Wszystko staje, diody przestają migać. Kompletny stop programu.<br /><br />Problemu z pamięcią nie ma używam A644 i miejsca jest jeszcze z górką. <br /><br />spotkał się ktoś z podobnym problemem?<br />Jak mówię program bez obsługi karty działa poprawnie, sama karta na zmodyfikowanych przykładach też. Gdy przenoszę te procedury obsługi karty z przykładów do mojego programu jest zwiech.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5610">Marcin_W</a> — 20 cze 2015, o 23:24</p><hr />
]]></content>
</entry>
</feed>