<?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=8&amp;t=24419&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2023-02-21T17:03:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=24419&amp;mode</id>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2023-02-21T17:03:36+01:00</updated>
<published>2023-02-21T17:03:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236563#p236563</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236563#p236563"/>
<title type="html"><![CDATA[Re: Odczyt przycisku z diodą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236563#p236563"><![CDATA[
<div class="quotetitle">Rafal9018 napisał(a):</div><div class="quotecontent"><br />O właśnie o to mi chodziło, czemu ja na to nie wpadłem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Dziękuje bardzo za pomoc  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Ale o co ci chodziło, bo nie piszesz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 21 lut 2023, o 17:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2023-02-21T10:26:11+01:00</updated>
<published>2023-02-21T10:26:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236561#p236561</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236561#p236561"/>
<title type="html"><![CDATA[Re: Odczyt przycisku z diodą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236561#p236561"><![CDATA[
O właśnie o to mi chodziło, czemu ja na to nie wpadłem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Dziękuje bardzo za pomoc  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 21 lut 2023, o 10:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2023-02-20T21:10:48+01:00</updated>
<published>2023-02-20T21:10:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236560#p236560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236560#p236560"/>
<title type="html"><![CDATA[Re: Odczyt przycisku z diodą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236560#p236560"><![CDATA[
Przy całościowym podłączeniu było by to lepiej widać, a tak to można pogdybać. Pomysł kolegi @mario2015 jak najbardziej do zrealizowania, a można też po prostu ściągnąć do masy każdy port w stanie hi-z rezystorem, np. 4.7k-10k<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 20 lut 2023, o 21:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2023-02-20T16:59:47+01:00</updated>
<published>2023-02-20T16:59:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236559#p236559</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236559#p236559"/>
<title type="html"><![CDATA[Re: Odczyt przycisku z diodą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236559#p236559"><![CDATA[
Jeżeli chodzi o jeden przycisk, to ja bym to zrobił tak:<br />Pin PB0 ustawiłbym jako wyjście w stanie niskim.<br />Pin PC0 ustawiłbym jako wejście z podciągnięciem do VCC.<br />Wtedy nie będziesz miał dziwnego stanu 1V czyli HI-Z (tzw. stan nieokreślony).<br />Cała ta moja uwaga dotyczy tylko jednego przycisku a jak ty masz klawiaturę matrycową, to wtedy realizuje się to w całkiem inny sposób.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 20 lut 2023, o 16:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2023-02-20T13:24:08+01:00</updated>
<published>2023-02-20T13:24:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236558#p236558</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236558#p236558"/>
<title type="html"><![CDATA[Odczyt przycisku z diodą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24419&amp;p=236558#p236558"><![CDATA[
Cześć,<br /><br />mam takie zadanie do zrealizowania: Odczytanie stanu przycisków z klawiatury matrycowej.<br /><br />Problem jaki mam to, że do każdego przycisku w szeregu jest dołączona dioda prostownicza. Dodaje zdjęcie dla uproszczenia z jednym przyciskiem.<br /><br /><a href="https://obrazkiforum.atnel.pl/3441/e8c0af53aa6feeb826771af1df88689d.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/3441/e8c0af53aa6feeb826771af1df88689d.JPG" alt="Obrazek" /></a><br /><br />Po przeanalizowaniu schematu uznałem, żeby odczytać stan klawisza należy PC0 ustawić jako wyjście z podciągnięciem pod VCC i monitorować stan PB0. PB0 ustawiłem jako wejście. W momencie naciśnięcia S1 pojawia się stan wysoki na PB0.<br />Problem jest taki, że jeśli ustawię PIN PB0 jako wejście to panuje na nim jakiś dziwny stan. Jest tam coś około 1V więc jeśli zrobię warunek sprawdzenia stanu wysokiego to bez wciśnięcia procesor odczytuje, że jest wciśnięty klawisz. Nie za bardzo wiem jako to ogarnąć  <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /> <br /><br />Poniżej mój kod:<br />[syntax=c]#include &lt;avr/io.h&gt;// dołączenie głównego systemowego  pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;key.h&quot;<br /><br /><br /><br />int main (void){<br /><br /><br /><br />REGISTER_LED1 |= PIN_LED1;<br />PORT_LED1 |= PIN_LED1;<br /><br /><br />key_init();<br /><br /><br />while(1){<br /><br /><br /><br /><br /><br />if ((COLUMN_PIN &amp; PIN_K2)){<br /><br />LED1_ON;<br />}else LED1_OFF;<br /><br /><br /><br />_delay_ms(50);[/syntax]<br /><br /><br />plik nagłówkowy .h<br />[syntax=c]#ifndef CONFIG_H_<br />#define CONFIG_H_<br /><br /><br /><br />#define REGISTER_LED1 DDRB<br />#define PORT_LED1PORTB<br />#define PIN_LED1(1&lt;&lt;PB5)<br /><br /><br />#define LED1_ONPORT_LED1 |= PIN_LED1;<br />#define LED1_OFFPORT_LED1 &amp;=  ~PIN_LED1;<br />#define LED1_TOGPORT_LED1 ^= PIN_LED1;<br /><br /><br />// *********************************************<br />//Klawiatura Matrycowa<br />//Makrodefinicje<br />//**********************************************<br /><br /><br />#define COLUMN_PINPINB<br /><br /><br />#define REGISTER_W1DDRC<br />#define PORT_W1PORTC<br />#define PIN_W1(1&lt;&lt;PC0)<br />#define W1_OUTPUT REGISTER_W1 |= (PIN_W1)<br />#define W1_HIGHPORT_W1 |= (PIN_W1)<br />#define W1_LOWPORT_W1 &amp;= ~(PIN_W1)<br /><br /><br />#define REGISTER_K2DDRB<br />#define PORT_K2PORTB<br />#define PIN_K2(1&lt;&lt;PB0)<br />#define K2_HIGHPORT_K2 |= (PIN_K2)<br />#define K2_LOWPORT_K2 &amp;= ~(PIN_K2)<br />#define K2_INPUT REGISTER_K2 &amp;= ~(PIN_K2)<br />#define K2_OUTPUT REGISTER_K2 |= (PIN_K2)<br /><br /><br /><br /><br />void key_init ();[/syntax]<br /><br />key.c<br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;// dołączenie głównego systemowego  pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;key.h&quot;<br /><br /><br />void key_init (){<br /><br />W1_OUTPUT;<br />W1_HIGH;<br /><br />K2_INPUT;<br />K2_LOW;<br /><br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 20 lut 2023, o 13:24</p><hr />
]]></content>
</entry>
</feed>