<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="da">
	<id>https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=Serial_software</id>
	<title>Serial software - Versionshistorie</title>
	<link rel="self" type="application/atom+xml" href="https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=Serial_software"/>
	<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Serial_software&amp;action=history"/>
	<updated>2026-07-29T19:37:09Z</updated>
	<subtitle>Versionshistorie for denne side i HTX Arduino</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Serial_software&amp;diff=4565&amp;oldid=prev</id>
		<title>Bar: /* Sending og modtagelse som Pseudovariable */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Serial_software&amp;diff=4565&amp;oldid=prev"/>
		<updated>2022-11-04T19:36:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Sending og modtagelse som Pseudovariable&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;da&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ældre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen fra 4. nov. 2022, 21:36&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l71&quot;&gt;Linje 71:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linje 71:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;De har stadig samme ulemper, at programmet standser afviklingen indtil byten er sendt, og den stiller sig til at vente på der kommer en byte, og den låser hvis der ikke kommer en byte.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;De har stadig samme ulemper, at programmet standser afviklingen indtil byten er sendt, og den stiller sig til at vente på der kommer en byte, og den låser hvis der ikke kommer en byte.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Logik-begreber}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{moduler}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{moduler}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bar</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Serial_software&amp;diff=2200&amp;oldid=prev</id>
		<title>Bar: 1 version importeret</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Serial_software&amp;diff=2200&amp;oldid=prev"/>
		<updated>2022-10-22T12:13:13Z</updated>

		<summary type="html">&lt;p&gt;1 version importeret&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;da&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ældre version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen fra 22. okt. 2022, 14:13&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;da&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Ingen forskel)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bar</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Serial_software&amp;diff=2199&amp;oldid=prev</id>
		<title>htx_&gt;Bar: /* Sending og modtagelse som Pseudovariable */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Serial_software&amp;diff=2199&amp;oldid=prev"/>
		<updated>2013-08-17T19:43:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Sending og modtagelse som Pseudovariable&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Det grundlæggende omkring seriel kommunikation er beskrevet under [[seriel port]].&lt;br /&gt;
==serial_software.jal==&lt;br /&gt;
Som de fleste generelle moduler, der er med i jalpack, så bygger det på at man sætter nogle ting op inden man [[include]]r filen, og så kan man anvende de procedurer der er i modulet&lt;br /&gt;
&lt;br /&gt;
Softwaren ligger i jalpack/lib.&lt;br /&gt;
&lt;br /&gt;
==Ting der skal sættes op inden include==&lt;br /&gt;
Inden man includer filen der definerer hvordan der skal kommunikeres, og som indeholder alle rutiner, så skal man sætte nogle ting op:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
alias     serial_sw_rx_pin    is pin_a5      -- Serial Receive pin&lt;br /&gt;
alias     serial_sw_tx_pin    is pin_a4      -- Serial Transmit pin&lt;br /&gt;
&lt;br /&gt;
pin_a5_direction = input   -- Define input and output&lt;br /&gt;
pin_a4_direction = output&lt;br /&gt;
&lt;br /&gt;
const serial_sw_baudrate = 9600&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin definitionerne angive hvilken pin der skal modtages på, og hvilken pin der skal sendes på. Dette kan vælges helt frit. Man skal blot huske også at rette direction benene op.&lt;br /&gt;
&lt;br /&gt;
Baud-rate (eller bits pr. sekund) kan vælges rimeligt frit. Hvis det sættes for hurtigt, så kan processoren få svært ved at følge med til tjekke for modtagelsen, og dermed virker modtagelsen ikke (man får startet inde midt i karakterer).&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af modulet==&lt;br /&gt;
Efter at have defineret tingene omkring porten, så skrives blot&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
-- Opsæning som beskrevet i andet afsnit&lt;br /&gt;
include serial_software&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan der sendes og modtages karakterer.&lt;br /&gt;
&lt;br /&gt;
==Modtagelse af karakterer==&lt;br /&gt;
I main-loopet (forever-loopet) kan mansom følger:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
   if ser_sw_read(temp) then&lt;br /&gt;
      -- Anvend den modtagne byte temp til noget fornuftigt&lt;br /&gt;
   end if&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Det er vigtigt at der tjekkes meget ofte i koden og få gang i modtagelsen. Hvis man f.x. kommunikerer med 1200 Baud vil man skulle tjekke mindst to gange i en startbit, altså minimum for hver 0,4 ms, da man ellers vil kunne komme forkert ind på en startbit.&lt;br /&gt;
&lt;br /&gt;
På grund af denne begrænsning er der også en anden procedure der venter på starten af bitten:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
   ser_sw_read_wait(temp)&lt;br /&gt;
   -- Anvend den modtagne byte temp til noget fornuftigt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denne anvendelse ser måske enklere ud, men den har den store ulempe, at den låser indtil der kommer en karakter, og det endda med [[interrupt]]et slået fra, så hvis der ikke kommer en karakter, vil den aldrig komme videre med resten af programmet.&lt;br /&gt;
&lt;br /&gt;
==Sending af karakterer==&lt;br /&gt;
Det at sende en karakter er meget simpelt, da man blot skriver&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
   serial_sw_write(char)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendingen vil ikke returnere inden hele byten er sendt afsted.&lt;br /&gt;
&lt;br /&gt;
==Sending og modtagelse som Pseudovariable==&lt;br /&gt;
&lt;br /&gt;
Der ligger også rutiner der implementerer sending og modtagelse, så det ligner variabler. Det anvendes på følgende måde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
   serial_sw_data = Temp  -- Sender variablen Temp&lt;br /&gt;
   Temp = serial_sw_data  -- Modtager en byte og placerer den i Temp&lt;br /&gt;
   -- Gør noget fornuftigt med det modtagne&lt;br /&gt;
   Temp = serial_sw_data  -- Modtager en ny byte og placerer den i Temp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man skal være opmærksom på at det ikke er normale variabler. Hver gang man læser i variablen, så læses der faktisk en ny byte fra den serielle indgang.&lt;br /&gt;
&lt;br /&gt;
De har stadig samme ulemper, at programmet standser afviklingen indtil byten er sendt, og den stiller sig til at vente på der kommer en byte, og den låser hvis der ikke kommer en byte.&lt;br /&gt;
&lt;br /&gt;
{{moduler}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:JAL-moduler]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Seriel Kommunikation]]&lt;/div&gt;</summary>
		<author><name>htx_&gt;Bar</name></author>
	</entry>
</feed>