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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-11-10T20:19:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16755&amp;mode</id>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-11-10T20:19:25+01:00</updated>
<published>2016-11-10T20:19:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174387#p174387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174387#p174387"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174387#p174387"><![CDATA[
Może trochę puźno, ale możesz np. w układzie, w którym programujesz, zewrzeć jeden z wolnych wyprowadzeń do masy, a w programie ustawić ten pin jako wejście z podciągnięciem wewnętrznym do Vcc.<br />I jako jeden z warunków sprawdzasz, co masz na tym pinie. Jeżeli 0, to nie zapisujesz do EEPROM. Jeżeli 1, zapisujesz długość trwania impulsu.<br />Zrozumiałem, że jednego wyprowadzenia nie używasz w programie (warunek zapisu do EEPROM po zwarciu wejścia do masy). Więc możesz go użyć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 10 lis 2016, o 20:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zycior]]></name></author>
<updated>2016-11-08T20:30:10+01:00</updated>
<published>2016-11-08T20:30:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174163#p174163</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174163#p174163"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174163#p174163"><![CDATA[
<div class="quotetitle">SylwekK napisał(a):</div><div class="quotecontent"><br />No to tak na koniec dorzucę jeszcze jedno  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><div class="quotetitle">zycior napisał(a):</div><div class="quotecontent">ale jak rozpoznać, że układ jest uruchomiony po raz pierwszy, aby właśnie w tej chwili, przy tym pierwszym uruchomieniu zapisać tę wartość?<br /></div><br />...bardzo prosto  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" />  Wykorzystaj drugą komórkę EEPROM. Po zaprogramowaniu (czyli tym pierwszym uruchomieniu wsadu) wyzeruj wspomnianą drugą komórkę, ba...(!) - nawet tą samą! Wpisz tam po prostu zero (długość impulsu nie może trwać przecież zero czegoś więc nie będzie to miało znaczenia... <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ) i przy kolejnym uruchomieniu sprawdź czy jest  ...zero, jeśli tak to zapisz w jego miejsce długość impulsu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Rozwiązań problemu zawsze jest dużo tylko podstawą jest jasne określenie warunków pracy.</div><br /><br />Dopadła mnie jakaś niemoc twórcza <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7970">zycior</a> — 8 lis 2016, o 20:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2016-11-08T19:47:05+01:00</updated>
<published>2016-11-08T19:47:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174160#p174160</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174160#p174160"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174160#p174160"><![CDATA[
No to tak na koniec dorzucę jeszcze jedno  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><div class="quotetitle">zycior napisał(a):</div><div class="quotecontent"><br />ale jak rozpoznać, że układ jest uruchomiony po raz pierwszy, aby właśnie w tej chwili, przy tym pierwszym uruchomieniu zapisać tę wartość?<br /></div><br />...bardzo prosto  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" />  Wykorzystaj drugą komórkę EEPROM. Po zaprogramowaniu (czyli tym pierwszym uruchomieniu wsadu) wyzeruj wspomnianą drugą komórkę, ba...(!) - nawet tą samą! Wpisz tam po prostu zero (długość impulsu nie może trwać przecież zero czegoś więc nie będzie to miało znaczenia... <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ) i przy kolejnym uruchomieniu sprawdź czy jest  ...zero, jeśli tak to zapisz w jego miejsce długość impulsu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Rozwiązań problemu zawsze jest dużo tylko podstawą jest jasne określenie warunków pracy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 8 lis 2016, o 19:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zycior]]></name></author>
<updated>2016-11-08T19:35:25+01:00</updated>
<published>2016-11-08T19:35:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174158#p174158</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174158#p174158"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174158#p174158"><![CDATA[
<div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />A moze by tak reagowac na drugi restart? Choc osobiście uważam że powinno się programować pewne stałe konkretnym jumperkiem lub via rs/bootloader.<br /></div><br /><br />Właśnie przetestowałem to rozwiązanie, zapisuję dane przy 2 restarcie. <br />Sprawdziłem też opcję z opóźnieniem czasowym, zarówno jedna jak i druga opcja rozwiązuje &quot;moją bolączkę&quot;, tak więc nie będę dalej ciągnął tematu, gdyż nie wiem jak to logicznie wytłumaczyć aby dla wszystkich było zrozumiałe.<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />A ponoć tylko ja nie rozumiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div>   <br />czepiasz się <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />ok ok ... spokojnie już nic nie mówię ... <br /><br />Z podziwu jednak wychodzę - jak można pomimo próśb również innych użytkowników którzy chcą pomóc - nie określić jasno jednego problemu<br /><br />1. czy masz problem z EEPROM ? a jeśli tak to jaki?<br />2. czy masz problem z jakimś tam tajemniczym impulsem ? i to jeszcze impulsem co? który nadchodzi TYLKO w trakcie programowania procka ?<br /><br />Dodam, żebyś za chwilę kolejnych rzeczy mi nie zarzucał - ja tego nie piszę ironicznie .... ani żeby ci dogryźć ... Rzeczywiście ani ja nie mogę cię zrozumieć ani ty mnie więc jak pisałem - znikam z wątku. Tylko ty też pomyśl - bo albo nie czytasz wszystkich postów albo nie zauważasz, że inni też nie rozumieją z czym masz problem.<br /></div> <br /><br />Mirku masz rację, ani Ty mnie ani ja Ciebie nie mogę zrozumieć. Cóż, zdarza się... może nie wiem jak przekazać swoją wizję, może pomijam rzeczy dla mnie oczywiste stąd brak zrozumienia, nie wiem, nie ważne. Nie traktuj tego jako atak na Twoją osobę. <br />W zasadzie dzięki BB w końcu udało mi się nieco okiełznać C, wcześniej pisałem w bascomie, później trochę arduino. Konieczność realizacji pewnych projektów na małych procesorach (attiny 10, 13) niejako zmusiły mnie do przesiadki na mniej &quot;zasobożerne&quot; języki. Początki C były dla mnie drogą przez mękę, aż wpadła mi w łapy Twoja książka. Oczywiście jeszcze daleka droga przede mną, ale można powiedzieć, że to co sobie wymyślę, jestem w stanie zaprogramować. Czasem to trwa, czasem spędzam na tym forum długie godziny (choć to mój pierwszy post), ale jakoś to idzie.<br /><br />Wracając do tematu, choć to już nie istotne, bo problem rozwiązany... postaram się ostatni raz co nieco wyjaśnić.<br />1. nie mam problemu z epromem - zapisuje i odczytuje to co chce<br />2. nie mam tez problemu z &quot;tajemniczymi impulsami&quot; wiem jak i kiedy go zmierzyć i jak go przetworzyć<br />Zapomnijmy o wcześniejszych opowiadaniach... nie ma pamięci nie ma sygnały pwm ani tych tajemniczych impulsów.<br />Potrzebuję do pamięci eeprom wpisać, raz jeden jedyny, wartość pochodzącą z jakiegoś czujnika (obojętnie co to będzie, załóżmy że to będzie dana z ADC). Wpis ten ma nastąpić w trakcie pierwszego uruchomienia układu (gotowego układu, zmontowanego na pcb). I koniec kropka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Wiem jak odczytać tą wartość, wiem jak zapisać ją do pamięci... ale jak rozpoznać, że układ jest uruchomiony po raz pierwszy, aby właśnie w tej chwili, przy tym pierwszym uruchomieniu zapisać tę wartość?<br /><br /><br />Dziękuję wszystkim za cierpliwość i poświęcony czas.<br />Mam nadzieję, że następnym razem pójdzie Nam łatwiej <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br /><div class="quotetitle">QuadMan napisał(a):</div><div class="quotecontent"><br />Witam,<br /><br />Kolego <strong>zycior</strong>, wydaje mi się że naprawdę doszukujesz się problemu tam, gdzie go nie ma. Przecież masz rozwiązanie, które jest pewne i powtarzalne. Montujesz w układzie listwę GoldPin 1x2, zakładasz jumper, po restarcie układ wchodzi w tryb &quot;kalibracji&quot;, w trakcie pracy ( jak już ten Twój PWM się ustalił) zdejmujesz ten jumper - wtedy następuje zapis do EEPROM-u i po kłopoce. Przecież założenie i zdjęcie jumpera to może ze 2 sekundy, gdzie Ty szukasz jakichś oszczędności czasowych???? Coś się zmieni, dojdziesz do wniosku, że jednak ten PWM jest inny, niż zakładałeś - powtarzasz całą procedurę. <br /><br />Pozdrawiam, QuadMan.<br /><br />Dopisane: teraz widzę, że w zasadzie zdublowałem to co Koledzy już wcześniej napisali.<br /></div><br /><br />Generalnie masz rację, jest tylko jedno (a może 2) ale... nie mam miejsca na zamontowanie jumpera (układ wchodzi &quot;na styk&quot; do konkretnej maszyny), poza tym wiązało by to się z zaprojektowaniem i zrobieniem nowych płytek... a &quot;starych&quot; leży przeszło 200.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 8 minutach ]</span></strong><br /><br /><div class="quotetitle">SylwekK napisał(a):</div><div class="quotecontent"><br />Ja wciąż problemu nie widzę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Teraz jeszcze wiem, że podawany sygnał jest PWM. Skoro jest podawany cały czas na wejście to nawet przy pierwszym uruchomieniu urządzenia nie powinno mieć znaczenia utrata jednego, dwóch czy nawet trzech impulsów. Po prostu program bada (a przy okazji mierzy od razu długość trwania tego co napłynęło) czy w ciągu kilkunastu ms były zmiany stanu na wejściu i jeśli były to zapamiętuje zmierzoną wcześniej długość impulsu i po sprawie. Dalej już jak w moim poprzednim poście <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />To fakt, właśnie o tym nie pomyślałem, sprawdzić czy następuje zmiana stanów na wejściu, w określonym czasie, krótko mówiąc czy pwm jest na wejściu czy go nie ma.<br /><br />Raz jeszcze wszystkim dziękuję i pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7970">zycior</a> — 8 lis 2016, o 19:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2016-11-08T18:52:06+01:00</updated>
<published>2016-11-08T18:52:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174149#p174149</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174149#p174149"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174149#p174149"><![CDATA[
Ja wciąż problemu nie widzę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Teraz jeszcze wiem, że podawany sygnał jest PWM. Skoro jest podawany cały czas na wejście to nawet przy pierwszym uruchomieniu urządzenia nie powinno mieć znaczenia utrata jednego, dwóch czy nawet trzech impulsów. Po prostu program bada (a przy okazji mierzy od razu długość trwania tego co napłynęło) czy w ciągu kilkunastu ms były zmiany stanu na wejściu i jeśli były to zapamiętuje zmierzoną wcześniej długość impulsu i po sprawie. Dalej już jak w moim poprzednim poście <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> — 8 lis 2016, o 18:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2016-11-08T18:19:00+01:00</updated>
<published>2016-11-08T18:19:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174146#p174146</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174146#p174146"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174146#p174146"><![CDATA[
Witam,<br /><br />Kolego <strong>zycior</strong>, wydaje mi się że naprawdę doszukujesz się problemu tam, gdzie go nie ma. Przecież masz rozwiązanie, które jest pewne i powtarzalne. Montujesz w układzie listwę GoldPin 1x2, zakładasz jumper, po restarcie układ wchodzi w tryb &quot;kalibracji&quot;, w trakcie pracy ( jak już ten Twój PWM się ustalił) zdejmujesz ten jumper - wtedy następuje zapis do EEPROM-u i po kłopoce. Przecież założenie i zdjęcie jumpera to może ze 2 sekundy, gdzie Ty szukasz jakichś oszczędności czasowych???? Coś się zmieni, dojdziesz do wniosku, że jednak ten PWM jest inny, niż zakładałeś - powtarzasz całą procedurę. <br /><br />Pozdrawiam, QuadMan.<br /><br />Dopisane: teraz widzę, że w zasadzie zdublowałem to co Koledzy już wcześniej napisali.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 8 lis 2016, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-08T17:58:59+01:00</updated>
<published>2016-11-08T17:58:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174143#p174143</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174143#p174143"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174143#p174143"><![CDATA[
<div class="quotetitle">sq5rix napisał(a):</div><div class="quotecontent"><br />To ja się pogubiłem całkiem<br /></div><br />A ponoć tylko ja nie rozumiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">zycior napisał(a):</div><div class="quotecontent"><br />Drogi Mirku, cały czas twierdzisz, że nie rozumiesz o co mi chodzi (i tu się z Tobą zgodzę, bo przecież nie musisz), a za chwilę piszesz, że starasz się mnie od początku naprowadzić. <br />Może, skoro nie potrafię opisać sensownie swojego problemu, to może również nie potrafię zrozumieć Twojego wierszoklectwa? (troszeczkę ironizuję  )<br /></div><br />ok ok ... spokojnie już nic nie mówię ... <br /><br />Z podziwu jednak wychodzę - jak można pomimo próśb również innych użytkowników którzy chcą pomóc - nie określić jasno jednego problemu<br /><br />1. czy masz problem z EEPROM ? a jeśli tak to jaki?<br />2. czy masz problem z jakimś tam tajemniczym impulsem ? i to jeszcze impulsem co? który nadchodzi TYLKO w trakcie programowania procka ?<br /><br />Dodam, żebyś za chwilę kolejnych rzeczy mi nie zarzucał - ja tego nie piszę ironicznie .... ani żeby ci dogryźć ... Rzeczywiście ani ja nie mogę cię zrozumieć ani ty mnie więc jak pisałem - znikam z wątku. Tylko ty też pomyśl - bo albo nie czytasz wszystkich postów albo nie zauważasz, że inni też nie rozumieją z czym masz problem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 lis 2016, o 17:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2016-11-08T17:56:39+01:00</updated>
<published>2016-11-08T17:56:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174142#p174142</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174142#p174142"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174142#p174142"><![CDATA[
A moze by tak reagowac na drugi restart? Choc osobiście uważam że powinno się programować pewne stałe konkretnym jumperkiem lub via rs/bootloader.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 8 lis 2016, o 17:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq5rix]]></name></author>
<updated>2016-11-08T17:53:57+01:00</updated>
<published>2016-11-08T17:53:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174141#p174141</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174141#p174141"/>
<title type="html"><![CDATA[Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174141#p174141"><![CDATA[
To ja się pogubiłem całkiem <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br />Rozumiem że na na PB3 podajesz z zewnątrz sygnał PWM. <br />Rozumiem, że mierzysz ile czasu upływa miedzy zboczem narastającym a opadającym. <br />Podejmujesz decyzję - jeśli ten czas jest krótszy niż np. 3ms to coś robisz, jak dłuższy to robisz coś innego.<br /><br />I teraz - czy te 3ms wynikają z pomiaru jakiegoś impulsu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5966">sq5rix</a> — 8 lis 2016, o 17:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zycior]]></name></author>
<updated>2016-11-08T17:29:44+01:00</updated>
<published>2016-11-08T17:29:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174135#p174135</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174135#p174135"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174135#p174135"><![CDATA[
Witajcie<br /><br />Przepraszam, że odzywam się dopiero teraz. Niestety w pracy nie miałem dziś dostępu do internetu.<br />Jeszcze raz postaram się od początku do końca wyjaśnić w czym rzecz, chociaż kolega VDR trafnie &quot;rozszyfrował&quot; moje intencje.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Nie wiem czy dobrze kombinuje - ale kolega ma jakiś układ który cos tam ma zapisywac - dlugosc impulsu, czas whatever. Domniemam, że ten czas dla każdego układu jest inny i służy czemuś, nie wiem - może jakiejś kalibracji ? <br />Procek kolega programuje poza układem - a że po programowaniu procek sie uruchamia z automatu to i program zapisuje do eepromu jakiegos losowego smiecia nie mającego nic wspólnego z wartością jaka by była gdyby programował procek w układzie.<br />Kiedy wklada go do ukladu to procek defacto nie uruchamia sie po raz pierwszy tylko po raz drugi od momentu zaprogramowania... <br />tak to zrozumiałem czytając - &quot;musiałbym szybko odłączyć procek po programowaniu&quot; na zaproponowany delay miedzy zapisem do eepromu. Czyli by zdazyc po programowaniu, zanim zapis nastapi.<br /></div><br /><br />Na wejście PB3 podaję sygnał pwm. W zależności od jego wypełnienia (mierzę czas trwania stanu wysokiego w tym sygnale) wyjście PB4 załącza układ wykonawczy. Jeżeli stan H w sygnale pwm trwa dłużej niż (załóżmy) 3ms ustaw stan wysoki na PB4, jeżeli krótszy - stan L (czyli włącza i wyłącza, załóżmy, diodę led). W związku z tym, że każde z urządzeń potrzebuje różnego czasu (w jednym są to 3ms, w innym 10ms, jeszcze w innym 1,5ms) tak więc każdy muszę zaprogramować z osobna. Ten właśnie czas zapisuję w pamięci eeprom.<br />Do tej pory, aby zaprogramować ten czas, zwierałem pin PB0 do masy podczas uruchamiania urządzenia.<br />to jest ten zapis:<br />[syntax=c]if ( !(PINB &amp; (1&lt;&lt;DDB0))) {<br />// tutaj następuje pomiar czasu trwania stanu wysokiego<br />        //zmienna czas przyjmuje wartość tego czasu (w zakresie od 0 do 250) <br />eeprom_busy_wait();<br />eeprom_write_byte(&amp;dlugosc_impulsu_ee, czas);<br /> }[/syntax] <br />W związku z tym, iż czasem, w ciągu dnia muszę zbudować kilka bądź kilkanaście takich układów, monotonne zwieranie końcówki procesora jest po prostu męczące i zajmuje trochę czasu.<br /><br />Pomyślałem więc, że warto dopisać kod, który będzie zapisywał ten czas bez mojej ingerencji, przy pierwszym rozruchu urządzenia.<br />Stąd też wziął się zapis w if'ie:<br />[syntax=c]if ( !(PINB &amp; (1&lt;&lt;DDB0)) || dlugosc_impulsu == 0xFF) {<br />//długość impulsu jest to zmienna odczytana z pamieci eeprom, czyli jeżeli pamięć czysta wykonaj dalszy kod[/syntax]    <br /><br />No i tutaj zaczęły się &quot;schody&quot;. Procesor programuję poza docelowym układem, tak więc w zasadzie pierwsze uruchomienie urządzenia nie jest pierwszym startem procesora. Zaraz po programowaniu procesor startuje, a w związku z tym, że na pinie na którym odczytuje sygnał pwm są bliżej nie ustalone stany, do pamięci eeprom trafiają przypadkowe liczby.<br /><br />I to w zasadzie jest cała bolączka mojego układu.<br /><br />Kolega mczarny zasugerował wprowadzenie opóźnienia przed startem układu, co w zasadzie wydaje się prostym i skutecznym rozwiązaniem,<br />mogę dopisać warunek, if ( dlugosc_impulsu == 0xFF) { delay (ileśtam) następnie pomiar impulsu i zapis do eeprom} co pozwoli mi na wyciągnięcie układu z programatora zanim nastąpi odczytanie długości impulsu i zapis do eeprom.<br /><br /><div class="quotetitle">sq5rix napisał(a):</div><div class="quotecontent"><br />Jeśli czyścisz EEPROM przy programowaniu, to masz tam FF. Małem różne jazdy z eepromem, ale jeśli go czyściłem, to było tam FF, bez względu na to kiedy czytałem. <br />Ja bym dał prostego if-a - jak jest FF to leć dalej, mierz impuls i zapisuj jego długość. Raz tylko jest tem impuls? Czy się powtarza?<br /></div>  <br />Myślę, że to już wyjaśniłem chwilę wcześniej - nie mogę dać tam prostego if'a bo w momencie programowania nie ma tego impulsu, który mierzę. <br /><br /><div class="quotetitle">wojtekr51 napisał(a):</div><div class="quotecontent"><br />Nadal jeszcze trudno mi zrozumieć, jak ma odbywać się ten pomiar czasu trwania impulsu. Napisz jak w układzie wygląda podawanie impulsu/sygnału. Jakie długości może przyjmować mierzony impuls? A może jego czas jest znany i wystarczyłoby bezpośrednio wpisać znaną wartość do eeproma?<br /></div><br />Nie ma żadnego znaczenia jak odbywa się pomiar, wynik pomiaru trafia do zmiennej którą trzeba zapisać w pamięci. Nie ma też znaczenia jakie długości on przyjmuje - wszak co za różnica czy do komórki pamięci zapiszę 2 czy 102. <br />Co prawda czas jest znany, ale w każdym układzie inny. Owszem, można by zaprogramować osobno pamięć eeprom wpisując odpowiednią wartość do komórki, ale to znowu marnowanie czasu, równie dobrze mógłbym za każdym razem edytować wartość zmiennej i osobno kompilować wsad do każdego procesora.<br /><br /><div class="quotetitle">kicajek napisał(a):</div><div class="quotecontent"><br />Witam<br />Być może kol.zycior jest trochę poirytowany że nie możemy załapać, ale dobrze by było gdyby opisał w jaki sposób działa ten program; kiedy następuje to nieszczęsne zwieranie a kiedy ma być jego pomiar. Na razie jest to opisane niby prosto a zagadkowo. Trochę to przypomina film &quot;Nie lubię poniedziałku&quot; gdzie gościu szuka treblinki do kombajnu, ale tylko on wie jak to wygląda.<br /></div>    <br />Gdybym obawiał się czyjegoś poirytowania udzielając się na tym czy innym forum, pewnie wypierdzielił bym już dawno komputer przez okno <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Rozumiem, że łatwiej jest coś pojąć kiedy się to widzi, czy obie strony wiedzą dokładnie o czym rozmawiają. W tym przypadku ja wiem co chcę powiedzieć... ale nie umiem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />ot zrobić prosty test zapisu odczytu do i z EEPROM a gdy ci coś nie będzie wychodzić to zadać pytanie - tymczasem wrzucasz jakiś temat dziwnego impulsu i niektórzy zamiast skoncentrować się na EEPROM - poszukują rozwiązania problemu z impulsem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... czyli pewnie nie tego o co chodzi ...<br />No chyba że ja rzeczywiście - tylko ja - wciąż niczego nie rozumiem - to ok...<br /><br />No ja staram się od początku to wyjaśnić - chociaż - jak to ja - po prostu naprowadzam ... ale dobrze, że ktoś inny też to dostrzega i w końcu klaruje to przejrzyście...<br /><br />VDR napisał(a): Być może obrał w ogóle błędną drogę do rozwiązania zadania<br /><br />Moim zdaniem na pewno - choć .... no mogę się mylić bo być może chodzi o caaaałkiem co innego, jakiś ważny projekt i zależności - ale tego przecież nie wiemy...<br /><br />W swoim pierwszym poście podpowiedziałem jak warto posługiwać się pamięcią EEPROM no ale autor jak widać - całkowicie to .... że tak powiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ma w głębokim poważaniu.<br /></div>   <br />Drogi Mirku, cały czas twierdzisz, że nie rozumiesz o co mi chodzi (i tu się z Tobą zgodzę, bo przecież nie musisz), a za chwilę piszesz, że starasz się mnie od początku naprowadzić. <br />Może, skoro nie potrafię opisać sensownie swojego problemu, to może również nie potrafię zrozumieć Twojego wierszoklectwa? (troszeczkę ironizuję <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ) <br />Następnie twierdzisz, że NA PEWNO obrałem złą drogę, choć nadal nie wiesz do czego zmierzam.<br />To trochę tak jakbyś usiłował wytłumaczyć mi drogę, nie wiedząc dokąd chcę jechać.<br />Oczywiście nie twierdzę, że nie masz racji, może faktycznie nie tędy droga i trzeba pomyśleć nad innym rozwiązaniem, ale pewny tego możesz być dopiero w momencie kiedy zrozumiesz mój problem.<br /><br />Mam nadzieję, że teraz będzie łatwiej zrozumieć &quot;o co walczę&quot;.<br />Tym czasem zaprogramuję procesor ze zwłoką czasową, o której była mowa na początku i sprawdzę czy takie rozwiązanie będzie wystarczające.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7970">zycior</a> — 8 lis 2016, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2016-11-08T12:36:49+01:00</updated>
<published>2016-11-08T12:36:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174115#p174115</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174115#p174115"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174115#p174115"><![CDATA[
A ja tam wcale problemu nie widzę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><div class="quotetitle">zycior napisał(a):</div><div class="quotecontent"><br />Po prostu, dla ułatwienia sobie życia po montażu urządzenia chciałem, przy pierwszym odpaleniu tego ustrojstwa, aby zapisać czas trwania impulsu do pamięci, abym fizycznie nie musiał zawierać pinu pb0 do masy.<br /></div><br />Przecież rozwiązanie jest w powyższym cytacie!<br />Jaki problem badać zwarcie w programie??? Krótko... jeśli EEPROM=$FF to sprawdź czy PIN=LOW, jeśli oba warunki spełnione to znaczy, że zaczyna się impuls i można go zmierzyć po czym zapamiętać jeśli nie to pozostań w pętli. Wszystko! Przy kolejnym uruchomieniu procesora warunek już nie będzie spełniony, bo EEPROM&lt;&gt;$FF.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 8 lis 2016, o 12:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-08T11:28:30+01:00</updated>
<published>2016-11-08T11:28:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174108#p174108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174108#p174108"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174108#p174108"><![CDATA[
<div class="quotetitle">VDR napisał(a):</div><div class="quotecontent"><br />Niby tak, choć może całkowicie niepotrzebne jest to zapisywanie po pierwszym uruchomieniu<br /></div><br />No ja staram się od początku to wyjaśnić - chociaż - jak to ja - po prostu naprowadzam ... ale dobrze, że ktoś inny też to dostrzega i w końcu klaruje to przejrzyście<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">VDR napisał(a):</div><div class="quotecontent"><br />Być może obrał w ogóle błędną drogę do rozwiązania zadania<br /></div><br />Moim zdaniem na pewno - choć .... no mogę się mylić bo być może chodzi o caaaałkiem co innego, jakiś ważny projekt i zależności - ale tego przecież nie wiemy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 lis 2016, o 11:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[VDR]]></name></author>
<updated>2016-11-08T11:10:16+01:00</updated>
<published>2016-11-08T11:10:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174107#p174107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174107#p174107"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174107#p174107"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">VDR napisał(a):</div><div class="quotecontent">Pytanie - do czego ta wartosc mierzona zapisana do eepromu ma służyć ?<br /></div><br />To chyba najmniej istotne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Niby tak, choć może całkowicie niepotrzebne jest to zapisywanie po pierwszym uruchomieniu i można znaleźć jakiś inny warunek, który spowoduje, że ta wartość zostanie zapisana. Ot sprowadzić zadanie do &quot;jak wykryć, że procek jest we właściwym układzie aby zmierzyć i zapisać długość sygnału&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">VDR napisał(a):</div><div class="quotecontent"> Może zapisuj ją przy drugim uruchomieniu procka ?<br /></div><br />Tak, a później nastąpi chociażby przypadkowy reset i co ? później przy trzecim? ... czwartym ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /></div><br /><br />A to już zależne od reżimu pracy  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> Nie wiem czy dobrze zrozumiałem ale, kolega programuje proca, wrzuca go do układu, wystawia sygnał niski na pin i nastepuje zapisanie tej wartosci do eepromu. Kolega chciałby pominąć to dodatkowe podawanie sygnału na pin bo i nużące i pracochłonne wiec wymyślił sprawdzanie czy pamięć jest &quot;czysta&quot;, jesli tak, to znaczy ze to nowe uruchomienie i ma nastąpić to zapisanie bez podania stanu niskiego na pin <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Być może obrał w ogóle błędną drogę do rozwiązania zadania <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=601">VDR</a> — 8 lis 2016, o 11:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-08T10:46:23+01:00</updated>
<published>2016-11-08T10:46:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174106#p174106</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174106#p174106"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174106#p174106"><![CDATA[
<div class="quotetitle">VDR napisał(a):</div><div class="quotecontent"><br />Procek kolega programuje poza układem - a że po programowaniu procek sie uruchamia z automatu to i program zapisuje do eepromu jakiegos losowego smiecia nie mającego nic wspólnego z wartością jaka by była gdyby programował procek w układzie.<br /></div><br />Starałem się autora od początku na to naprowadzić - a kolega od razu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><div class="quotetitle">VDR napisał(a):</div><div class="quotecontent"><br />Pytanie - do czego ta wartosc mierzona zapisana do eepromu ma służyć ?<br /></div><br />To chyba najmniej istotne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">VDR napisał(a):</div><div class="quotecontent"><br />Może zapisuj ją przy drugim uruchomieniu procka ?<br /></div><br /><br />Tak, a później nastąpi chociażby przypadkowy reset i co ? później przy trzecim? ... czwartym ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />W swoim pierwszym poście podpowiedziałem jak warto posługiwać się pamięcią EEPROM no ale autor jak widać - całkowicie to .... że tak powiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ma w głębokim poważaniu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 lis 2016, o 10:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[VDR]]></name></author>
<updated>2016-11-08T10:33:52+01:00</updated>
<published>2016-11-08T10:33:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174105#p174105</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174105#p174105"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174105#p174105"><![CDATA[
Nie wiem czy dobrze kombinuje - ale kolega ma jakiś układ który cos tam ma zapisywac - dlugosc impulsu, czas whatever. Domniemam, że ten czas dla każdego układu jest inny i służy czemuś, nie wiem - może jakiejś kalibracji ? <br /><br />Procek kolega programuje poza układem - a że po programowaniu procek sie uruchamia z automatu to i program zapisuje do eepromu jakiegos losowego smiecia nie mającego nic wspólnego z wartością jaka by była gdyby programował procek w układzie.<br /><br />Kiedy wklada go do ukladu to procek defacto nie uruchamia sie po raz pierwszy tylko po raz drugi od momentu zaprogramowania... <br /><br />tak to zrozumiałem czytając - &quot;musiałbym szybko odłączyć procek po programowaniu&quot; na zaproponowany delay miedzy zapisem do eepromu. Czyli by zdazyc po programowaniu, zanim zapis nastapi. <br /><br />Pytanie - do czego ta wartosc mierzona zapisana do eepromu ma służyć ? Może zapisuj ją przy drugim uruchomieniu procka ? <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=601">VDR</a> — 8 lis 2016, o 10:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-08T09:55:26+01:00</updated>
<published>2016-11-08T09:55:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174104#p174104</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174104#p174104"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174104#p174104"><![CDATA[
<div class="quotetitle">zycior napisał(a):</div><div class="quotecontent"><br />Mirku, z całym szacunkiem... ale nie może to być aż tak nielogiczne skoro Twój przedmówca zrozumiał w czym rzecz.<br /></div><br />Czy teraz już widzisz, że nie dość że ja nie zrozumiałem to wciąż pozostali mają problem ze zrozumieniem ?<br /><br />Ja wciąż nie wiem na przykład czy ty masz problem z jakimś tam impulsem bliżej nie wiadomego pochodzenia czy ty masz problem z zapisem do EEPROM? ... Ale ok to nie istotne, że ja nie rozumiem ...<br /><br />gorsze jest to, że nie tylko ja już chyba napisałem tobie, że po zaprogramowaniu procka masz w pamięci EEPROM same wartości 0xFF - wręcz przyznałem rację tobie - twoim założeniom słusznym zresztą ....<br /><br />Za to ty dalej z uporem godnym podziwu - wciąż piszesz że niby jest 0xFF po to by za chwilę pisać, że przecież to logiczne że po zaprogramowaniu procka w pamięci EEPROM są śmieci ... Nie nie - panie kolego to ani nie jest logiczne ani nie ma żadnych śmieci w pamięci EEPROM. Za to ty mógłbyś postarać się wyizolować i opisać swój problem.<br /><br />ale nie na zasadzie opisywania jakiegoś impulsu - bo co impuls ma wspólnego z pamięcią EEPROM ? NIC<br /><br />ot zrobić prosty test zapisu odczytu do i z EEPROM a gdy ci coś nie będzie wychodzić to zadać pytanie - tymczasem wrzucasz jakiś temat dziwnego impulsu i niektórzy zamiast skoncentrować się na EEPROM - poszukują rozwiązania problemu z impulsem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... czyli pewnie nie tego o co chodzi ...<br /><br />No chyba że ja rzeczywiście - tylko ja - wciąż niczego nie rozumiem - to ok<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 lis 2016, o 09:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-11-08T08:56:37+01:00</updated>
<published>2016-11-08T08:56:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174100#p174100</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174100#p174100"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174100#p174100"><![CDATA[
Witam<br />Być może kol.<strong>zycior</strong> jest trochę poirytowany że nie możemy załapać, ale dobrze by było gdyby opisał w jaki sposób działa ten program; kiedy następuje to nieszczęsne zwieranie a kiedy ma być jego pomiar. Na razie jest to opisane niby prosto a zagadkowo. Trochę to przypomina film &quot;Nie lubię poniedziałku&quot; gdzie gościu szuka  treblinki do kombajnu, ale tylko on wie jak to wygląda.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 8 lis 2016, o 08:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtekr51]]></name></author>
<updated>2016-11-08T00:45:41+01:00</updated>
<published>2016-11-08T00:45:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174095#p174095</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174095#p174095"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174095#p174095"><![CDATA[
Nadal jeszcze trudno mi zrozumieć, jak ma odbywać się ten pomiar czasu trwania impulsu. Napisz jak w układzie wygląda podawanie impulsu/sygnału. Jakie długości może przyjmować mierzony impuls? A może jego czas jest znany i wystarczyłoby bezpośrednio wpisać znaną wartość do eeproma?<br /><div class="quotetitle">zycior napisał(a):</div><div class="quotecontent"><br />Po prostu, dla ułatwienia sobie życia po montażu urządzenia chciałem, przy pierwszym odpaleniu tego ustrojstwa, aby zapisać czas trwania impulsu do pamięci, <strong>abym fizycznie nie musiał zawierać pinu pb0 do masy</strong>.<br /></div>W twojej odpowiedzi zawarta jest chyba następna zwrotka wspomnianej wcześniej ludowej przyśpiewki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> . Możnaby zrozumieć, że chcesz zmierzyć długość impulsu nie podawając go fizycznie na wejście. Czy może chciałeś napisać że teraz ręcznie jakoś zwierasz to wejście do masy?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1760">wojtekr51</a> — 8 lis 2016, o 00:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq5rix]]></name></author>
<updated>2016-11-07T23:54:10+01:00</updated>
<published>2016-11-07T23:54:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174093#p174093</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174093#p174093"/>
<title type="html"><![CDATA[Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174093#p174093"><![CDATA[
Jeśli czyścisz EEPROM przy programowaniu, to masz tam FF. Małem różne jazdy z eepromem, ale jeśli go czyściłem, to było tam FF, bez względu na to kiedy czytałem. <br />Ja bym dał prostego if-a - jak jest FF to leć dalej, mierz impuls i zapisuj jego długość. Raz tylko jest tem impuls? Czy się powtarza?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5966">sq5rix</a> — 7 lis 2016, o 23:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zycior]]></name></author>
<updated>2016-11-07T23:34:15+01:00</updated>
<published>2016-11-07T23:34:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174091#p174091</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174091#p174091"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174091#p174091"><![CDATA[
<div class="quotetitle">wojtekr51 napisał(a):</div><div class="quotecontent"><br />Gdybyś napisał jeszcze coś o części sprzętowej. Czy programujesz mikrokontroler umieszczony w docelowym układzie? A może dopiero później montujesz go gdzieś? Skąd pochodzi ten nieszczęsny impuls? Czy sam pomiar długości impulsu (bez zapisywania go do eeproma) działa poprawnie? Może wystarczy programowo podciągnąć wejście do VCC.<br /></div><br />Fakt, to dosyć ważne informacje.<br />Procesor programuję &quot;na zewnątrz&quot;, już zaprogramowany trafia do docelowego układu.<br />Sam układ działa bez zastrzeżeń, tak samo jak zapisanie wartości do eeproma po podaniu &quot;zera&quot; na pb0. <br /><br />Po prostu, dla ułatwienia sobie życia po montażu urządzenia chciałem, przy pierwszym odpaleniu tego ustrojstwa, aby zapisać czas trwania impulsu do pamięci, abym fizycznie nie musiał zawierać pinu pb0 do masy. <br />Przy montażu kilku, kilkunastu urządzeń w ciągu dnia, robi się to upierdliwe <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /><br />Wysłane z mojego ALE-L21 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7970">zycior</a> — 7 lis 2016, o 23:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-11-07T23:19:19+01:00</updated>
<published>2016-11-07T23:19:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174090#p174090</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174090#p174090"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174090#p174090"><![CDATA[
Witam<br />To może dać na końcu dać flagę - gdy program do niej dojdzie to ustawić wtedy &quot;zezwolenie na liczenie&quot;. Albo coś na wzór liczenia ilości naciśnieć ( jest taki przykład w BB) - Ty reagowałbyś od drugiego.<br />A tak nawiasem mówiąc trochę dziwny ten kod; m.in.: chyba powinno być PINB0.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 7 lis 2016, o 23:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtekr51]]></name></author>
<updated>2016-11-07T23:14:02+01:00</updated>
<published>2016-11-07T23:14:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174089#p174089</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174089#p174089"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174089#p174089"><![CDATA[
Gdybyś napisał jeszcze coś o części sprzętowej. Czy programujesz mikrokontroler umieszczony w docelowym układzie? A może dopiero później montujesz go gdzieś? Skąd pochodzi ten nieszczęsny impuls? Czy sam pomiar długości impulsu (bez zapisywania go do eeproma) działa poprawnie? Może wystarczy programowo podciągnąć wejście do VCC.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1760">wojtekr51</a> — 7 lis 2016, o 23:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zycior]]></name></author>
<updated>2016-11-07T22:49:21+01:00</updated>
<published>2016-11-07T22:49:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174087#p174087</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174087#p174087"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174087#p174087"><![CDATA[
[syntax=c]#include &lt;avr/eeprom.h&gt;<br />unsigned char EEMEM dlugosc_impulsu_ee = 0;<br /><br />int main(void)<br />{<br />TCCR0A |= (1 &lt;&lt; WGM01);<br />TIMSK0 |= (1 &lt;&lt; OCIE0A); <br />sei();<br />OCR0A = 6;<br />TCCR0B |=  (1 &lt;&lt; CS01);<br /><br />eeprom_busy_wait();<br />unsigned char dlugosc_impulsu = eeprom_read_byte(&amp;dlugosc_impulsu_ee);<br />_delay_ms(150);<br /><br />if ( !(PINB &amp; (1&lt;&lt;DDB0)) || dlugosc_impulsu_ee == 0xFF) {<br />czas = 0;<br />for (A = 0; A &lt;= 16; A++)<br />{<br />czas = czas + czas_impulsu();<br />PORTB ^= LED_PIN;<br />}<br />czas = czas &gt;&gt; 4;<br />LED_OFF;<br />eeprom_busy_wait();<br />eeprom_write_byte(&amp;dlugosc_impulsu_ee, czas);<br /> }[/syntax]<br /><br />Mirku, z całym szacunkiem... ale nie może to być aż tak nielogiczne skoro Twój przedmówca zrozumiał w czym rzecz.<br /><br />Ale do rzeczy... kod jak kod. Jak widać, aby wklepać wartość zmiennej czas do pamięci eeprom musi wystąpić na pinie PB0 stan niski lub w komórce &quot;&amp;dlugosc_impulsu_ee&quot; musi być wartość FF.<br />Oczywiście przy stanie niskim na pb0 wszystko działa tak jak bym sobie tego życzył.  <br />Przy pierwszym uruchomieniu procesora (w zasadzie gotowego układu), chciałbym aby wartość &quot;czas&quot; zapisać w pamieci eeprom. Problem w tym, że tak faktycznie pierwsze uruchomienia procesora jest zaraz po jego zaprogramowaniu, czyli do pamięci wpisana zostanie losowa liczba.<br /><br />Mam nadzieję, że teraz będzie to dla Ciebie nieco bardziej czytelne.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7970">zycior</a> — 7 lis 2016, o 22:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-07T22:28:24+01:00</updated>
<published>2016-11-07T22:28:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174084#p174084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174084#p174084"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174084#p174084"><![CDATA[
<div class="quotetitle">zycior napisał(a):</div><div class="quotecontent"><br />Pomyslałem, że skoro po nowym zaprogramowaniu procesora całą pamięć mam wymazaną (w każdej komórce jest 0xFF), to wystarczy mi sprawdzenie warunku. <br />W sekcji main umieściłem warunek &quot;jezeli w komórce nr. x jest wartość 0xFF odczytaj czas trwania impulsu i zapisz do tej komórki).<br />Niby proste i logiczne (tak mi się wydawało) jednak problem w tym, że tak naprawdę pierwsze uruchomienie następuje zaraz po zaprogramowaniu procesora i w komórkę w którą ma się zapisać dana wartość zapisują się losowe liczby - to logiczne bo nie mam możliwości programować układu z podanym impulsem na dany pin<br /></div><br /><br />Nie obraź się ale to mi przypomina taką starą ludową piosnkę śmieszną <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />&quot;Jadą goście jadą, kele mego sadu, do mnie nie zajadą, bo jo ni mom sadu!&quot; <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <br /><br />No ale tak jest troszkę z tym co napisałeś - bo zaczynasz od tego, że komórki w pamięci EEPROM mają wartość 0xFF, okeeej ... (to jest twój sad z tej piosenki)<br /><br />No to zrobisz warunek IF  czy jest wartość 0xFF .... oookej (jadą goście)<br /><br />po czym piszesz że ...<br /><div class="quotetitle">zycior napisał(a):</div><div class="quotecontent"><br />że tak naprawdę pierwsze uruchomienie następuje zaraz po zaprogramowaniu procesora i w komórkę w którą ma się zapisać dana wartość zapisują się losowe liczby - to logiczne bo nie mam możliwości programować układu z podanym impulsem na dany pin<br /></div><br />(no ale do ciebie goście nie zajadą <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo ty jednak nie masz sadu - czyli nie masz wartości 0xFF w EEPROM)<br />No to jak to w końcu jest ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />.... a za to już końcówka zdania że coś tam jest logiczne bo nie masz możliwości programować układu z podanym impulsem na dany pin to już przekracza moją percepcję - co autor miał na myśli<br /><br />----------------------------------------<br /><br />to tak pół żartem pół serio - i nie obrażaj się - za to postaraj się lepiej przemyśleć jak zadać pytanie i opisać problem - żeby uzyskać poprawną odpowiedź albo jakąś pomoc, poradę ....<br /><br />Ponieważ nie wiem kompletnie o co chodzi tzn jaki masz problem to podpowiem tylko - że <br /><br />1. dobrze myślałeś że po skasowaniu w EEPROM powinno być i jest 0xFF w każdej komórce<br />2. dobrze myślałeś że można sprawdzić czy jest w niej 0xFF i wtedy coś zapisać<br /><br />ale równie dobrze w kodzie mogłeś spaskudzić milion rzeczy - więc bez pokazania swojego kodu to wygląda jeszcze bardziej blado<br /><br />ale ok - nie ważne - chcesz wiedzieć jak się postępuje z pamięcią EEPROM ?<br /><br />obejrzyj to:<br /><br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=W7f0EnDzS_M" >https://www.youtube.com/watch?v=W7f0EnDzS_M</a><!-- m --><br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=ix0EBtdiviY" >https://www.youtube.com/watch?v=ix0EBtdiviY</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 lis 2016, o 22:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zycior]]></name></author>
<updated>2016-11-07T22:14:01+01:00</updated>
<published>2016-11-07T22:14:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174081#p174081</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174081#p174081"/>
<title type="html"><![CDATA[Re: Wpisanie wartości do eprom przy pierwszym starcie Attiny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16755&amp;p=174081#p174081"><![CDATA[
Musiałbym wtedy pilnować, aby odłączyć procesor zaraz po programowaniu, ale przetestuje to rozwiazanie. <br />Dzięki<br /><br />Wysłane z mojego ALE-L21 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7970">zycior</a> — 7 lis 2016, o 22:14</p><hr />
]]></content>
</entry>
</feed>