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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-04-10T08:38:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2817&amp;mode</id>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-04-10T08:38:24+01:00</updated>
<published>2013-04-10T08:38:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=34009#p34009</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=34009#p34009"/>
<title type="html"><![CDATA[Re: Problem z RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=34009#p34009"><![CDATA[
<div class="quotetitle">stachn napisał(a):</div><div class="quotecontent"><br />[syntax=c]#define S_A (1&lt;&lt;PB1)// wyjscie alarmu<br />...........<br />#define SA_ON PORTD &amp;= ~S_A // załączenie diody Alarmu[/syntax]<br /></div><br /><br />Czy aby na pewno wszystko jest ok ?<br />Nie pomylił ci się port lub pin ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 10 kwi 2013, o 08:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stachn]]></name></author>
<updated>2013-04-09T17:23:03+01:00</updated>
<published>2013-04-09T17:23:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33947#p33947</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33947#p33947"/>
<title type="html"><![CDATA[Re: Problem z RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33947#p33947"><![CDATA[
Problem rozwiązany - przegapiłem w pliku mkuart.h definicję  #define UART_DE_BIT (1&lt;&lt;PD2)a w pliku main.c ten pin jest ustawiony jako wejście przycisku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=765">stachn</a> — 9 kwi 2013, o 17:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stachn]]></name></author>
<updated>2013-04-08T17:42:50+01:00</updated>
<published>2013-04-08T17:42:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33849#p33849</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33849#p33849"/>
<title type="html"><![CDATA[Re: Problem z RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33849#p33849"><![CDATA[
Ajjj fakt - gdzieś zgubiłem początek. Zaraz to dodam. Bazuje na gotowych bibliotekach z książki Mirka. Działanie UART sprawdzałem na płycie ATB 1.04. Taki sam program tzn. o takim samym działaniu mam w Basckomie. I to działa po wgraniu do procka. Teraz ten program przerabiam na C ( musi być w dwóch wersjach). Przy okazji uczę się tego języka. Oczywiście – to nie cały program jaki jest w Baskomie. Ale to podstawa i powinno działać . Nie wiem dlaczego zaczyna sam wykonywać dalszy ciąg programu pomimo że nie naciskam na przyciski. Tylko pierwsze polecenie wykonuje prawidłowo ( impuls pierwszy)<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 03-04-2013<br /> *      Author: Stanisław Nosiadek<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=765">stachn</a> — 8 kwi 2013, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Juffre]]></name></author>
<updated>2013-04-08T17:11:46+01:00</updated>
<published>2013-04-08T17:11:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33847#p33847</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33847#p33847"/>
<title type="html"><![CDATA[Re: Problem z RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33847#p33847"><![CDATA[
To cały kod czy tylko część? Brakuje mi includów plików nagłówkowych, oraz biblioteki od UART.<br />Na jaki procesor piszesz program? Sprawdzałeś działanie UART na jakimś prostym przykładzie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=473">Juffre</a> — 8 kwi 2013, o 17:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stachn]]></name></author>
<updated>2013-04-08T09:18:50+01:00</updated>
<published>2013-04-08T09:18:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33798#p33798</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33798#p33798"/>
<title type="html"><![CDATA[Problem z RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2817&amp;p=33798#p33798"><![CDATA[
Jestem początkującym jeżeli chodzi o język C dla AVR. Dotychczas programy pisałem w Bascomie. No i oczywiście napotykam na błędy z którymi nie potrafię sobie poradzić. Mam taki program ( kod poniżej) w którym powinny sie zaświecić odpowiednie diody w zależności od kolejności naciskania na przycisk. Wszystko pięknie chodzi dopóki nie próbuję wysłać informacji do okna terminal. Tutaj zaczynają się problemy po naciśnięciu pierwszego przycisku w terminalu prawidłowo wyświetla się impuls 1. Ale naciśnięcie drugiego przycisku powoduje wykonanie całego programu i ponownie pieszej linii kodu. Czyli w terminalu mam impuls1, czeka i następnie w ciągu 2, 3, 4 i ponownie 1 i zatrzymuje się. Gdzie robię błąd?. Zamiana odwołania do własnej funkcji na kod do terminala w nic nie daje – efekt taki sam.<br />[syntax=c]#define I_A (1&lt;&lt;PD2)// wejscie A<br />#define I_B (1&lt;&lt;PD3)//wejscie B<br />#define S_W (1&lt;&lt;PD6)// wyjscie sygnału W<br />#define S_N (1&lt;&lt;PD7)// wyjscie sygnału N<br />#define S_A (1&lt;&lt;PB1)// wyjscie alarmu<br />#define SW_ON PORTD &amp;= ~S_W // załączenie diody W<br />#define SN_ON PORTD &amp;= ~S_N // załączenie diody N<br />#define SA_ON PORTD &amp;= ~S_A // załączenie diody Alarmu<br /><br />#define SW_OFF PORTD |= S_W //wyłączenie diody W<br />#define SN_OFF PORTD |= S_N //wyłączeniediody N<br />#define SA_OFF PORTD |= S_W //wyłączenie diody Alarmu<br /><br />#define P1_W  bit_is_set(PIND, PD2)// makro -sprawdza czy pin jest w stanie wysokim<br />#define P2_W  bit_is_set(PIND, PD3)// makro -sprawdza czy pin jest w stanie wysokim<br />#define P1_N  bit_is_clear(PIND, PD2)//makro - sprawdza czy pin jest w stanie niskim<br />#define P2_N  bit_is_clear(PIND, PD3)// makro -sprawdza czy pin jest w stanie niskim<br /><br />uint8_t imp_w =0; // numer impulsu dla kierunku własciwego<br />uint8_t imp_n = 0; // nr impulsu dla kierunku niewłasciwego<br /><br />uint8_t kier_w = 0; // sygnał kierunku własciwego<br />uint8_t kier_n = 0;// sygnał kierunku niewłasciwego<br /><br />void liczba(uint8_t nr);<br /><br />int main(void)<br />{<br />USART_Init( __UBRR );// inicjalizacja UART<br /> sei();// globalne odblokowanie przerwań<br />//===================================<br /><br /><br /><br /> DDRD |= S_W |S_N |S_A; // ustawienie portów jako wyjściowe - diody<br /> DDRD &amp;= ~(I_A |I_B);// WSTAWIENIE JAKO WEJŚCIA - czujnik<br /> PORTD |= I_A |I_B; // PODCIĄGNIĘCIE DO VCC<br /><br />   while(1)<br />   {<br />   if (kier_w ==1)SW_ON;  // dioda kierunku W załaczona<br />   if (kier_w == 0) SW_OFF; // dioda kierunku W wyłączona<br />   if (kier_n ==1)SN_ON;  // dioda kierunku N załaczona<br />   if (kier_n == 0) SN_OFF; // dioda kierunku N wyłączona<br /><br />   // impuls 1 - czujniki w stanie 0-1<br />if((P1_N)&amp;&amp;(P2_W)&amp;&amp;(imp_w ==0)&amp;&amp;(imp_n==0))<br />{<br />imp_w = 1;<br />imp_n = 6;<br />liczba(imp_w);  // pokaż w oknie terminala liczbę impulsu 1<br />//  pokaże i zatrzyma sie<br />}<br />// impuls drugi - czujniki w stanie 1-0, ustawiony kierunek W<br />if((P1_W)&amp;&amp;(P2_N)&amp;&amp;(imp_w ==1)&amp;&amp;(imp_n==6))<br />{<br />imp_w = 2;<br />imp_n = 6;<br />kier_w = 1;<br />liczba(imp_w);// pokaż w oknie terminala liczbę impulsu 2<br /><br />// ==========tutaj program zaczyna robić błędy<br />// powinna dioda wiecić aż do impulsu 3 ale zawieci i zganie<br />// pokaże 2 i leci dalej bez pytania czyli pokaże 2,3,4 i znowu 1<br />// czyli przelatuje cały kierunek<br />// bez funkcji obsługi terminala działa prawidłowo<br />}<br /> // impuls trzeci 0-1 na wejsciach<br />if((P1_N)&amp;&amp;(P2_W)&amp;&amp;(imp_w ==2)&amp;&amp;(imp_n==6))<br />{<br />imp_w = 3;<br />imp_n = 6;<br />liczba(imp_w);  // pokaż w oknie terminala liczbę impulsu 3<br />}<br />// koniec - zjazd koła z czujnika<br />if((P1_W)&amp;&amp;(P2_W)&amp;&amp;(imp_w ==3)&amp;&amp;(imp_n==6))<br />{<br />imp_w = 0;<br />imp_n = 0;<br />kier_w =0;<br />liczba(4);  // pokaż w oknie terminala liczbę impulsu 4<br />}<br />////=============== ZMIANA KIERUNKU =====================<br />//<br />//// impuls 1 - czujniki w stanie 1-0<br />//if((P1_W)&amp;&amp;(P2_N)&amp;&amp;(imp_w ==0)&amp;&amp;(imp_n==0))<br />//{<br />//imp_w = 6;<br />//imp_n = 1;<br />//}<br />//// impuls drugi - czujniki w stanie 0-1, ustawiony kierunek N<br />//if((P1_N)&amp;&amp;(P2_W)&amp;&amp;(imp_w ==6)&amp;&amp;(imp_n==1))<br />//{<br />//imp_w = 6;<br />//imp_n = 2;<br />//kier_n = 1;<br />//}<br />//// impuls trzeci 1-0 na wejsciach<br />//if((P1_W)&amp;&amp;(P2_N)&amp;&amp;(imp_w ==6)&amp;&amp;(imp_n==2))<br />//{<br />//imp_w = 6;<br />//imp_n = 3;<br />//   }<br />//// koniec - zjazd koła z czujnika<br />//if((P1_W)&amp;&amp;(P2_W)&amp;&amp;(imp_w ==6)&amp;&amp;(imp_n==3))<br />//{<br />//imp_w = 0;<br />//imp_n = 0;<br />//kier_n =0;<br />//}<br />   }<br />}<br /><br />//================================<br />void liczba(uint8_t licznik)<br />{<br />uart_puts(&quot;CTI-4 , impuls = &quot;);// wyślij tekst<br />uart_putint(licznik, 10);// wyślij liczbę<br />uart_putc('\r');// wyślij znak CR (enter)<br />uart_putc('\n');// wyślij znak LF (nowa linia)<br />uart_putc('\n');// wyślij znak LF (nowa linia)<br /><br />return;<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=765">stachn</a> — 8 kwi 2013, o 09:18</p><hr />
]]></content>
</entry>
</feed>