<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=13775&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-05T18:44:18+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13775&amp;mode</id>
<entry>
<author><name><![CDATA[chemik143]]></name></author>
<updated>2015-12-05T18:44:18+01:00</updated>
<published>2015-12-05T18:44:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147137#p147137</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147137#p147137"/>
<title type="html"><![CDATA[Re: [C] Jak przypisać port do struktury?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147137#p147137"><![CDATA[
Dzięki, to nakreśla jakiś schemat. Zrobiłem tak:<br /><br />[syntax=c]typedef struct<br />{<br />uint8_t Stan, StaryStan;<br />uint8_t Keypressed;<br />volatile uint8_t *PORT;<br />volatile uint8_t *PIN;<br />volatile uint8_t *DDR;<br />volatile uint8_t IPIN;<br />} T_Button;<br /><br />T_Button Button&#91;4&#93;=<br />{<br />{0,0,0,&amp;PORTB,&amp;PINB,&amp;DDRB,PB0},<br />{0,0,0,&amp;PORTB,&amp;PINB,&amp;DDRB,PB1},<br />{0,0,0,&amp;PORTC,&amp;PINC,&amp;DDRC,PB6},<br />{0,0,0,&amp;PORTC,&amp;PINC,&amp;DDRC,PB7}<br />};<br />enum {BG,BD,KG,KD};[/syntax]<br /><br />ale wywala mi błąd w linijce:<br />[syntax=c]Button&#91;Licz&#93;.Stan = !(Button&#91;Licz&#93;.PIN &amp; (1&lt;&lt;Button&#91;Licz&#93;.IPIN));[/syntax]<br />Treść: Invalid operands to binary &amp; (have 'volatile uint8_t *' and 'int'<br /><br />EDIT<br />Już mam!! Przecież tam jest wskaźnik, więc by uzyskac wartośc potrzeba gwiazki! ma być:<br /><br />[syntax=c]Button&#91;Licz&#93;.Stan = !(*Button&#91;Licz&#93;.PIN &amp; (1&lt;&lt;Button&#91;Licz&#93;.IPIN));[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2793">chemik143</a> — 5 gru 2015, o 18:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[aaadamw]]></name></author>
<updated>2015-12-05T18:02:24+01:00</updated>
<published>2015-12-05T18:02:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147136#p147136</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147136#p147136"/>
<title type="html"><![CDATA[Re: [C] Jak przypisać port do struktury?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147136#p147136"><![CDATA[
Zobacz to <br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/viewtopic.php?p=139223#p139223" >viewtopic.php?p=139223#p139223</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=360">aaadamw</a> — 5 gru 2015, o 18:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chemik143]]></name></author>
<updated>2015-12-05T17:23:54+01:00</updated>
<published>2015-12-05T17:23:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147135#p147135</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147135#p147135"/>
<title type="html"><![CDATA[[C] Jak przypisać port do struktury?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13775&amp;p=147135#p147135"><![CDATA[
Witam<br /><br />Piszę sobie pewien program o projektu, w którym wykorzystywane są 4 przyciski. Niby niewiele, ale postanowiłem nie pisać na piechotę wykrywania zbocza narastającego tylko użyć struktury i zamknąć wszystko w pętli. Utknąłem z jednym problemem. Chciałbym by w każdej ze struktur był przypisany port oraz pin który obsługuje klawisz. Numer pinu problemem nie jest, bo to zwykły numerek. Nie wiem jednak w jaki sposób dodać do struktury informacje o porcie i później wykorzystać ja w pętli.<br /><br />Na chwilę obecną newralgiczne punkty wyglądają tak:<br /><br />Definicje, deklaracje<br />[syntax=c]#define KR_G !(PINC&amp;(1&lt;&lt;PC6))<br />#define KR_D !(PINC&amp;(1&lt;&lt;PC7))<br />#define BUTTON_UP !(PINB&amp;(1&lt;&lt;PB0))<br />#define BUTTON_DOWN !(PINB&amp;(1&lt;&lt;PB1))<br /><br />typedef struct<br />{<br />uint8_t Stan, StaryStan;<br />uint8_t Keypressed;<br />} T_Button;<br /><br />T_Button Button&#91;4&#93;;<br />enum {BG,BD,KG,KD};[/syntax]<br /><br />Na starcie programu czyszczenie tablicy.<br />[syntax=c]for ( Licz=0; (Licz&lt;4)  ; Licz++)<br />  {<br />Button&#91;Licz&#93;.Stan=0;<br />Button&#91;Licz&#93;.StaryStan=0;<br />Button&#91;Licz&#93;.Keypressed=0;<br />  }[/syntax]<br /><br />W pętli głównej sprawdzanie zbocza i przykładowe użycie klawisza. <br />[syntax=c]Button&#91;BG&#93;.StaryStan = Button&#91;BG&#93;.Stan;<br />Button&#91;BG&#93;.Stan = BUTTON_UP;<br />if (Button&#91;BG&#93;.Stan &gt; Button&#91;BG&#93;.StaryStan){Button&#91;BG&#93;.Keypressed = 1;}<br /><br />Button&#91;BD&#93;.StaryStan = Button&#91;BD&#93;.Stan;<br />Button&#91;BD&#93;.Stan = BUTTON_DOWN;<br />if (Button&#91;BD&#93;.Stan &gt; Button&#91;BD&#93;.StaryStan){Button&#91;BD&#93;.Keypressed = 1;}<br /><br />Button&#91;KD&#93;.StaryStan = Button&#91;KD&#93;.Stan;<br />Button&#91;KD&#93;.Stan = KR_D;<br />if (Button&#91;KD&#93;.Stan &gt; Button&#91;KD&#93;.StaryStan){Button&#91;KD&#93;.Keypressed = 1;}<br /><br />Button&#91;KG&#93;.StaryStan = Button&#91;KG&#93;.Stan;<br />Button&#91;KG&#93;.Stan = KR_G;<br />if (Button&#91;KG&#93;.Stan &gt; Button&#91;KG&#93;.StaryStan){Button&#91;KG&#93;.Keypressed = 1;}<br /><br />               /* Jakieś instrukcje<br /><br />                if ( Wcisniety(&amp;Button&#91;BG&#93;)) {instrukcje;}[/syntax]<br /><br />Sprawdzenie czy było zbocze narastające.<br />[syntax=c]uint8_t Wcisniety(T_Button *Button)<br /><br />{<br />if (Button-&gt;Keypressed){Button-&gt;Keypressed=0; return(1);}<br />return(0);<br />}[/syntax]<br /><br />Na chwilę obecna wszystko działa, ale chciałbym by wykrywanie zbocza siedziało sobie w pętli, a do tego przeszkadza mi nieumiejętność podmiany BUTTON_UP, BUTTON_DOWN itd. na zależność od tego co jest w polu struktury.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2793">chemik143</a> — 5 gru 2015, o 17:23</p><hr />
]]></content>
</entry>
</feed>