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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-08-04T12:56:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3742&amp;mode</id>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2013-08-04T12:56:23+01:00</updated>
<published>2013-08-04T12:56:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44359#p44359</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44359#p44359"/>
<title type="html"><![CDATA[Re: Wyłacznik schodowy ATmega8 nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44359#p44359"><![CDATA[
Witam<br />... a ta definicja:<br />[syntax=c]#define Wprzycisk_0 !(PINC &amp; Przycisk_0)<br /><br />#define Wprzycisk_1 !(PINC &amp; Przycisk_0)[/syntax]<br />jest zamierzona, czy wkradł się błąd ? ( chodzi mi o zdublowany &quot; Przycisk_0&quot; )<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 4 sie 2013, o 12:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-03T09:31:44+01:00</updated>
<published>2013-08-03T09:31:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44237#p44237</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44237#p44237"/>
<title type="html"><![CDATA[Re: Wyłacznik schodowy ATmega8 nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44237#p44237"><![CDATA[
taka podpowiedź na szybko, jak masz przyciski zwierane do masy to chyba powinieneś badać czy jest zero<br /><br />[syntax=c]if( !Wmicro_1 )[/syntax]<br /><br />a nie ta jak ty masz<br /><br />[syntax=c]if( Wmicro_1 )[/syntax]<br /><br />poza tym jak jeszcze nie chcesz czy nie możesz bo jeszcze nie dokońca rozumiesz timerów programowych czy funkcji superdebounce opisanej w książce (to czytaj mój blog proszę - jest tam sporo ważnych dla ciebie informacji) np ta:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html" >http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html</a><!-- m --><br /><br />i przynajmniej pójdź w taką obsługę przycisków<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 sie 2013, o 09:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lordwest1989]]></name></author>
<updated>2013-08-03T08:55:06+01:00</updated>
<published>2013-08-03T08:55:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44234#p44234</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44234#p44234"/>
<title type="html"><![CDATA[Wyłacznik schodowy ATmega8 nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3742&amp;p=44234#p44234"><![CDATA[
Witam. <br /><br />Jestem nowym użytkownikiem tego forum. Z mikrokontrolerami dopiero zaczynam swoja przygodę. <br /><br />Piszę ponieważ napisałem program wyłącznika schodowego z regulowanym czasem działania i gdy programuje mikrokontroler to nie wykazuje on zadnych oznak zycia. <br />Mikrokontroler ma być sterowany czterema przyciskami. Dwoma przyciskami niestabilnymi typu microswitch oraz dwoma łącznikami stabilnymi. <br /><br />Siedze juz nad tym 5dni kombinuje na rózne sposoby zmieniajac operatory logiczne na bitowe na odwrot itd doszukujac sie głownie problemu w instrukcji warunkowej if lecz juz mi rece opadają. <br /><br />[syntax=c]#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;stdio.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;string.h&gt;<br /> <br />#define Przycisk_0 (1&lt;&lt;PC0)<br />#define Przycisk_1 (1&lt;&lt;PC1)<br />#define Micro_1 (1&lt;&lt;PC2)<br />#define Micro_2 (1&lt;&lt;PC3)<br />#define Wyjscie (1&lt;&lt;PC4)<br />#define Wprzycisk_0 !(PINC &amp; Przycisk_0)<br />#define Wprzycisk_1 !(PINC &amp; Przycisk_0)<br />#define Wmicro_1 (PINC &amp; Micro_1)<br />#define Wmicro_2 (PINC &amp; Micro_2)<br /> <br />void zalacz(void);<br />void wylacz(void);<br />uint8_t czas;<br />uint8_t marker;<br /> <br /> <br /> <br />int main(void)<br /> {<br />marker=0;<br />DDRC |= Wyjscie;<br />DDRC &amp;= ~(Micro_2 | Micro_1 | Przycisk_0 | Przycisk_1);<br />PORTC |= Micro_2 | Micro_1 | Przycisk_0 | Przycisk_1;<br />PORTC &amp;= ~Wyjscie;<br /><br /> <br />czas=5;<br />while(1)<br />{<br /> <br />if(Wmicro_1)<br />{<br />_delay_ms(80);<br />if(Wmicro_1)<br />{<br />czas+=1;<br />if(czas&gt;250) czas=250;<br />}<br />}<br /> <br />if(Wmicro_2)<br />{<br />_delay_ms(80);<br />if(Wmicro_2)<br />{<br />czas-=1;<br />if(czas&lt;5) czas=5;<br />}<br />}<br /> <br /> <br />if(((Wprzycisk_0) &amp;&amp; (Wprzycisk_1)) || ((!Wprzycisk_0) &amp;&amp; (!Wprzycisk_1)))<br />{<br />_delay_ms(80);<br />if(((Wprzycisk_0) &amp;&amp; (Wprzycisk_1)) || ((!Wprzycisk_0) &amp;&amp; (!Wprzycisk_1)))<br />{ <br />wylacz();<br />}<br />}<br /> <br />if(((Wprzycisk_0) &amp;&amp; (!Wprzycisk_1)) || ((!Wprzycisk_0) &amp;&amp; (Wprzycisk_1)))<br />{<br />_delay_ms(80);<br />if(((Wprzycisk_0) &amp;&amp; (!Wprzycisk_1)) || ((!Wprzycisk_0) &amp;&amp; (Wprzycisk_1))) <br />{<br />zalacz();<br />}<br />}<br />}<br />}<br /> <br />void wylacz(void) {<br />PORTC &amp;= ~Wyjscie;<br />_delay_ms(20);<br />marker=0;<br />}<br /> <br />void zalacz(void) {<br />uint8_t i;<br /> <br /> <br />if(marker==0) {<br />PORTC |= Wyjscie;<br /> <br />for(i=0; i==czas; i++)<br /> <br />{<br />_delay_ms(1000);<br />}<br />marker=1;<br />}<br /> <br />PORTC &amp;= ~Wyjscie;<br />}[/syntax]<br /><br /><span style="color: #FF4040">Kody wklejamy przy pomocy syntax=c - Anty.</span><br /><br />Będę wdzięczny o napisanie co jest nie tak w programie dodam że napisałem program w języku Bascom i program działa więc układ elektronicznie jest prawidłowo zmontowany. <br /><br />Dziękuję za każdą pomoc i radę.<br /><br /> Czy jest możliwość złego programowania? Mam programator USBasp i programuje za pomoca avrdude ale z nakladka Mkvcalculator. Przy ustawianiu fusebitow stosuje w nim szybkie ustawianie. Rezonator kwarcowy 7,367mhz wiec ustawilem przedzial f&gt;3Mhz ^ f&lt;8Mhz. Poziom odczytania zmiany stanu jest 2,7V czy cos może jeszcze pokombinować z ustawieniami? programowania bo może problem właśnie leży w tym. <br />Program napisalem w programie AVRstudio 4 a przy kompilacji program nie zglasza zadnych warningow.<br /><br />Przyciski sa podlaczone tak: <br />PC0 - łącznik stabilny <br />PC1 - łącznik stabilny <br /><br />PC2 - przycisk microswth do ustawiania czasu <br />PC3 - --||--- <br /><br />Piny wejsc sa ustawione w stan wysoki <br />Porty sa zwierane do masy poprzez wcisniecie przyciskow.<br /><br />Nie napisalem programu za pomoca timera programowego ponieważ chciałem użyć samego _delay_ i teraz nie wiem czy musi być koniecznosc zastosowania timera programowego? Czy moze być tez wina ze mam zepsuty programator bo wczoraj zepsolem 3 atmegi8 nie zmieniajac fusbitow i nie wykazuja znaku zycia. wgrywajac ktorys z kolei raz program piiny przyciskow nie ustawiaja mi sie w stan wysoki? dodam ze w programatorze (a jest nim usbasp) odlutowal mi sie wczesniej kwarc (tzn w podstawce, ten 8Mhz)<br />i czy to tez moze być przyczyna?<br /><br />Z góry dziękuję za każda pomoc radę lub podpowiedź będę wdzięczny za napisanie jakie poprawki mam wniesc w kod programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1580">lordwest1989</a> — 3 sie 2013, o 08:55</p><hr />
]]></content>
</entry>
</feed>