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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-09-04T22:05:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=12007&amp;mode</id>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-09-04T22:05:19+01:00</updated>
<published>2015-09-04T22:05:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=139148#p139148</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=139148#p139148"/>
<title type="html"><![CDATA[Re: Dziedziczenie, konstruktory, szablony.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=139148#p139148"><![CDATA[
Dziękuję za obszerną odpowiedź. Teraz wszystko jasne <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Bufor może być spokojnie mniejszy. Ten kod i tak nic użytecznego nie robi póki co. Napisałem go dla sprawdzenia mechanizmów C++. Teraz widzę też pewną wadę mojego podejścia, bo jeśli będę miał ochotę obsłużyć 2 USARTy z różnymi rozmiarami buforów to dostanę cały kod razy dwa, a nie o to chodziło :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 4 wrz 2015, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-09-03T10:44:09+01:00</updated>
<published>2015-09-03T10:44:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=139021#p139021</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=139021#p139021"/>
<title type="html"><![CDATA[Re: Dziedziczenie, konstruktory, szablony.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=139021#p139021"><![CDATA[
Odświeżę nieśmiało, może jest na sali kolega mokrowski?  <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=4440">Federerer</a> — 3 wrz 2015, o 10:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-06-14T12:52:13+01:00</updated>
<published>2015-06-14T12:52:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=131722#p131722</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=131722#p131722"/>
<title type="html"><![CDATA[Dziedziczenie, konstruktory, szablony.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12007&amp;p=131722#p131722"><![CDATA[
Witam, w ramach ćwiczeń kombinuję sobie w C++. Założyłem, że chcę stworzyć klasę UsartBuffered, która dziedziczy z klasy Usart i posiada bufor o długości określonej przez szablon. Niestety coś nie działa tak jak bym chciał (dostaję błąd linkera):<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">out/main.o: In function `__static_initialization_and_destruction_0':<br />D:\ARM\stm32f0_ultrasonic_sensor_cpp/main.cpp:76: undefined reference to `UsartBuffered&lt;128ul&gt;::UsartBuffered(USART_TypeDef&amp;, unsigned long)'<br />collect2.exe: error: ld returned 1 exit status</div><br />Kod wygląda tak:<br /><br />stm32f0_usart.hpp<br />[syntax=cpp]/*<br /> * stm32f0_usart.hpp<br /> *<br /> *  Created on: 10 cze 2015<br /> *      Author: Federerer<br /> */<br /><br />#ifndef STM32F0_USART_HPP_<br />#define STM32F0_USART_HPP_<br /><br />#include &quot;inc/stm32f0xx.h&quot;<br /><br />class Usart<br />{<br />public:<br />Usart(USART_TypeDef &amp; usart, uint32_t baud);<br />void SendByte(uint8_t byte) const;<br />uint8_t GetByte(void);<br /><br />private:<br /><br />mutable USART_TypeDef usart_;<br />mutable uint32_t baud_;<br /><br />};<br /><br /><br /><br />template&lt;uint32_t bufferSize&gt;<br />class UsartBuffered : public Usart<br />{<br />public:<br />UsartBuffered&lt;bufferSize&gt;(USART_TypeDef&amp; usart, uint32_t baud);<br />private:<br />uint8_t buffer&#91;bufferSize&#93;;<br />};<br /><br />#endif /* STM32F0_USART_HPP_ */[/syntax]<br /><br />stm32f0_usart.cpp<br />[syntax=cpp]/*<br /> * stm32f0_usart.cpp<br /> *<br /> *  Created on: 10 cze 2015<br /> *      Author: Federerer<br /> */<br /><br /><br />#include &quot;stm32f0_usart.hpp&quot;<br /><br />Usart::Usart(USART_TypeDef&amp; usart, uint32_t baud) : usart_(usart), baud_(baud)<br />{<br />usart.BRR = baud_;<br />usart.CR1 |= USART_CR1_TE | USART_CR1_UE;<br />}<br /><br />void Usart::SendByte(uint8_t byte) const<br />{<br />usart_.TDR = byte;<br />}<br /><br />template&lt;uint32_t bufferSize&gt;<br />UsartBuffered&lt;bufferSize&gt;::UsartBuffered(USART_TypeDef&amp; usart, uint32_t baud) : Usart(usart, baud)<br />{<br />uint8_t buffer&#91;bufferSize&#93;;<br />}[/syntax]<br /><br />main.cpp<br />[syntax=cpp]UsartBuffered&lt;128&gt; RS485 = UsartBuffered&lt;128&gt;(*USART1, 9600);[/syntax]<br /><br />Coś pewnie robię źle... Może istnieje jakaś lepsza metoda na realizacje moich założeń? Chcę raczej uniknąć samodzielnego tworzenia obiektu typu np &quot;Buffer&quot; i przekazywania go w konstruktorze Usarta, wolę aby był on widoczny tylko wewnątrz klasy Usart.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 14 cze 2015, o 12:52</p><hr />
]]></content>
</entry>
</feed>