<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mcselec.com/bavr/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=CONFIG_VPORT%2Fde</id>
		<title>CONFIG VPORT/de - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=CONFIG_VPORT%2Fde"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_VPORT/de&amp;action=history"/>
		<updated>2026-07-30T09:43:24Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=CONFIG_VPORT/de&amp;diff=2253&amp;oldid=prev</id>
		<title>Admin: 1 revision</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_VPORT/de&amp;diff=2253&amp;oldid=prev"/>
				<updated>2013-02-15T19:13:53Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:13, 15 February 2013&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=CONFIG_VPORT/de&amp;diff=2252&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;= &lt;span class=&quot;f_Header&quot;&gt;Action&lt;/span&gt; =  Maps an XMEGA port to a virtual port.  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/spa...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_VPORT/de&amp;diff=2252&amp;oldid=prev"/>
				<updated>2013-02-08T11:59:53Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =  Maps an XMEGA port to a virtual port.  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/spa...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== (**COPIED FROM ENGLISH PAGE**) === &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Maps an XMEGA port to a virtual port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Syntax&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;CONFIG VPORT0&amp;lt;/span&amp;gt;&amp;amp;nbsp;= port &amp;amp;nbsp;[, VPORT1=port, VPORT2=port, VPORT3=port]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Remarks&amp;lt;/span&amp;gt; =&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;567&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;17%&amp;quot; style=&amp;quot;width: 93px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
VPORT&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 465px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
There are 4 virtual port registers. When setting up these registers, you need to use VPORTx, where X is 0,1,2 or 3, indicating the virtual port.&lt;br /&gt;
&lt;br /&gt;
The virtual port itself is accesed via it's registers PORTy, PINy and DDRy where Y is a 0,1 ,2 or 3.&lt;br /&gt;
&lt;br /&gt;
The normal ports have named like PORTA, PORTB, etc.&lt;br /&gt;
&lt;br /&gt;
A virtual port will access the same port but using a different register.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;17%&amp;quot; style=&amp;quot;width: 93px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
port&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 465px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The last letter of the real port name. For example A for PORTA, B for PORTB, C for PORTC etc.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All ports in the Xmega are located in the extended address area. This space can only be accessed with instructions like LDS,STS, LD and ST.&lt;br /&gt;
&lt;br /&gt;
Special bit instructions only work on the lower IO-registers.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;Xmega example&amp;amp;nbsp;:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;again:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;Lds r24, PINA &amp;amp;nbsp;&amp;amp;nbsp;; read port input value&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;sbrs r24,7 &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;; skip next instruction if bit 7 is set (1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;rjmp again &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;; try again&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;Now the same code for a normal AVR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;again:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;sbis PINA,7 &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;; skip if pina.7 is set&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;rjmp again&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not only less code is required, but the LDS takes 3 cycles&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
With the virtual mapping, you can access any PORT register (PORT,PIN and DDR) via it's virtual name PORT0, PIN0 or DDR0.&lt;br /&gt;
&lt;br /&gt;
Since there are 4 virtual mapping registers, you can define PORT0, PORT1, PORT2 and PORT3.&lt;br /&gt;
&lt;br /&gt;
When you write to PORT&amp;lt;span style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt;, the compiler can use the smaller/quicker code.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Devices like graphical LCD can benefit from this.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;See Also&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;[[CONFIG PORT|CONFIG PORT]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'-----------------------------------------------------------------&lt;br /&gt;
' (c) 1995-2010, MCS&lt;br /&gt;
' Mapping Real Ports to Virtual Ports.bas&lt;br /&gt;
' This sample demonstrates mapping ports to virtual ports&lt;br /&gt;
' based on MAK3's sample&lt;br /&gt;
'-----------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
$swstack = 40&lt;br /&gt;
$framesize = 40&lt;br /&gt;
 &lt;br /&gt;
'include the following lib and code, the routines will be replaced since they are a workaround&lt;br /&gt;
$lib &amp;quot;xmega.lib&amp;quot;&lt;br /&gt;
$external _xmegafix_clear&lt;br /&gt;
$external _xmegafix_rol_r1014&lt;br /&gt;
 &lt;br /&gt;
'first enable the osc of your choice&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
 &lt;br /&gt;
'configure the systemclock&lt;br /&gt;
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1&lt;br /&gt;
 &lt;br /&gt;
Config Com1 = 19200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;Map VPorts&amp;quot;&lt;br /&gt;
'map portD to virtual port0, map portE to virtual port1, map portC to virtual port2&lt;br /&gt;
'map portR to virtual port 3&lt;br /&gt;
Config VPort0 = D , VPort1 = E , VPort2 = C , VPort3 = R&lt;br /&gt;
 &lt;br /&gt;
'Each virtual port is available as PORT0, PORT1, PORT2 and PORT3&lt;br /&gt;
' data direct is available as DDR0 , DDR1, DDR2 and DDR3&lt;br /&gt;
' PIN input is available as PIN0 , PIN1, PIN2 and PIN3&lt;br /&gt;
 &lt;br /&gt;
'The advantage of virtual port registers is that shorter asm instruction can be used which also use only 1 cycle&lt;br /&gt;
Dim Var As Byte&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'Real Port Direction&lt;br /&gt;
Ddr1 = &amp;amp;B0000_0000 ' Port E = INPUT&lt;br /&gt;
Ddr0 = &amp;amp;B1111_1111 ' Port D = OUTPUT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'Continously copy the value from PORTE to PORTD using the virtual ports.&lt;br /&gt;
Do&lt;br /&gt;
 Var = Pin1 'Read Virtual Port 0&lt;br /&gt;
 Port0 = Var 'Write Virtual Port 1&lt;br /&gt;
Loop&lt;br /&gt;
 &lt;br /&gt;
End 'end program&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br/&amp;gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:BASCOM Language Reference/de]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>