<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.ethernut.de/nutwiki/index.php?action=history&amp;feed=atom&amp;title=Cppdemo.c</id>
		<title>Cppdemo.c - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.ethernut.de/nutwiki/index.php?action=history&amp;feed=atom&amp;title=Cppdemo.c"/>
		<link rel="alternate" type="text/html" href="http://www.ethernut.de/nutwiki/index.php?title=Cppdemo.c&amp;action=history"/>
		<updated>2026-04-29T00:27:24Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://www.ethernut.de/nutwiki/index.php?title=Cppdemo.c&amp;diff=50&amp;oldid=prev</id>
		<title>Harald: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://www.ethernut.de/nutwiki/index.php?title=Cppdemo.c&amp;diff=50&amp;oldid=prev"/>
				<updated>2016-10-27T16:02:52Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:02, 27 October 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Harald</name></author>	</entry>

	<entry>
		<id>http://www.ethernut.de/nutwiki/index.php?title=Cppdemo.c&amp;diff=49&amp;oldid=prev</id>
		<title>Steinwedel at 21:09, 1 May 2007</title>
		<link rel="alternate" type="text/html" href="http://www.ethernut.de/nutwiki/index.php?title=Cppdemo.c&amp;diff=49&amp;oldid=prev"/>
				<updated>2007-05-01T21:09:13Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Dieses Beispiel zeigt, wie Nut/OS in Verbindung mit C++ verwendet werden kann. Auch wenn die Verwendung von C++ möglich ist, sollten die Vor- und Nachteile sorgfältig abgewogen werden. Nicht nur die Resourcen können knapp sein. C++ kann die Fehlersuche komplizieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Trivial C++ Demo for NutOS.&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;cpp/nutcpp.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
extern &amp;quot;C&amp;quot; {&lt;br /&gt;
#include &amp;lt;dev/board.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/version.h&amp;gt;&lt;br /&gt;
#include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
#include &amp;lt;io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
template&amp;lt;class tp_type&amp;gt; class TemplateCounter&lt;br /&gt;
{&lt;br /&gt;
protected:&lt;br /&gt;
    tp_type m_value;&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    tp_type value() const { return m_value; }&lt;br /&gt;
    void inc() { m_value++; }&lt;br /&gt;
    void dec() { m_value--; }&lt;br /&gt;
    void set(const tp_type &amp;amp;newValue) { m_value = newValue; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class Counter: public TemplateCounter&amp;lt;uint8_t&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    void print(FILE *stream);&lt;br /&gt;
&lt;br /&gt;
    Counter(uint8_t initValue=10);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void Counter::print(FILE* stream)&lt;br /&gt;
{&lt;br /&gt;
    fprintf(stream, &amp;quot;\nCounter value = %i\n&amp;quot;, value());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Counter::Counter(uint8_t initValue)&lt;br /&gt;
{&lt;br /&gt;
    m_value = initValue;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    u_long baud = 115200;&lt;br /&gt;
&lt;br /&gt;
    NutRegisterDevice(&amp;amp;DEV_UART0, 0, 0);&lt;br /&gt;
    FILE *stream = fopen(DEV_UART0_NAME, &amp;quot;r+&amp;quot;);&lt;br /&gt;
    _ioctl(_fileno(stream), UART_SETSPEED, &amp;amp;baud);&lt;br /&gt;
&lt;br /&gt;
    fprintf(stream, &amp;quot;\n\nC++ Demo on Nut/OS %s ready.\n&amp;quot;, NutVersionString());&lt;br /&gt;
&lt;br /&gt;
    Counter counter;&lt;br /&gt;
    counter.print(stream);&lt;br /&gt;
&lt;br /&gt;
    for (;;) {&lt;br /&gt;
        char c;&lt;br /&gt;
        fread(&amp;amp;c, sizeof(c), 1, stream);&lt;br /&gt;
&lt;br /&gt;
        switch (c) {&lt;br /&gt;
        case '+':&lt;br /&gt;
            counter.inc();&lt;br /&gt;
            counter.print(stream);&lt;br /&gt;
            break;&lt;br /&gt;
        case '-':&lt;br /&gt;
            counter.dec();&lt;br /&gt;
            counter.print(stream);&lt;br /&gt;
            break;&lt;br /&gt;
        case 'r':&lt;br /&gt;
            counter.set(0);&lt;br /&gt;
            counter.print(stream);&lt;br /&gt;
            break;&lt;br /&gt;
        default:&lt;br /&gt;
            fprintf(stream, &amp;quot;Unknown command.\n&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
cppdemo.c [[Copyright]] by egnite Software GmbH&lt;/div&gt;</summary>
		<author><name>Steinwedel</name></author>	</entry>

	</feed>