<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%2F%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022</id>
	<title>Микропроцесорски системи/Фебруар 2022 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%2F%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;action=history"/>
	<updated>2026-06-04T06:11:39Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=7224&amp;oldid=prev</id>
		<title>Aleksa: /* driver_uart.c */</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=7224&amp;oldid=prev"/>
		<updated>2024-01-30T13:38:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;driver_uart.c&lt;/span&gt;&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 30. јануар 2024. у 15:38&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-l152&quot;&gt;Ред 152:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 152:&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;}&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;}&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;void UART_AsyncTransmitString(char const *string)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if (string == NULL) return;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreTake(UART_TransmitMutexHandle, portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	for(uint8_t i = 0; i &amp;lt; strlen(string); i++){&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		xQueueSendToBack(UART_TransmitQueueHandle,string + i, portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreGive(UART_TransmitMutexHandle);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;void UART_AsyncTransmitDecimal(uint32_t decimal)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	char digits[32];&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	int index = 32;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreTake(UART_TransmitMutexHandle, portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	while (index &gt;= 0 &amp;amp;&amp;amp; decimal !=0){&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		digits[--index]=(decimal%10)-&#039;0&#039;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		decimal /= 10;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	for(int i = index; i &amp;lt; 32; i++){&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		xQueueSendToBack(UART_TransmitQueueHandle,digits[i],portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreGive(UART_TransmitMutexHandle);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;// RECEIVE UTIL&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;// RECEIVE UTIL&lt;/div&gt;&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-l190&quot;&gt;Ред 190:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 165:&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;}&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;}&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;char* UART_BlockReceiveString()&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	char* string = pvPortMalloc(64);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if(string == NULL) return 0;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreTake(UART_ReceiveMutexHandle, portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	uint8_t i=0;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	char c = &#039;\0&#039;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	while(c != &#039;\r&#039; &amp;amp;&amp;amp; i &amp;lt; 64){&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		xQueueReceive(UART_ReceiveQueueHandle, &amp;amp;c, portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		string[i++]=c;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	string[--i] =&#039;\0&#039;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreGive(UART_ReceiveMutexHandle);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	return string;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uint32_t UART_BlockReceiveDecimal()&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreTake(UART_ReceiveMutexHandle, portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	char c = &#039;\0&#039;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	uint32_t decimal;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	while (c != &#039;\r&#039;){&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		xQueueReceive(UART_ReceiveQueueHandle, &amp;amp;c, portMAX_DELAY);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		if(c &gt;= &#039;0&#039; &amp;amp;&amp;amp; c &amp;lt;= &#039;9&#039;){&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			decimal = decimal*10 + c - &#039;0&#039;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	xSemaphoreGive(UART_ReceiveMutexHandle);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	return decimal;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&amp;lt;/syntaxhighlight&amp;gt;&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;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;==== &amp;#039;&amp;#039;CubeMX&amp;#039;&amp;#039; ====&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;==== &amp;#039;&amp;#039;CubeMX&amp;#039;&amp;#039; ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Aleksa</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=7223&amp;oldid=prev</id>
		<title>Aleksa: /* Решење */</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=7223&amp;oldid=prev"/>
		<updated>2024-01-30T12:58:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Решење&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;amp;diff=7223&amp;amp;oldid=6495&quot;&gt;Прикажи измене&lt;/a&gt;</summary>
		<author><name>Aleksa</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=6495&amp;oldid=prev</id>
		<title>Fedja: /* homework.h */ nije homework.h nego homework.c</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=6495&amp;oldid=prev"/>
		<updated>2023-09-17T16:30:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;homework.h: &lt;/span&gt; nije homework.h nego homework.c&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 17. септембар 2023. у 18:30&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-l159&quot;&gt;Ред 159:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 159:&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;&amp;lt;/syntaxhighlight&amp;gt;&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;&amp;lt;/syntaxhighlight&amp;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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== &amp;lt;code&amp;gt;homework.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;h&lt;/del&gt;&amp;lt;/code&amp;gt; ====&lt;/div&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;==== &amp;lt;code&amp;gt;homework.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;c&lt;/ins&gt;&amp;lt;/code&amp;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;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&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;&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;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;div&gt;#include &amp;quot;homework.h&amp;quot;&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;#include &amp;quot;homework.h&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Fedja</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=6494&amp;oldid=prev</id>
		<title>Fedja: /* CubeMX */ PB4..6 se koriste kao input radi provere iz koje je kolone kliknuto dugme</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=6494&amp;oldid=prev"/>
		<updated>2023-09-17T16:28:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;CubeMX: &lt;/span&gt; PB4..6 se koriste kao input radi provere iz koje je kolone kliknuto dugme&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 17. септембар 2023. у 18:28&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-l31&quot;&gt;Ред 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 31:&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;У алату &amp;#039;&amp;#039;CubeMX&amp;#039;&amp;#039; направљене су следеће измене на пројекту из домаћег задатка:&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;У алату &amp;#039;&amp;#039;CubeMX&amp;#039;&amp;#039; направљене су следеће измене на пројекту из домаћег задатка:&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;div&gt;* Омогућени су прекиди од EXTI.&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;* Омогућени су прекиди од EXTI.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Пинови PB&amp;lt;sub&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&lt;/del&gt;..0&amp;lt;/sub&amp;gt; и PB&amp;lt;sub&amp;gt;9..8&amp;lt;/sub&amp;gt; су подешени као GPIO_Output, док су пинови PB&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt; и PB&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt; подешени као EXTI.&lt;/div&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;* Пинови PB&amp;lt;sub&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3&lt;/ins&gt;..0&amp;lt;/sub&amp;gt; и PB&amp;lt;sub&amp;gt;9..8&amp;lt;/sub&amp;gt; су подешени као GPIO_Output&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, пинови PB&amp;lt;sub&amp;gt;4..6&amp;lt;/sub&amp;gt; као GPIO_Input&lt;/ins&gt;, док су пинови PB&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt; и PB&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt; подешени као EXTI.&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;div&gt;Након генерисања, линија 310 у &amp;lt;code&amp;gt;Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3/port.c&amp;lt;/code&amp;gt; је закоментарисана.&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;Након генерисања, линија 310 у &amp;lt;code&amp;gt;Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3/port.c&amp;lt;/code&amp;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;/table&gt;</summary>
		<author><name>Fedja</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=5253&amp;oldid=prev</id>
		<title>KockaAdmiralac: Februar 2022 sa mojim rešenjem</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%A4%D0%B5%D0%B1%D1%80%D1%83%D0%B0%D1%80_2022&amp;diff=5253&amp;oldid=prev"/>
		<updated>2023-01-26T09:26:45Z</updated>

		<summary type="html">&lt;p&gt;Februar 2022 sa mojim rešenjem&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{tocright}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Фебруарски рок 2022. године&amp;#039;&amp;#039;&amp;#039; нема поставку доступну са странице предмета. Није много познато о овом року, осим задатка наведеног испод.&lt;br /&gt;
&lt;br /&gt;
== Задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
[[Датотека:MIPS februar 2022 referentna šema.svg|thumb|Референтна шема у задатку.]]&lt;br /&gt;
# &amp;lt;del&amp;gt;У систему постоји један микроконтролер који контролише вентилатор у складу са тренутном вредношћу температуре. У симулатору Proteus направити пројекат и инстанцирати микроконтролер &amp;#039;&amp;#039;STM32F103R6&amp;#039;&amp;#039; (&amp;#039;&amp;#039;CM3_STM32&amp;#039;&amp;#039;). Направити пројекат у алату &amp;#039;&amp;#039;CubeMX&amp;#039;&amp;#039; који ће служити за конфигурисање микроконтролера.&amp;lt;/del&amp;gt;&lt;br /&gt;
# &amp;lt;del&amp;gt;У симулатору Proteus додати следеће компоненте&amp;lt;/del&amp;gt; &amp;lt;u&amp;gt;строго према датој референтној шеми&amp;lt;/u&amp;gt;:&lt;br /&gt;
#* &amp;lt;del&amp;gt;електромотор &amp;#039;&amp;#039;MOTOR&amp;#039;&amp;#039; (&amp;#039;&amp;#039;MOTORS&amp;#039;&amp;#039;) који представља вентилатор и чија ће брзина рада бити контролисана PWM сигналом канала 1 тајмера 3 микроконтролера,&amp;lt;/del&amp;gt;&lt;br /&gt;
#* тастатуру &amp;#039;&amp;#039;KEYPAD-PHONE&amp;#039;&amp;#039; (&amp;#039;&amp;#039;ACTIVE&amp;#039;&amp;#039;) повезану у складу са референтном шемом,&lt;br /&gt;
#* &amp;lt;del&amp;gt;температурни сензор &amp;#039;&amp;#039;LM35&amp;#039;&amp;#039; (&amp;#039;&amp;#039;NATDAC&amp;#039;&amp;#039;) чији је излазни пин повезан на канал 7 аналогно-дигиталног конвертора микроконтролера (аналогна вредност напона на излазном пину сензора је линеарно пропорционална вредности температуре),&amp;lt;/del&amp;gt;&lt;br /&gt;
#* кишомер &amp;#039;&amp;#039;RAINGAUGE&amp;#039;&amp;#039; (&amp;#039;&amp;#039;ACTIVE&amp;#039;&amp;#039;) повезан у складу са референтном шемом на моностабилни мултивибратор &amp;#039;&amp;#039;74HC221&amp;#039;&amp;#039; (&amp;#039;&amp;#039;74HC&amp;#039;&amp;#039;); кишомер ради по принципу кофе са превртањем (кофа се пуни кишницом све док се не препуни, затим долази до њеног превртања и потпуног пражњења уз генерисање електричног импулса); моностабилни мултивибратор обезбеђује униформно трајање генерисаног електричног импулса; подесити на кишомеру ниво превртања кофе (&amp;#039;&amp;#039;Trigger Level&amp;#039;&amp;#039;) на вредност 0.01 милиметара услед чега ће кофа слати електрични импулс на сваких 1200 милисекунди при константном интензитету падавине од 30.0 милиметара по сат (за већи интензитет падавине импулс ће стизати брже и обрнуто); подесити на моностабилном мултивибратору временску константу (&amp;#039;&amp;#039;Monostable Time Constant&amp;#039;&amp;#039;) на једну милисекунду (&amp;lt;code&amp;gt;1mS&amp;lt;/code&amp;gt;) услед чега ће сигнал на његовом излазу увек трајати тачно једну милисекунду,&lt;br /&gt;
#* &amp;lt;del&amp;gt;виртуелни терминал повезан на периферију &amp;#039;&amp;#039;USART1&amp;#039;&amp;#039; микроконтролера,&amp;lt;/del&amp;gt;&lt;br /&gt;
#* LCD дисплеј &amp;#039;&amp;#039;LM041L&amp;#039;&amp;#039; (&amp;#039;&amp;#039;DISPLAY&amp;#039;&amp;#039;) са четири линије, којима редом одговарају почетне адресе &amp;lt;code&amp;gt;0x80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0xC0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x90&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;0xD0&amp;lt;/code&amp;gt; у &amp;#039;&amp;#039;DDRAM&amp;#039;&amp;#039; меморији контролера &amp;#039;&amp;#039;HD44780&amp;#039;&amp;#039;, &amp;lt;del&amp;gt;повезан на пинове &amp;#039;&amp;#039;PC0&amp;#039;&amp;#039;-&amp;#039;&amp;#039;PC6&amp;#039;&amp;#039; микроконтролера и&amp;lt;/del&amp;gt;&lt;br /&gt;
#* двобојну &amp;#039;&amp;#039;LED-BIRG&amp;#039;&amp;#039; (&amp;#039;&amp;#039;ACTIVE&amp;#039;&amp;#039;), повезану у складу са референтном шемом, којој треба подесити јачину струје пуног провода (&amp;#039;&amp;#039;Full drive current&amp;#039;&amp;#039;) на један микро ампер (&amp;lt;code&amp;gt;1uA&amp;lt;/code&amp;gt;); ова диода дозвољава проток струје у оба смера при чему светли различитом бојом у зависности од смера протока струје.&lt;br /&gt;
# Обезбедити приказ поруке &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Temp: &amp;amp;lt;t&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; на виртуелном терминалу, где је &amp;#039;&amp;#039;&amp;amp;lt;t&amp;gt;&amp;#039;&amp;#039; тренутна вредност температуре изражено у степенима Целзијуса у опсегу [0, 60] &amp;lt;u&amp;gt;очитана са температурног сензора&amp;lt;/u&amp;gt;. Освежавање описане поруке вршити периодично на сваких 200 милисекунди уколико је дошло до промене вредности. Приликом освежавања поруке променити тренутне вредности у постојећој поруци уместо додавања нове поруке на виртуелном терминалу.&lt;br /&gt;
# Обезбедити приказ поруке &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Kisa: &amp;amp;lt;k&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; у првом реду &amp;#039;&amp;#039;LCD&amp;#039;&amp;#039; дисплеја, где &amp;#039;&amp;#039;&amp;amp;lt;k&amp;gt;&amp;#039;&amp;#039; представља тренутну вредност интензитета падавине изражено у милиметрима по сату &amp;lt;u&amp;gt;очитану са кишомера&amp;lt;/u&amp;gt;. Освежавање поруке вршити периодично на сваких 200 милисекунди уколико је дошло до промене вредности.&lt;br /&gt;
# Обезбедити могућност уноса вредности &amp;#039;&amp;#039;temp_granica&amp;#039;&amp;#039;, која представља границу температуре за укључивање вентилатора, преко тастатуре и приказ поруке &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Thld:(??)=&amp;gt;&amp;amp;lt;thld&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; у четвртом реду &amp;#039;&amp;#039;LCD&amp;#039;&amp;#039; дисплеја у складу са референтним снимком, где &amp;lt;thld&amp;gt; представља тренутно важећу вредност границе (иницијална вредност границе је 30) а на месту знакова питања се приказују притиснути тастери до тренутка када се притисне други по реду тастер услед чега се поставља нова вредност границе и враћају знакови питања. Освежавање поруке вршити периодично на сваких 200 милисекунди уколико је дошло до промене вредности.&lt;br /&gt;
# Обезбедити понашање двобојне &amp;#039;&amp;#039;LED&amp;#039;&amp;#039; описано у наставку. Двобојна &amp;#039;&amp;#039;LED&amp;#039;&amp;#039; константно светли зеленом бојом када је тренутна температура нижа од &amp;#039;&amp;#039;temp_granica&amp;#039;&amp;#039;, док уколико је тренутна температура једнака или већа од &amp;#039;&amp;#039;temp_granica&amp;#039;&amp;#039; двобојна &amp;#039;&amp;#039;LED&amp;#039;&amp;#039; трепери црвеном бојом са периодом од једне секунде (пола секунде светли, пола секунде не светли).&lt;br /&gt;
# Обезбедити контролу вентилатора на начин описан у наставку. Зависно од тренутне вредности температуре вентилатор се врти одговарајућом брзином. Уколико тренутна вредност температуре припада опсегу:&lt;br /&gt;
#* [0, &amp;#039;&amp;#039;temp_granica&amp;#039;&amp;#039;) вентилатор се не врти и&lt;br /&gt;
#* [&amp;#039;&amp;#039;temp_granica&amp;#039;&amp;#039;, 60] вентилатор се врти брзином једнаком 50% максималне брзине&lt;br /&gt;
#: Ажурирање брзине вентилатора вршити периодично на 200 милисекунди.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
Цело решење може се преузети [[Медиј:MIPS februar 2022 projekat.zip|одавде]]. Решење је засновано на [[Медиј:MIPS domaći zadatak 2023.zip|решењу домаћег задатка из 2023. године]], па ће испод бити наведени фајлови измењени у односу на то решење.&lt;br /&gt;
&lt;br /&gt;
Сви релевантни измењени фајлови са кодом налазе се у &amp;lt;code&amp;gt;cubemx/code/Core/Src&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;cubemx/code/Core/Inc&amp;lt;/code&amp;gt; директоријумима.&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;CubeMX&amp;#039;&amp;#039; ====&lt;br /&gt;
У алату &amp;#039;&amp;#039;CubeMX&amp;#039;&amp;#039; направљене су следеће измене на пројекту из домаћег задатка:&lt;br /&gt;
* Омогућени су прекиди од EXTI.&lt;br /&gt;
* Пинови PB&amp;lt;sub&amp;gt;6..0&amp;lt;/sub&amp;gt; и PB&amp;lt;sub&amp;gt;9..8&amp;lt;/sub&amp;gt; су подешени као GPIO_Output, док су пинови PB&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt; и PB&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt; подешени као EXTI.&lt;br /&gt;
Након генерисања, линија 310 у &amp;lt;code&amp;gt;Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3/port.c&amp;lt;/code&amp;gt; је закоментарисана.&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; ====&lt;br /&gt;
У односу на пројекат из домаћег задатка, у &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; је додат &amp;lt;code&amp;gt;keypad.c&amp;lt;/code&amp;gt; фајл.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;keypad.h&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef CORE_INC_KEYPAD_H_&lt;br /&gt;
#define CORE_INC_KEYPAD_H_&lt;br /&gt;
&lt;br /&gt;
extern char keys[2];&lt;br /&gt;
extern unsigned temp_granica;&lt;br /&gt;
extern int keysChanged;&lt;br /&gt;
&lt;br /&gt;
void KEY_Init();&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;keypad.c&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;keypad.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;FreeRTOS.h&amp;quot;&lt;br /&gt;
#include &amp;quot;task.h&amp;quot;&lt;br /&gt;
#include &amp;quot;timers.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;gpio.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
char keys[2];&lt;br /&gt;
unsigned temp_granica = 30;&lt;br /&gt;
int keysChanged = 1;&lt;br /&gt;
&lt;br /&gt;
static int keyCount = 0;&lt;br /&gt;
static int keyReleased = 1;&lt;br /&gt;
&lt;br /&gt;
TaskHandle_t KEY_TaskHandle;&lt;br /&gt;
TimerHandle_t KEY_TimerHandle;&lt;br /&gt;
&lt;br /&gt;
const char KEY_MATRIX[4][3] = {&lt;br /&gt;
	{ &amp;#039;1&amp;#039;, &amp;#039;2&amp;#039;, &amp;#039;3&amp;#039; },&lt;br /&gt;
	{ &amp;#039;4&amp;#039;, &amp;#039;5&amp;#039;, &amp;#039;6&amp;#039; },&lt;br /&gt;
	{ &amp;#039;7&amp;#039;, &amp;#039;8&amp;#039;, &amp;#039;9&amp;#039; },&lt;br /&gt;
	{ &amp;#039;*&amp;#039;, &amp;#039;0&amp;#039;, &amp;#039;#&amp;#039; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
extern void homeworkOverflow();&lt;br /&gt;
&lt;br /&gt;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {&lt;br /&gt;
	if (GPIO_Pin == GPIO_PIN_7) {&lt;br /&gt;
		BaseType_t wokenTask = pdFALSE;&lt;br /&gt;
		vTaskNotifyGiveFromISR(KEY_TaskHandle, &amp;amp;wokenTask);&lt;br /&gt;
		portYIELD_FROM_ISR(wokenTask);&lt;br /&gt;
	} else if (GPIO_Pin == GPIO_PIN_10) {&lt;br /&gt;
		homeworkOverflow();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void KEY_Task(void *parameters) {&lt;br /&gt;
	UNUSED(parameters);&lt;br /&gt;
	keys[0] = &amp;#039;?&amp;#039;;&lt;br /&gt;
	keys[1] = &amp;#039;?&amp;#039;;&lt;br /&gt;
	while (1) {&lt;br /&gt;
		for (int row = 0; row &amp;lt; 4; ++row) {&lt;br /&gt;
			HAL_GPIO_WritePin(GPIOB, 1u &amp;lt;&amp;lt; row, GPIO_PIN_SET);&lt;br /&gt;
		}&lt;br /&gt;
		vTaskDelay(pdMS_TO_TICKS(10));&lt;br /&gt;
		if (!keyReleased) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		for (int row = 0; row &amp;lt; 4; ++row) {&lt;br /&gt;
			HAL_GPIO_WritePin(GPIOB, 1u &amp;lt;&amp;lt; row, GPIO_PIN_RESET);&lt;br /&gt;
		}&lt;br /&gt;
		for (int row = 0; row &amp;lt; 4; ++row) {&lt;br /&gt;
			HAL_GPIO_WritePin(GPIOB, 1u &amp;lt;&amp;lt; row, GPIO_PIN_SET);&lt;br /&gt;
			for (int column = 0; column &amp;lt; 3; ++column) {&lt;br /&gt;
				if (HAL_GPIO_ReadPin(GPIOB, 1u &amp;lt;&amp;lt; (4 + column))&lt;br /&gt;
						== GPIO_PIN_SET) {&lt;br /&gt;
					keys[keyCount] = KEY_MATRIX[row][column];&lt;br /&gt;
					if (keyCount == 1) {&lt;br /&gt;
						temp_granica = (keys[0] - &amp;#039;0&amp;#039;) * 10 + keys[1] - &amp;#039;0&amp;#039;;&lt;br /&gt;
						keys[0] = &amp;#039;?&amp;#039;;&lt;br /&gt;
						keys[1] = &amp;#039;?&amp;#039;;&lt;br /&gt;
					}&lt;br /&gt;
					keyCount = 1 - keyCount;&lt;br /&gt;
					keysChanged = 1;&lt;br /&gt;
					keyReleased = 0;&lt;br /&gt;
					xTimerStart(KEY_TimerHandle, portMAX_DELAY);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			HAL_GPIO_WritePin(GPIOB, 1u &amp;lt;&amp;lt; row, GPIO_PIN_RESET);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void KEY_Timer(TimerHandle_t xTimer) {&lt;br /&gt;
	UNUSED(xTimer);&lt;br /&gt;
	if (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7) == GPIO_PIN_SET) {&lt;br /&gt;
		xTimerStart(KEY_TimerHandle, portMAX_DELAY);&lt;br /&gt;
	} else {&lt;br /&gt;
		keyReleased = 1;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void KEY_Init() {&lt;br /&gt;
	xTaskCreate(KEY_Task, &amp;quot;KEY_Task&amp;quot;, 128, NULL, 5, &amp;amp;KEY_TaskHandle);&lt;br /&gt;
	KEY_TimerHandle = xTimerCreate(&amp;quot;KEY_Timer&amp;quot;, pdMS_TO_TICKS(10), pdFALSE,&lt;br /&gt;
	NULL, KEY_Timer);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;homework.h&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef CORE_INC_HOMEWORK_H_&lt;br /&gt;
#define CORE_INC_HOMEWORK_H_&lt;br /&gt;
&lt;br /&gt;
typedef enum&lt;br /&gt;
{&lt;br /&gt;
	TURNED_OFF, SLOW, FAST&lt;br /&gt;
} FanState;&lt;br /&gt;
&lt;br /&gt;
extern void homeworkInit();&lt;br /&gt;
extern void homeworkOverflow();&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;homework.h&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;homework.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;FreeRTOS.h&amp;quot;&lt;br /&gt;
#include &amp;quot;task.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;FreeRTOS.h&amp;quot;&lt;br /&gt;
#include &amp;quot;timers.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;driver_lcd.h&amp;quot;&lt;br /&gt;
#include &amp;quot;driver_uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;driver_motor.h&amp;quot;&lt;br /&gt;
#include &amp;quot;driver_temp.h&amp;quot;&lt;br /&gt;
#include &amp;quot;keypad.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;gpio.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FanState fanState = TURNED_OFF;&lt;br /&gt;
TimerHandle_t homeworkTimer;&lt;br /&gt;
TimerHandle_t ledTimer;&lt;br /&gt;
&lt;br /&gt;
unsigned passedMs = 0;&lt;br /&gt;
unsigned rainfall = 0;&lt;br /&gt;
&lt;br /&gt;
static uint32_t tempValue;&lt;br /&gt;
static char tempText[4];&lt;br /&gt;
static void homeworkTask(void *parameters) {&lt;br /&gt;
	UNUSED(parameters);&lt;br /&gt;
	char messageTemp[9] = &amp;quot;Temp:   &amp;quot;;&lt;br /&gt;
	char messageKisa[7] = &amp;quot;Kisa: &amp;quot;;&lt;br /&gt;
#pragma GCC diagnostic ignored &amp;quot;-Wtrigraphs&amp;quot;&lt;br /&gt;
	char messageThld[14] = &amp;quot;Thld:(??)=&amp;gt;30&amp;quot;;&lt;br /&gt;
	// Ekvivalentna adresa: 0x80&lt;br /&gt;
	LCD_CommandEnqueue(LCD_INSTRUCTION,&lt;br /&gt;
	LCD_SET_DD_RAM_ADDRESS_INSTRUCTION | 0x00);&lt;br /&gt;
	for (uint32_t i = 0; i &amp;lt; 8; i++) {&lt;br /&gt;
		UART_AsyncTransmitCharacter(messageTemp[i]);&lt;br /&gt;
	}&lt;br /&gt;
	for (uint32_t i = 0; i &amp;lt; 6; i++) {&lt;br /&gt;
		LCD_CommandEnqueue(LCD_DATA, messageKisa[i]);&lt;br /&gt;
	}&lt;br /&gt;
	// Ekvivalentna adresa: 0xD0&lt;br /&gt;
	LCD_CommandEnqueue(LCD_INSTRUCTION,&lt;br /&gt;
	LCD_SET_DD_RAM_ADDRESS_INSTRUCTION | 0x50);&lt;br /&gt;
	for (uint32_t i = 0; i &amp;lt; 13; i++) {&lt;br /&gt;
		LCD_CommandEnqueue(LCD_DATA, messageThld[i]);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	while (1) {&lt;br /&gt;
		tempValue = TEMP_GetCurrentValue();&lt;br /&gt;
		itoa(rainfall, tempText, 10);&lt;br /&gt;
&lt;br /&gt;
		FanState fanStateTarget;&lt;br /&gt;
		if (tempValue &amp;lt; temp_granica) {&lt;br /&gt;
			fanStateTarget = TURNED_OFF;&lt;br /&gt;
		} else {&lt;br /&gt;
			fanStateTarget = SLOW;&lt;br /&gt;
		}&lt;br /&gt;
		for (uint32_t i = 0; i &amp;lt; abs(fanStateTarget - fanState); i++) {&lt;br /&gt;
			if (fanStateTarget &amp;gt; fanState) {&lt;br /&gt;
				MOTOR_SpeedIncrease();&lt;br /&gt;
			} else {&lt;br /&gt;
				MOTOR_SpeedDecrease();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		fanState = fanStateTarget;&lt;br /&gt;
&lt;br /&gt;
		LCD_CommandEnqueue(LCD_INSTRUCTION,&lt;br /&gt;
		LCD_SET_DD_RAM_ADDRESS_INSTRUCTION | 0x06);&lt;br /&gt;
		for (uint32_t i = 0; i &amp;lt; strlen(tempText); i++) {&lt;br /&gt;
			LCD_CommandEnqueue(LCD_DATA, tempText[i]);&lt;br /&gt;
		}&lt;br /&gt;
		UART_AsyncTransmitCharacter(&amp;#039;\b&amp;#039;);&lt;br /&gt;
		UART_AsyncTransmitCharacter(&amp;#039;\b&amp;#039;);&lt;br /&gt;
		if (tempValue &amp;lt; 10) {&lt;br /&gt;
			UART_AsyncTransmitCharacter(&amp;#039; &amp;#039;);&lt;br /&gt;
		} else {&lt;br /&gt;
			UART_AsyncTransmitCharacter(tempValue / 10 + &amp;#039;0&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
		UART_AsyncTransmitCharacter(tempValue % 10 + &amp;#039;0&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		if (keysChanged) {&lt;br /&gt;
			keysChanged = 0;&lt;br /&gt;
			LCD_CommandEnqueue(LCD_INSTRUCTION,&lt;br /&gt;
			LCD_SET_DD_RAM_ADDRESS_INSTRUCTION | 0x56);&lt;br /&gt;
			LCD_CommandEnqueue(LCD_DATA, keys[0]);&lt;br /&gt;
			LCD_CommandEnqueue(LCD_DATA, keys[1]);&lt;br /&gt;
			LCD_CommandEnqueue(LCD_INSTRUCTION,&lt;br /&gt;
			LCD_SET_DD_RAM_ADDRESS_INSTRUCTION | 0x5B);&lt;br /&gt;
			LCD_CommandEnqueue(LCD_DATA,&lt;br /&gt;
					(temp_granica &amp;lt; 10) ? &amp;#039; &amp;#039; : (temp_granica / 10) + &amp;#039;0&amp;#039;);&lt;br /&gt;
			LCD_CommandEnqueue(LCD_DATA, (temp_granica % 10) + &amp;#039;0&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		vTaskDelay(pdMS_TO_TICKS(200));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void homeworkOverflow() {&lt;br /&gt;
	rainfall = 36000 / passedMs;&lt;br /&gt;
	passedMs = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void homeworkCounter(TimerHandle_t xTimer) {&lt;br /&gt;
	UNUSED(xTimer);&lt;br /&gt;
	++passedMs;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledCounter(TimerHandle_t xTimer) {&lt;br /&gt;
	UNUSED(xTimer);&lt;br /&gt;
	if (TEMP_GetCurrentValue() &amp;lt; temp_granica) {&lt;br /&gt;
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET);&lt;br /&gt;
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);&lt;br /&gt;
	} else {&lt;br /&gt;
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);&lt;br /&gt;
		HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void homeworkInit() {&lt;br /&gt;
	LCD_Init();&lt;br /&gt;
	UART_Init();&lt;br /&gt;
	MOTOR_Init();&lt;br /&gt;
	TEMP_Init();&lt;br /&gt;
	KEY_Init();&lt;br /&gt;
	xTaskCreate(homeworkTask, &amp;quot;homeworkTask&amp;quot;, 64, NULL, 5, NULL);&lt;br /&gt;
	homeworkTimer = xTimerCreate(&amp;quot;homeworkTimer&amp;quot;, pdMS_TO_TICKS(1), pdTRUE,&lt;br /&gt;
	NULL, homeworkCounter);&lt;br /&gt;
	xTimerStart(homeworkTimer, portMAX_DELAY);&lt;br /&gt;
	ledTimer = xTimerCreate(&amp;quot;ledTimer&amp;quot;, pdMS_TO_TICKS(500), pdTRUE,&lt;br /&gt;
	NULL, ledCounter);&lt;br /&gt;
	xTimerStart(ledTimer, portMAX_DELAY);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Микропроцесорски системи]]&lt;/div&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
</feed>