<?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_hardware</id>
	<title>Serial hardware - Versionshistorie</title>
	<link rel="self" type="application/atom+xml" href="https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=Serial_hardware"/>
	<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Serial_hardware&amp;action=history"/>
	<updated>2026-09-15T18:56:05Z</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_hardware&amp;diff=4563&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_hardware&amp;diff=4563&amp;oldid=prev"/>
		<updated>2022-11-04T19:35:44Z</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:35&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-l70&quot;&gt;Linje 70:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linje 70:&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;ADVARSEL - programmet standser afviklingen indtil der er modtaget en byte, fordi programmet 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;ADVARSEL - programmet standser afviklingen indtil der er modtaget en byte, fordi programmet 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_hardware&amp;diff=2196&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_hardware&amp;diff=2196&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_hardware&amp;diff=2195&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_hardware&amp;diff=2195&amp;oldid=prev"/>
		<updated>2013-08-17T19:44:06Z</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_hardware.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;
Her definerer man hvordan der skal kommunikeres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
pin_b5_direction = input   -- Define input and output for RX and TX pins&lt;br /&gt;
pin_b7_direction = output&lt;br /&gt;
&lt;br /&gt;
const serial_hw_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 er processor-afhængigt, så man skal lige forbi databladet for at se hvordan man gør det. Dette eksempel er for en [[PIC16F690]].&lt;br /&gt;
&lt;br /&gt;
Baud-rate (eller bits pr. sekund) kan ikke vælges helt frit. Hvis det sættes for hurtigt, så kan baud-rate registrene ikke sættes præcist nok (afhænger også af clock-hastigheden), og dermed virker modulet ikke. Det kan også blive et problem at nå at hente alle karakterer.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af modulet==&lt;br /&gt;
&lt;br /&gt;
Når man har sat benene op og defineret baudrate, 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_hardware&lt;br /&gt;
&lt;br /&gt;
serial_hw_init()  -- gennemfør opsætningen af UART&amp;#039;en&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dette sætter op, så man kan sende og modtage med den korrekte hastighed.&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 man modtage karakterer som følger:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
   if serial_hw_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 ofte i koden for ikke at miste noget i modtagelsen, hvis der kommer flere karakterer i træk. Hvis man f.x. kommunikerer med 1200 Baud vil man skulle tjekke med mindre end 8 ms mellemrum, da man ellers vil kunne miste en byte.&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_hw_write(char)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendingen venter, hvis hele den foregående byte er sendt afsted.&lt;br /&gt;
&lt;br /&gt;
===Sending af word (to bytes)===&lt;br /&gt;
Det at sende et word er lige så simpelt, da man blot skriver&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
   serial_hw_write_word(0xFFFF)&lt;br /&gt;
&amp;lt;/source&amp;gt;&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_hw_data = Temp  -- Sender variablen Temp&lt;br /&gt;
   Temp = serial_hw_data  -- Modtager en byte og placerer den i Temp&lt;br /&gt;
   -- Gør noget fornuftigt med det modtagne&lt;br /&gt;
   Temp = serial_hw_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;
ADVARSEL - programmet standser afviklingen indtil der er modtaget en byte, fordi programmet 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>