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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2023-06-13T11:01:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24498&amp;mode</id>
<entry>
<author><name><![CDATA[moscow]]></name></author>
<updated>2023-06-13T11:01:15+01:00</updated>
<published>2023-06-13T11:01:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237103#p237103</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237103#p237103"/>
<title type="html"><![CDATA[Re: Wyprowadzenie sygnału taktowania na PORT]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237103#p237103"><![CDATA[
<div class="quotetitle">elektrykapradnietyka napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">elektrykapradnietyka napisał(a):</div><div class="quotecontent">Użyłbym trybu timera 2 - CTC, gdzie wartość TOP jest ustawiana na zawartość rejestru OCR0.<br /></div><br /><br />W jednym z ćwiczeń z książki p. Mirek użył trybu FAST PWM gdzie jasność diody była wysterowana przez rejestr OCR0 (wtedy projekt zadziałał mi normalnie tak jak należy, nie rozumiem jak, bo zgodnie z tym co napisałeś to nie miało prawa zadziałać, byc może o czymś nie wiem)<br /><br /><div class="quotetitle">elektrykapradnietyka napisał(a):</div><div class="quotecontent"><br />Niemniej jednak używając tej techniki nie uzyskasz na wyjściu częstotliwości zegara - maksymalną częstotliwością będzie częstotliwość zegara podzielona na pół (czyli 4 MHz).<br /></div>\<br /><br />Czy jesteś mi w stanie powiedzieć dlaczego tak się dzieje??<br />Chciałbym to zrozumieć skąd się biorą te ograniczenia.</div><br /><br />Jeśli chodzi o jasność diody, to jak najbardziej wszystko działa jak należy. W trybie FAST PWM masz stałą częstotliwość na wyjściu (jak zauważyłeś ok. 32kHz, dla ATmegi32 tylko taki tryb FAST PWM jest dostępny) i rejestrem OCR0 zmieniasz współczynnik wypełnienia sygnału prostokątnego (powiedzmy dla uproszczenia od 0% do 100%).<br />Tryb FAST PWM masz ładnie rozrysowany na stronie 75 (obrazek 32) <a href="https://ww1.microchip.com/downloads/en/DeviceDoc/doc2503.pdf"  class="postlink">dokumentacji</a>.<br />Ale to jest inny problem niż ten który jak rozumiem chcesz rozwiązać.<br /><br />W <a href="https://ww1.microchip.com/downloads/en/DeviceDoc/doc2503.pdf"  class="postlink">datasheecie ATmega32</a> na stronie 80tej masz rozpisane w tabelce 38 wszyzstkie rodzaje trybów działania Timera 0 (i Timera 1) w ATmedze32. <br />Tryb 3 - FAST PWM - liczy od 0x00 do 0xFF (255), więc wyjściowa częstotliwość masz definiowaną właściwie przez prescaller.<br />Tryb 2 - CTC - liczy od 0x00 do wartości w OCR0 - czyli możesz ustawić ten rejestr tak, żeby wyzwalanie (compare match) Timera odbywało się co cykl procesora.<br />Na stronie 81 masz następną tabelkę nr. 39 - rejetrów COM01/COM00. Jednym z trybów jest przełączanie wyjścia OC0 na wyzwoleniu Timera (Toggle OC0 on compare match)<br />Biorąc pod uwagę, że co jeden cykl zegara wyzwalany jest timer, a w każdym takim przypadku zmieniana jest wartość wyjściowa z 1 na 0 lub 0 na 1 - to dostajemy podzielenie częstotliwości przez 2 - bo np. w pierwszym wyzwoleniu zmieni się z 0 na 1, w wyzwoleniu drugim z 1 na 0, w wyzwoleniu trzecim znów z 0 na 1 itd (wyzwolenia wykonują się po pełnym cyklu zegara, czyli po pełnym przejściu z niskiego na wysoki i z wysokiego na niski)<br /><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=20760">moscow</a> — 13 cze 2023, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektrykapradnietyka]]></name></author>
<updated>2023-06-13T09:54:57+01:00</updated>
<published>2023-06-13T09:54:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237102#p237102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237102#p237102"/>
<title type="html"><![CDATA[Re: Wyprowadzenie sygnału taktowania na PORT]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237102#p237102"><![CDATA[
<div class="quotetitle">elektrykapradnietyka napisał(a):</div><div class="quotecontent"><br />Użyłbym trybu timera 2 - CTC, gdzie wartość TOP jest ustawiana na zawartość rejestru OCR0.<br /></div><br /><br />W jednym z ćwiczeń z książki p. Mirek użył trybu FAST PWM gdzie jasność diody była wysterowana przez rejestr OCR0 (wtedy projekt zadziałał mi normalnie tak jak należy, nie rozumiem jak, bo zgodnie z tym co napisałeś to nie miało prawa zadziałać, byc może o czymś nie wiem)<br /><br /><div class="quotetitle">elektrykapradnietyka napisał(a):</div><div class="quotecontent"><br />Niemniej jednak używając tej techniki nie uzyskasz na wyjściu częstotliwości zegara - maksymalną częstotliwością będzie częstotliwość zegara podzielona na pół (czyli 4 MHz).<br /></div>\<br /><br />Czy jesteś mi w stanie powiedzieć dlaczego tak się dzieje??<br />Chciałbym to zrozumieć skąd się biorą te ograniczenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19764">elektrykapradnietyka</a> — 13 cze 2023, o 09:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektrykapradnietyka]]></name></author>
<updated>2023-06-12T22:37:26+01:00</updated>
<published>2023-06-12T22:37:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237101#p237101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237101#p237101"/>
<title type="html"><![CDATA[Re: Wyprowadzenie sygnału taktowania na PORT]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237101#p237101"><![CDATA[
<div class="quotetitle">moscow napisał(a):</div><div class="quotecontent"><br />W trybie Fast PWM wartość TOP w licznika timera w trybie który użyłeś (Tryb 3) to 0xFF (255), czyli dzielisz częstotliwość zawsze przez 256 - więc na wyjściu bedziesz miał - jeśli dobrze liczę 31250 Hz.<br />Użyłbym trybu timera 2 - CTC, gdzie wartość TOP jest ustawiana na zawartość rejestru OCR0.<br />Niemniej jednak używając tej techniki nie uzyskasz na wyjściu częstotliwości zegara - maksymalną częstotliwością będzie częstotliwość zegara podzielona na pół (czyli 4 MHz). Jeśli koniecznie chcesz 8MHz, to można też użyć głównego zegara w częstotliwości 16MHz<br /><br />Z tego co pamiętam jedyną możliwością wypuszczenia częstotliwości głównego zegara procka jest użycie sposobu który już Ci opisywałem w tym poście:<br /><!-- l --><a class="postlink-local" href="https://forum.atnel.pl/topic24493.html" >topic24493.html</a><!-- l --><br />Ale biorąc pod uwagę, że w Twoim kodzie jest użyty rejestr OCR0  (a nie OCR0A), to zakładam, że masz jakiś starszy procek, który tego akurat nie wspiera (przy okazji zadawania pytania warto podać na jakim dokładnie procku pracujesz - może to co nieco ułatwić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> )<br /><br />W nowszych prockach jest też tryb Fast PWM liczony do OCR0A (tryb 7), ale ten też nie jest pewnie wspierany w Twoim procku.<br /></div> <br /><br />Używam AtMegi 32<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19764">elektrykapradnietyka</a> — 12 cze 2023, o 22:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[moscow]]></name></author>
<updated>2023-06-11T08:56:37+01:00</updated>
<published>2023-06-11T08:56:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237098#p237098</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237098#p237098"/>
<title type="html"><![CDATA[Re: Wyprowadzenie sygnału taktowania na PORT]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237098#p237098"><![CDATA[
W trybie Fast PWM wartość TOP w licznika timera w trybie który użyłeś (Tryb 3) to 0xFF (255), czyli dzielisz częstotliwość zawsze przez 256 - więc na wyjściu bedziesz miał - jeśli dobrze liczę 31250 Hz.<br />Użyłbym trybu timera 2 - CTC, gdzie wartość TOP jest ustawiana na zawartość rejestru OCR0.<br />Niemniej jednak używając tej techniki nie uzyskasz na wyjściu częstotliwości zegara - maksymalną częstotliwością będzie częstotliwość zegara podzielona na pół (czyli 4 MHz). Jeśli koniecznie chcesz 8MHz, to można też użyć głównego zegara w częstotliwości 16MHz<br /><br />Z tego co pamiętam jedyną możliwością wypuszczenia częstotliwości głównego zegara procka jest użycie sposobu który już Ci opisywałem w tym poście:<br /><!-- l --><a class="postlink-local" href="https://forum.atnel.pl/topic24493.html" >topic24493.html</a><!-- l --><br />Ale biorąc pod uwagę, że w Twoim kodzie jest użyty rejestr OCR0  (a nie OCR0A), to zakładam, że masz jakiś starszy procek, który tego akurat nie wspiera (przy okazji zadawania pytania warto podać na jakim dokładnie procku pracujesz - może to co nieco ułatwić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> )<br /><br />W nowszych prockach jest też tryb Fast PWM liczony do OCR0A (tryb 7), ale ten też nie jest pewnie wspierany w Twoim procku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20760">moscow</a> — 11 cze 2023, o 08:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektrykapradnietyka]]></name></author>
<updated>2023-06-10T23:57:42+01:00</updated>
<published>2023-06-10T23:57:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237097#p237097</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237097#p237097"/>
<title type="html"><![CDATA[Wyprowadzenie sygnału taktowania na PORT]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24498&amp;p=237097#p237097"><![CDATA[
Witam.<br /><br />Próbuję wyprowadzić sygnał taktowania na PB3 na zasadzie podzielenia F_CPU = 8MHz za pomocą OCR0 przez 1.<br />Problem polega na tym, że od wartości OCR0 = 150 w dół, częstotliwość nie daje się podzielić. tzn. na wyjściu pojawia się sygnał 32 kHz.<br />O co tu chodzi??<br /><br /><a href="https://obrazkiforum.atnel.pl/19764/a7563c0e7c950f371c62a8a4f2c3413b.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/19764/a7563c0e7c950f371c62a8a4f2c3413b.PNG" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19764">elektrykapradnietyka</a> — 10 cze 2023, o 23:57</p><hr />
]]></content>
</entry>
</feed>