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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-07-24T13:09:00+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15838&amp;mode</id>
<entry>
<author><name><![CDATA[mopsiok]]></name></author>
<updated>2016-07-24T13:09:00+01:00</updated>
<published>2016-07-24T13:09:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164655#p164655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164655#p164655"/>
<title type="html"><![CDATA[Re: Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164655#p164655"><![CDATA[
<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />A tak ode mnie, to ja jakoś zawsze &quot;zatrzymuję&quot; timer poprzez wyłączenie jego przerwania a nie przez zatrzymywanie zegara taktujące (np. ustawienie i kasowanie bitu TOIE0 w TIMSK0 - tylko pamiętaj przed włączeniem przerwania, a po załadowaniu wartości, musisz wykasować flagę przerwania TOV0 w TIFR0 poprzez wpisanie jedynki). Może zmień na takie zatrzymywanie i sprawdź czy to coś zmieni.<br /></div><br /><br />Ja też tak zawsze robiłem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. Kod nie jest mój, a jedynie wykorzystuję go w projekcie żeby mieć pewność kompatybilności z całym systemem, dlatego też nic tam nie ruszałem póki co. Ale chyba pora się pobawić, zrobię tak jak sugerujesz - kopia całości a potem do dzieła <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br />Dzięki za rady, będę walczyć i dam znać jakby coś ruszyło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1371">mopsiok</a> — 24 lip 2016, o 13:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-07-24T12:28:26+01:00</updated>
<published>2016-07-24T12:28:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164652#p164652</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164652#p164652"/>
<title type="html"><![CDATA[Re: Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164652#p164652"><![CDATA[
Bez kompletnego kodu to ciężko jest coś poradzić. Na pewno masz gdzieś jakiś błąd.<br />O tyle ciekawe jest, że piny OC0x są pinami wyjściowymi i jedynie jak je podepniesz do timera to będziesz miał tylko na ich wyjściu inne funkcje niż zwykłe piny i/o. Więc nawet w takiej postaci nie będą one wpływały na działanie timera.<br />Czy przypadkiem jak zamieniasz diody to nie przepinasz także innych funkcjonalności z tych zamienianych pinów i dlatego działa?<br />Patrząc się na kod zwróć uwagę, że piny USART i OC0x są na porcie D, może coś masz nie tak w związku z tym. Czy jak diady lądują na innych pinach portu D to program działa? <br />Czy sprawdzałeś czy jak nie włączysz timera to masz nadal wyrzucanie błędów na komunikacji UART przy podłączonych diodach na OC0x? Może sam timer nie ma wpływu na problem a źródłem jest inny moduł?<br /><br />Proponuję Ci zrobić kopię projektu i na nim usuwać kolejne funkcje i patrzyć kiedy zacznie działać.<br /><br />A tak ode mnie, to ja jakoś zawsze &quot;zatrzymuję&quot; timer poprzez wyłączenie jego przerwania a nie przez zatrzymywanie zegara taktujące (np. ustawienie i kasowanie bitu TOIE0 w TIMSK0 - tylko pamiętaj przed włączeniem przerwania, a po załadowaniu wartości, musisz wykasować flagę przerwania TOV0 w TIFR0 poprzez wpisanie jedynki). Może zmień na takie zatrzymywanie i sprawdź czy to coś zmieni.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 24 lip 2016, o 12:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mopsiok]]></name></author>
<updated>2016-07-24T02:40:50+01:00</updated>
<published>2016-07-24T02:40:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164638#p164638</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164638#p164638"/>
<title type="html"><![CDATA[Re: Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164638#p164638"><![CDATA[
<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Gdy masz odpięte piny od timera to nie ma prawa być między nimi żadnych zależności.<br /></div><br />I właśnie dlatego tak bardzo mnie zdziwiło gdy to wyszło na jaw... Sterowanie diodami to w zasadzie żadna wymyślna filozofia:<br />[syntax=c]void led_init() {<br />LED_DDR |= (1&lt;&lt;LED3) | (1&lt;&lt;LED2) | (1&lt;&lt;LED1);<br />}<br /><br />void led_toggle(uint8_t led) {<br />LED_PORT ^= 1&lt;&lt;led;<br />}<br /><br />void led_on(uint8_t led) {<br />LED_PORT |= 1&lt;&lt;led;<br />}<br /><br />void led_off(uint8_t led) {<br />LED_PORT &amp;= ~(1&lt;&lt;led);<br />}<br /><br />void leds_off() {<br />LED_PORT &amp;= ~((1&lt;&lt;LED1) | (1&lt;&lt;LED2) | (1&lt;&lt;LED3));<br />}[/syntax]<br /><br />Diody załączam kiedy chcę a kasuję po krótkim czasie w pętli głównej przy pomocy leds_off().<br /><br /><br /><div class="quotetitle">kicajek napisał(a):</div><div class="quotecontent"><br />Może jakieś przerwania &quot;nachodzą na siebie&quot;?<br />Jaki uC?<br />Taka szczypta kodu...<br /></div><br />Całość lata na atmedze168, a jedyne przerwania w programie to 2 timery i obsługa UARTu. Timery odpowiadają za generowanie opóźnień i są odpalane w kompletnie niezwiązanych &quot;wątkach&quot;. Już pojęcia nie mam co tu może być nie halo... skonfiguruję ledy na dowolne inne wyjścia i wszystko śmiga, a po przeniesieniu na OC0A/B całość po chwili się sypie. Jedyne co mi przychodzi do głowy to że timer jednak jest skonfigurowany nie tak jak trzeba, ale piąty raz patrzyłem do noty i ewidentnie przy tej konfiguracji piny są odłączone...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1371">mopsiok</a> — 24 lip 2016, o 02:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-07-23T21:01:23+01:00</updated>
<published>2016-07-23T21:01:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164624#p164624</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164624#p164624"/>
<title type="html"><![CDATA[Re: Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164624#p164624"><![CDATA[
<div class="quotetitle">kicajek napisał(a):</div><div class="quotecontent"><br />Taka szczypta kodu...<br /></div>  <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=826">kicajek</a> — 23 lip 2016, o 21:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-07-23T20:56:47+01:00</updated>
<published>2016-07-23T20:56:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164622#p164622</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164622#p164622"/>
<title type="html"><![CDATA[Re: Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164622#p164622"><![CDATA[
Gdy masz odpięte piny od timera to nie ma prawa być między nimi żadnych zależności.<br />Sprawdź dokładnie jak masz napisane sterowanie diodami, bo tutaj może masz jakiś błąd i coś nadpisujesz.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 23 lip 2016, o 20:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mopsiok]]></name></author>
<updated>2016-07-23T00:47:08+01:00</updated>
<published>2016-07-23T00:47:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164584#p164584</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164584#p164584"/>
<title type="html"><![CDATA[Re: Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164584#p164584"><![CDATA[
Całość śmiga na atmedze168. Timer0 uruchamiany jest w momencie wykrycia początku ramki i odlicza czas po którym odebrany ciąg bajtów jest analizowany pod względem zgodności z protokołem. Gdy ledy są wpięte na wyjścia OC0A i OC0B, timer zaczyna wariować. Nie wiem dokładnie co mu się dzieje, ale moduł nadrzędny co chwila wyrzuca błędy że odbiornik nie odpowiada. Gdy tylko przepnę diody na dowolne inne piny, wszystko momentalnie ustaje i całość działa tak jak powinna bez żadnych błędów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1371">mopsiok</a> — 23 lip 2016, o 00:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-07-23T00:03:48+01:00</updated>
<published>2016-07-23T00:03:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164581#p164581</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164581#p164581"/>
<title type="html"><![CDATA[Re: Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164581#p164581"><![CDATA[
Witam<br />A da się to jakoś zdefiniować?:<br /><div class="quotetitle">mopsiok napisał(a):</div><div class="quotecontent"><br />...powoduje jakieś bliżej nieokreślone cuda wewnątrz timera0.<br /></div><br />Może jakieś przerwania &quot;nachodzą na siebie&quot;?<br />Jaki uC?<br />Taka szczypta kodu...<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 23 lip 2016, o 00:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mopsiok]]></name></author>
<updated>2016-07-22T22:47:05+01:00</updated>
<published>2016-07-22T22:47:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164580#p164580</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164580#p164580"/>
<title type="html"><![CDATA[Timer0 niestabilnie działa przy wykorzystaniu pinów OC0A/B]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15838&amp;p=164580#p164580"><![CDATA[
Cześć!<br />Od kilku dni męczę się z dziwnym zachowaniem programu. Używam timera0 do odmierzania timeoutu dla odbierania ramek po UART, i jednocześnie na pinach OC0A i OC0B mam wpięte ledy sygnalizacyjne. Z początku szukałem bugu w programie, później myślałem o zakłóceniach na zasilaniu podczas migania ledami, przeprogramowywałem nawet czas startu procka i wartość BODa. <br /><br />Ostatecznie problemem okazały się być same piny OC0 - co dziwniejsze, nie ma znaczenia czy są tam wpięte diody czy nie. Po prostu samo miganie na tych pinach powoduje jakieś bliżej nieokreślone cuda wewnątrz timera0. Sam timer skonfigurowany jest tak że teoretycznie piny te pełnią funkcję zwykłych GPIO. Całość wygląda tak:<br />[syntax=c]//inicjalizacja<br />TIMSK0 |= 0b00000001;<br />TCCR0B = 0;<br />sei();<br /><br />//timer jest włączany po odebraniu ramki z preskalerem 64 i odpowiednią wartością początkową<br />TCNT0 = TIMER_SEED;<br />TCCR0B  = 0b00000011;<br /><br />//po odmierzeniu timeoutu, wewnątrz przerwania TIMER0_OVF timer znowu jest wyłączany<br />TCCR0B = 0;[/syntax]<br /><br />Czy któryś z szanownych forumowiczów spotkał się kiedyś z czymś takim? Osobiście skończyły mi się już pomysły...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1371">mopsiok</a> — 22 lip 2016, o 22:47</p><hr />
]]></content>
</entry>
</feed>