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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-09-27T19:55:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8623&amp;mode</id>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-27T19:55:54+01:00</updated>
<published>2014-09-27T19:55:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96879#p96879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96879#p96879"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96879#p96879"><![CDATA[
Ok ale to i tak nie mam rozwiązania jeszcze jakieś pomysły?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br />Obojętnie czy ustawie na prawy czy na lewy i tak zczytuje z prawego co może byc przyczyna?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 27 wrz 2014, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-27T19:25:35+01:00</updated>
<published>2014-09-27T19:25:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96871#p96871</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96871#p96871"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96871#p96871"><![CDATA[
<div class="quotetitle">KoWaL napisał(a):</div><div class="quotecontent"><br />Sprawdziłem, ale żaden z tych nie działa to samo.<br /></div><br />To nie była poprawka. W pierwszym przypadku oba pomiary miały być z lewego czujnika, a w drugim oba z prawego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 27 wrz 2014, o 19:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-27T18:08:15+01:00</updated>
<published>2014-09-27T18:08:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96856#p96856</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96856#p96856"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96856#p96856"><![CDATA[
I jak ma ktoś jeszcze jakiś pomysł?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 27 wrz 2014, o 18:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-27T11:28:11+01:00</updated>
<published>2014-09-27T11:28:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96813#p96813</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96813#p96813"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96813#p96813"><![CDATA[
Sprawdziłem, ale żaden z tych nie działa to samo.<br />A może między sobą się za szybko zmieniają.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 27 wrz 2014, o 11:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-27T10:37:21+01:00</updated>
<published>2014-09-27T10:37:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96809#p96809</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96809#p96809"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96809#p96809"><![CDATA[
No nic trzeba znaleźć przyczynę. Może takie 2 opcje sobie wypróbuj:<br />[syntax=c]if(PRAWY == czujnik) <br />{<br />   odlegloscl = PulseWidth/8/58; <br />   trigerl(); //lewy, a nie trigerp();<br />   czujnik = LEWY;<br />}<br />else<br />{<br />   odlegloscp = PulseWidth/8/58;<br />   trigerl(); <br />   czujnik = PRAWY;<br />}[/syntax][syntax=c]if(PRAWY == czujnik) <br />{<br />   odlegloscl = PulseWidth/8/58; <br />   trigerp();<br />   czujnik = LEWY;<br />}<br />else<br />{<br />   odlegloscp = PulseWidth/8/58;<br />   trigerp(); //prawy, a nie trigerl(); <br />   czujnik = PRAWY;<br />}[/syntax]<br /><br />A może 100 ms to za mało.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 27 wrz 2014, o 10:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-26T19:56:26+01:00</updated>
<published>2014-09-26T19:56:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96779#p96779</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96779#p96779"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96779#p96779"><![CDATA[
Kod zdaje się działać ale wynik na obydwóch jest podawany z prawego czujnika.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 26 wrz 2014, o 19:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-26T19:35:13+01:00</updated>
<published>2014-09-26T19:35:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96776#p96776</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96776#p96776"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96776#p96776"><![CDATA[
Żaden wait pomiędzy wyzwoleniami (ta funkcja i tak na oko nie zadziała) tylko raz jeden czujnik a raz drugi:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: Sep 23, 2014<br /> *      Author: MateuszK<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;MK_TERMINAL/mk_term.h&quot;<br /><br />#define LEDS (1&lt;&lt;PC0)<br />#define LEDS_ON PORTC &amp;= ~LEDS<br />#define LEDS_OFF PORTC |= LEDS<br />#define LEDS_TOG PORTC ^= LEDS<br /><br />void trigerl(void);<br />void trigerp(void);<br />//uint8_t licznik_switch=0;<br />volatile uint8_t odlegloscl = 0;<br />volatile uint8_t odlegloscp = 0;<br /><br />volatile uint16_t PulseWidth;<br />volatile uint16_t licznik_us;<br />volatile uint16_t Timer1, Timer2;<br />volatile int count = 0;<br /><br />enum {LEWY, PRAWY}; //&lt;---------------------------<br />uint8_t czujnik = LEWY; //&lt;---------------------------<br /><br /><br />void wait(int c) <br />{<br />count = 0;<br />while (count &lt; c)<br />;<br />}<br /><br />int main(void) <br />{<br /><br />DDRC |= (1 &lt;&lt; PC0);<br /><br />DDRD |= (1 &lt;&lt; PD0); //wyjscie<br />PORTD &amp;= ~(1 &lt;&lt; PD0); //TRIGERL<br />DDRD |= (1 &lt;&lt; PD1); //wyjscie<br />PORTD &amp;= ~(1 &lt;&lt; PD1); //TRIGERP<br /><br />DDRD &amp;= ~(1 &lt;&lt; PD6); //wejscie ECHO<br />PORTD &amp;= ~(1 &lt;&lt; PD6); //ICP<br /><br />DDRA &amp;= ~(1 &lt;&lt; PA1); // wejscie<br />PORTA |= (1 &lt;&lt; PA1); // uSWITCH<br /><br />// TCCR1B |= (1&lt;&lt;ICES1);  /* Zbocze narastające wywoła przerwanie*/    //Jeli dobrze zrozumiałem to teraz zbocze opadajace wywoła<br />TCCR1B |= (1 &lt;&lt; CS10); /* preskaler = 1 */<br />OCR1B = 7;<br />//TCCR1B |= (1&lt;&lt;ICNC1); //NOISE CANCELLER<br />TIMSK |= (1 &lt;&lt; TICIE1); /* zezwolenie na przerwanie od ICP */<br /><br />// timer0 - Config<br />TCCR0 |= (1 &lt;&lt; CS01) | (1 &lt;&lt; CS00); //prescaler = 64<br />TIMSK |= (1 &lt;&lt; TOIE0); // zezwolenie na przerwanie OVF<br /><br />// ---------------  INICJALIZACJA  -----------------<br />USART_Init(__UBRR);<br /><br />sei();<br />// ---------------  INICJALIZACJA  -----------------<br /><br />tr_cls(1);<br />while (1) <br />{<br />//if(czujnik&gt;1) czujnik=0;<br />licznik_us = (PulseWidth);<br />//odleglosc=PulseWidth/8/58;<br /><br />tr_brush_color(BLUE);<br />tr_locate(5, 0);<br />fill_line(' ', 28);<br />tr_locate(7, 0);<br />fill_line(' ', 28);<br />tr_locate(6, 28);<br />fill_line(' ', 1);<br />tr_locate(6, 0);<br />fill_line(' ', 1);<br />tr_attr(0, RED, BLACK);<br />//                              uart_putint(licznik_switch,10);<br />tr_locate(6, 5);<br />uart_puts(&quot;ODLEGŁOSĆ LEWA: &quot;);<br />//      tr_locate(7,5);<br />uart_putint(odlegloscl, 10);<br />uart_puts(&quot;  &quot;);<br /><br />tr_brush_color(BLUE);<br />tr_locate(8, 0);<br />fill_line(' ', 28);<br />tr_locate(10, 0);<br />fill_line(' ', 28);<br />tr_locate(9, 28);<br />fill_line(' ', 1);<br />tr_locate(9, 0);<br />fill_line(' ', 1);<br />tr_attr(0, RED, BLACK);<br />//                              uart_putint(licznik_switch,10);<br />tr_locate(9, 5);<br />uart_puts(&quot;ODLEGŁOSĆ PRAWA: &quot;);<br />//      tr_locate(7,5);<br />uart_putint(odlegloscp, 10);<br />uart_puts(&quot;  &quot;);<br /><br />if (!Timer1 &amp;&amp; odlegloscl &lt; 6) <br />{<br />LEDS_TOG;<br />Timer1 = 200;<br />}<br /><br />else <br />{<br />if (!Timer1) <br />{<br />LEDS_TOG;<br />Timer1 = 1000;<br />}<br />}<br />if (!Timer2) <br />{<br />if(PRAWY == czujnik) //&lt;---------------------------<br />{<br />odlegloscl = PulseWidth/8/58; //poprzednio byl czujnik lewy<br />trigerp(); //teraz prawy<br />czujnik = LEWY;<br />}<br />else <br />{<br />odlegloscp = PulseWidth/8/58;<br />trigerl(); //wyzwolenie, a nastepnym razem wynik bedzie gotowy<br />czujnik = PRAWY;<br />}<br />Timer2 = 100;<br />}<br /><br />} //koniec while(1)<br /><br />} //koniec main<br />ISR( TIMER1_CAPT_vect) <br />{<br />static uint16_t LastCapture;<br /><br />if ((TCCR1B &amp; (1 &lt;&lt; ICES1)))<br />PulseWidth = ICR1 - LastCapture;<br />LastCapture = ICR1;<br /><br />TCCR1B ^= (1 &lt;&lt; ICES1); //zmiana zbocza<br />}<br /><br />void trigerl(void) <br />{<br />//odlegloscl = PulseWidth / 8 / 58;//&lt;---------------------------<br />PORTD &amp;= ~(1 &lt;&lt; PD0);<br />_delay_us(2);<br />PORTD |= (1 &lt;&lt; PD0); //wystawienie jedynki na TRIG<br />_delay_us(10); //wymagane 10 uS stanu wysokiego<br />PORTD &amp;= ~(1 &lt;&lt; PD0); //wystawienie zera na TRIG<br />//odlegloscl = PulseWidth / 8 / 58;//&lt;---------------------------<br />}<br /><br />void trigerp(void) <br />{<br />//odlegloscp = PulseWidth / 8 / 58;//&lt;---------------------------<br />PORTD &amp;= ~(1 &lt;&lt; PD1);<br />_delay_us(2);<br />PORTD |= (1 &lt;&lt; PD1); //wystawienie jedynki na TRIG<br />_delay_us(10); //wymagane 10 uS stanu wysokiego<br />PORTD &amp;= ~(1 &lt;&lt; PD1); //wystawienie zera na TRIG<br />//odlegloscp = PulseWidth / 8 / 58;//&lt;---------------------------<br />}<br /><br />ISR( TIMER0_OVF_vect) <br />{<br />TCNT0 = 132; // czêstotliwoœæ 1000 Hz<br /><br />uint16_t n = Timer1;<br />if (n)<br />Timer1 = --n;<br /><br />n = Timer2;<br />if (n)<br />Timer2 = --n;<br /><br />count++;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 26 wrz 2014, o 19:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-26T19:08:01+01:00</updated>
<published>2014-09-26T19:08:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96770#p96770</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96770#p96770"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96770#p96770"><![CDATA[
Ok na jednym działa, podłączyłem też collecter z drugiego tranzystora pod collecter pierwszego.<br />Programik taki ale chyba coś znów skopałem.<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: Sep 23, 2014<br /> *      Author: MateuszK<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;MK_TERMINAL/mk_term.h&quot;<br /><br /><br />#define LEDS (1&lt;&lt;PC0)<br />#define LEDS_ON PORTC &amp;= ~LEDS<br />#define LEDS_OFF PORTC |= LEDS<br />#define LEDS_TOG PORTC ^= LEDS<br /><br /><br />void trigerl(void);<br />void trigerp(void);<br />//uint8_t licznik_switch=0;<br />volatile uint8_t odlegloscl=0;<br />volatile uint8_t odlegloscp=0;<br /><br /><br />volatile uint16_t PulseWidth;<br />volatile uint16_t licznik_us;<br />volatile uint16_t Timer1, Timer2;<br />volatile int count=0;<br /><br /><br /> void wait (int c){<br />count = 0;<br />while(count&lt;c);<br />}<br /><br />int main (void){<br /><br />DDRC |=(1&lt;&lt;PC0);<br /><br />DDRD |= (1&lt;&lt;PD0);//wyjscie<br />PORTD &amp;= ~(1&lt;&lt;PD0); //TRIGERL<br />DDRD |= (1&lt;&lt;PD1);//wyjscie<br />PORTD &amp;= ~(1&lt;&lt;PD1); //TRIGERP<br /><br />DDRD &amp;= ~(1&lt;&lt;PD6);//wejscie ECHO<br />PORTD &amp;= ~(1&lt;&lt;PD6);//ICP<br /><br />DDRA &amp;= ~(1&lt;&lt;PA1); // wejscie<br />PORTA |= (1&lt;&lt;PA1); // uSWITCH<br /><br /><br />   // TCCR1B |= (1&lt;&lt;ICES1);  /* Zbocze narastające wywoła przerwanie*/    //Jeli dobrze zrozumiałem to teraz zbocze opadajace wywoła<br />    TCCR1B |= (1&lt;&lt;CS10);   /* preskaler = 1 */<br />    OCR1B = 7;<br />    //TCCR1B |= (1&lt;&lt;ICNC1); //NOISE CANCELLER<br />    TIMSK |=  (1&lt;&lt;TICIE1);   /* zezwolenie na przerwanie od ICP */<br /><br /><br />    // timer0 - Config<br />    TCCR0 |= (1&lt;&lt;CS01)|(1&lt;&lt;CS00); //prescaler = 64<br />    TIMSK |= (1&lt;&lt;TOIE0); // zezwolenie na przerwanie OVF<br /><br />// ---------------  INICJALIZACJA  -----------------<br />USART_Init( __UBRR );<br /><br />sei();<br />// ---------------  INICJALIZACJA  -----------------<br /><br />tr_cls(1);<br />while(1)<br />{<br />//if(czujnik&gt;1) czujnik=0;<br />licznik_us=(PulseWidth);<br />//odleglosc=PulseWidth/8/58;<br /><br /><br />tr_brush_color(BLUE);<br />tr_locate(5,0); fill_line(' ',28);<br />tr_locate(7,0); fill_line(' ',28);<br />tr_locate(6,28); fill_line(' ',1);<br />tr_locate(6,0); fill_line(' ',1);<br />tr_attr( 0, RED, BLACK );<br />//uart_putint(licznik_switch,10);<br />tr_locate(6,5);<br />uart_puts(&quot;ODLEGŁOSĆ LEWA: &quot;);<br />//tr_locate(7,5);<br />uart_putint(odlegloscl,10); uart_puts(&quot;  &quot;);<br /><br />tr_brush_color(BLUE);<br />tr_locate(8,0); fill_line(' ',28);<br />tr_locate(10,0); fill_line(' ',28);<br />tr_locate(9,28); fill_line(' ',1);<br />tr_locate(9,0); fill_line(' ',1);<br />tr_attr( 0, RED, BLACK );<br />//uart_putint(licznik_switch,10);<br />tr_locate(9,5);<br />uart_puts(&quot;ODLEGŁOSĆ PRAWA: &quot;);<br />//tr_locate(7,5);<br />uart_putint(odlegloscp,10); uart_puts(&quot;  &quot;);<br /><br /><br /><br /><br /><br />if(!Timer1 &amp;&amp; odlegloscl &lt;6){<br />LEDS_TOG;<br />Timer1=200;<br />}<br /><br />else {<br />if(!Timer1){<br />LEDS_TOG;<br />Timer1=1000;<br />}<br />}<br />if(!Timer2){<br />trigerl(); //wyzwolenie<br />wait(100);<br />trigerp();<br />Timer2=100;<br />}<br /><br /><br />}//koniec while(1)<br /><br /><br />}//koniec main<br />ISR(TIMER1_CAPT_vect)<br />{<br />    static uint16_t LastCapture;<br /><br />    if( (TCCR1B &amp; (1&lt;&lt;ICES1)) ) PulseWidth = ICR1 - LastCapture;<br />    LastCapture = ICR1;<br /><br />    TCCR1B ^= (1&lt;&lt;ICES1); //zmiana zbocza<br />}<br /><br />void trigerl(void)<br />{<br />odlegloscl=PulseWidth/8/58;<br />PORTD &amp;= ~(1&lt;&lt;PD0);<br />_delay_us(2);<br />PORTD |= (1&lt;&lt;PD0); //wystawienie jedynki na TRIG<br />_delay_us(10);//wymagane 10 uS stanu wysokiego<br />PORTD &amp;= ~(1&lt;&lt;PD0);//wystawienie zera na TRIG<br />odlegloscl=PulseWidth/8/58;<br />}<br /><br />void trigerp(void)<br />{<br />odlegloscp=PulseWidth/8/58;<br />PORTD &amp;= ~(1&lt;&lt;PD1);<br />_delay_us(2);<br />PORTD |= (1&lt;&lt;PD1); //wystawienie jedynki na TRIG<br />_delay_us(10);//wymagane 10 uS stanu wysokiego<br />PORTD &amp;= ~(1&lt;&lt;PD1);//wystawienie zera na TRIG<br />odlegloscp=PulseWidth/8/58;<br />}<br /><br /><br />ISR( TIMER0_OVF_vect ) {<br />TCNT0 = 132; // czêstotliwoœæ 1000 Hz<br /><br /><br />uint16_t n = Timer1;<br />if(n) Timer1=--n;<br /><br />n = Timer2;<br />if(n) Timer2=--n;<br /><br />count++;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 26 wrz 2014, o 19:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-26T18:01:22+01:00</updated>
<published>2014-09-26T18:01:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96758#p96758</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96758#p96758"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96758#p96758"><![CDATA[
Jeszcze zmiana w tym miejscu z:<br />[syntax=c]if( !(TCCR1B &amp; (1&lt;&lt;ICES1)) ) PulseWidth = ICR1 - LastCapture;[/syntax]<br />na:<br />[syntax=c]if( (TCCR1B &amp; (1&lt;&lt;ICES1)) ) PulseWidth = ICR1 - LastCapture; //z tranzystorem bez negacji logicznej[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 26 wrz 2014, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-26T16:04:07+01:00</updated>
<published>2014-09-26T16:04:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96747#p96747</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96747#p96747"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96747#p96747"><![CDATA[
Dziękuję Ci kolego Kauser że chce się Tobie ze mną męczeyć ale jesem jeszcze początkującym i niektóre rzeczy słabo jeszcze mi idą, kod u gory uaktualniłem a wyjście z tranzystora podciągnąłem rezystoem 10kohm pod plus, lecz znów jakieś dziwne wyniki randomowe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 26 wrz 2014, o 16:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-25T20:02:07+01:00</updated>
<published>2014-09-25T20:02:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96708#p96708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96708#p96708"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96708#p96708"><![CDATA[
Zrób po mojemu. Wyrzuć ten program powyżej i wróć do wersji z jednym czujnikiem.<br /><br />Najlepiej podejdź do modyfikacji małymi krokami. Najpierw niech będzie jeden czujnik i jeden tranzystor, którego nie sterujesz z procesora. Te tranzystory maja działać jak bramka NOR. Do wyjścia czujnika podłącz rezystor i do niego bazę tranzystora, emiter do masy i kolektor do wejścia ICP.<br /><br />W programie w pierwotnej wersji zmień:<br />- podciągnij ICP do plusa<br />- odwróć zbocza, bo tranzystor neguje sygnał<br /><br />I to powinno działać na jednym czujniku. Jak to się uda to przejdź dalej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 25 wrz 2014, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-26T16:01:39+01:00</updated>
<published>2014-09-25T19:01:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96702#p96702</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96702#p96702"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96702#p96702"><![CDATA[
Kod na tranzystorze.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;MK_TERMINAL/mk_term.h&quot;<br /><br /><br />#define LEDS (1&lt;&lt;PC0)<br />#define LEDS_ON PORTC &amp;= ~LEDS<br />#define LEDS_OFF PORTC |= LEDS<br />#define LEDS_TOG PORTC ^= LEDS<br /><br /><br />void triger(void);<br />//uint8_t licznik_switch=0;<br />volatile uint8_t odleglosc=0;<br />volatile uint8_t odlegloscp=0;<br /><br /><br />volatile uint16_t PulseWidth;<br />volatile uint16_t licznik_us;<br />volatile uint16_t Timer1, Timer2;<br />volatile int count=0;<br /><br /><br /> void wait (int c){<br />count = 0;<br />while(count&lt;c);<br />}<br /><br />int main (void){<br /><br />DDRC |=(1&lt;&lt;PC0);<br /><br />DDRA |= (1&lt;&lt;PA0);//wyjscie<br />PORTA &amp;= ~(1&lt;&lt;PA0); //TRIGER<br /><br />DDRD &amp;= ~(1&lt;&lt;PD6);//wejscie ECHO<br />PORTD &amp;= ~(1&lt;&lt;PD6);//ICP<br /><br />DDRA &amp;= ~(1&lt;&lt;PA1); // wejscie<br />PORTA |= (1&lt;&lt;PA1); // uSWITCH<br /><br /><br />   // TCCR1B |= (1&lt;&lt;ICES1);  /* Zbocze narastające wywoła przerwanie*/    //Jeli dobrze zrozumiałem to teraz zbocze opadajace wywoła<br />    TCCR1B |= (1&lt;&lt;CS10);   /* preskaler = 1 */<br />    OCR1B = 7;<br />    //TCCR1B |= (1&lt;&lt;ICNC1); //NOISE CANCELLER<br />    TIMSK |=  (1&lt;&lt;TICIE1);   /* zezwolenie na przerwanie od ICP */<br /><br /><br />    // timer0 - Config<br />    TCCR0 |= (1&lt;&lt;CS01)|(1&lt;&lt;CS00); //prescaler = 64<br />    TIMSK |= (1&lt;&lt;TOIE0); // zezwolenie na przerwanie OVF<br /><br />// ---------------  INICJALIZACJA  -----------------<br />USART_Init( __UBRR );<br /><br />sei();<br />// ---------------  INICJALIZACJA  -----------------<br /><br />tr_cls(1);<br />while(1)<br />{<br />//if(czujnik&gt;1) czujnik=0;<br />licznik_us=(PulseWidth);<br />odleglosc=PulseWidth/8/58;<br /><br /><br /><br />tr_brush_color(BLUE);<br />tr_locate(5,0); fill_line(' ',28);<br />tr_locate(7,0); fill_line(' ',28);<br />tr_locate(6,28); fill_line(' ',1);<br />tr_locate(6,0); fill_line(' ',1);<br />tr_attr( 0, RED, BLACK );<br />//uart_putint(licznik_switch,10);<br />tr_locate(6,5);<br />uart_puts(&quot;ODLEGŁOSĆ LEWA: &quot;);<br />//tr_locate(7,5);<br />uart_putint(odleglosc,10); uart_puts(&quot;  &quot;);<br /><br />tr_brush_color(BLUE);<br />tr_locate(8,0); fill_line(' ',28);<br />tr_locate(10,0); fill_line(' ',28);<br />tr_locate(9,28); fill_line(' ',1);<br />tr_locate(9,0); fill_line(' ',1);<br />tr_attr( 0, RED, BLACK );<br />//uart_putint(licznik_switch,10);<br />tr_locate(9,5);<br />uart_puts(&quot;ODLEGŁOSĆ PRAWA: &quot;);<br />//tr_locate(7,5);<br />uart_putint(odlegloscp,10); uart_puts(&quot;  &quot;);<br /><br /><br /><br /><br /><br />if(!Timer1 &amp;&amp; odleglosc &lt;6){<br />LEDS_TOG;<br />Timer1=200;<br />}<br /><br />else {<br />if(!Timer1){<br />LEDS_TOG;<br />Timer1=1000;<br />}<br />}<br />if(!Timer2){<br />triger(); //wyzwolenie<br />Timer2=300;<br />}<br /><br /><br />}//koniec while(1)<br /><br /><br />}//koniec main<br />ISR(TIMER1_CAPT_vect)<br />{<br />    static uint16_t LastCapture;<br /><br />    if( !(TCCR1B &amp; (1&lt;&lt;ICES1)) ) PulseWidth = ICR1 - LastCapture;<br />    LastCapture = ICR1;<br /><br />    TCCR1B ^= (1&lt;&lt;ICES1); //zmiana zbocza<br />}<br /><br />void triger(void)<br />{<br />PORTA &amp;= ~(1&lt;&lt;PA0);<br />_delay_us(2);<br />PORTA |= (1&lt;&lt;PA0); //wystawienie jedynki na TRIG<br />_delay_us(10);//wymagane 10 uS stanu wysokiego<br />PORTA &amp;= ~(1&lt;&lt;PA0);//wystawienie zera na TRIG<br />}<br /><br /><br /><br />ISR( TIMER0_OVF_vect ) {<br />TCNT0 = 132; // czêstotliwoœæ 1000 Hz<br /><br /><br />uint16_t n = Timer1;<br />if(n) Timer1=--n;<br /><br />n = Timer2;<br />if(n) Timer2=--n;<br /><br />count++;<br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 25 wrz 2014, o 19:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-25T18:06:33+01:00</updated>
<published>2014-09-25T18:06:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96695#p96695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96695#p96695"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96695#p96695"><![CDATA[
Tranzystory są sterowane z wyjść czujników.<br />Pomiar możesz robić co 60 ms (krótsze czasy nie są zalecane). W pętli głównej wysyłasz triger na 1 czujnik i po 100 ms czytasz wynik 1 i od razu wysyłasz triger na 2 czujnik i po 100ms czytasz wynik 2 i z powrotem wysyłasz triger na 1 czujnik itd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 25 wrz 2014, o 18:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-25T17:49:52+01:00</updated>
<published>2014-09-25T17:49:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96693#p96693</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96693#p96693"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96693#p96693"><![CDATA[
Ok rozumiem że 2 tranzystory wyzwalane naprzemian np.zmienną która pomoże zidentyfikować i obliczyć odległość danego czujnika???<br />Jeśli to zrobię mniej więcej co 300ms rezultat powinien wyjść jeszcze szybciej nawet niż poprzedni (zależy mi na dokonywaniu pomiaru w czasie co 300-400ms bo potrzebuje jako czujniki do robota).<br />Dobrze myśle?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 25 wrz 2014, o 17:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-25T17:37:24+01:00</updated>
<published>2014-09-25T17:37:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96691#p96691</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96691#p96691"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96691#p96691"><![CDATA[
To 10us dla trigera to minimum, a wewnętrzny oscylator ma stosunkowo dużą tolerancję. Spróbuj troszkę zwiększyć ten czas.<br /><div class="quotetitle">KoWaL napisał(a):</div><div class="quotecontent"><br />potrzebuje obsłużyć 2 takie czujniki ale widzę że atmega32 posiada tylko jedno wejscie ICP1, jak to teraz zrobić?<br /></div> Podłącz oba wyjścia przez tranzystory npn do wejścia ICP1 i włącz wewnętrzne podciąganie oraz zmień działanie na przeciwne zbocze. Programowo jeszcze będzie to wymagać zmiennej, która będzie informować jaki triger został wygenerowany i który wymiar należy obliczyć na podstawie PulseWidth.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 25 wrz 2014, o 17:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-25T17:21:41+01:00</updated>
<published>2014-09-25T17:21:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96686#p96686</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96686#p96686"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96686#p96686"><![CDATA[
Jeszcze jeden problem, mianowicie potrzebuje obsłużyć 2 takie czujniki ale widzę że atmega32 posiada tylko jedno wejscie ICP1, jak to teraz zrobić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 25 wrz 2014, o 17:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-25T12:59:18+01:00</updated>
<published>2014-09-25T12:59:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96646#p96646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96646#p96646"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96646#p96646"><![CDATA[
Ok zmieniłem na podział przez 8 a nastepnie przez 58 i wynik jest ok, ale dalej nwm dlaczego są takie skoki typu mam 6cm i przeskakuje na 7 i znow na 6(to akurat moze byc noramlne) ale że jest 6 i nagle 11 i znów 6 albo coś w tym stylu i tak przeskakuje to uż nwm. A powyżej np 16 zm pokazuje cały czas 83.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 25 wrz 2014, o 12:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-24T20:37:38+01:00</updated>
<published>2014-09-24T20:37:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96611#p96611</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96611#p96611"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96611#p96611"><![CDATA[
A masz przestawione F_CPU w opcjach na 8 MHz?<br /><br />Wzór na odległość jest taki:<br />Impuls[us]/58 = odległość[cm]<br />Jak masz kwarc 8 MHz i preskaler 1 to 1 us odpowiada 8 cyklom zegara, więc odległość to będzie PulseWidth/8/58 i maksymalna odległość mierzona wyniesie 65536/8/58  = 141 cm<br />Jakbyś ustawił preskaler timera1 na 8 to wtedy miabłyś pełny zakres do 4 metrów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 24 wrz 2014, o 20:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-24T19:58:52+01:00</updated>
<published>2014-09-24T19:58:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96606#p96606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96606#p96606"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96606#p96606"><![CDATA[
taktowanie to 8Mhz wewnetrzny osc.  niezależnie czy 3cm czy 10 czy 15 jest tak samo.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 24 wrz 2014, o 19:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-09-24T19:21:31+01:00</updated>
<published>2014-09-24T19:21:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96600#p96600</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96600#p96600"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96600#p96600"><![CDATA[
Kod wygląda OK. Może timer1 (ten co mierzy długość impulsu) się przekręca kilka razy. Jakie masz taktowanie procka? Jaką odległość mierzysz? Jakiego impulsu w mikrosekundach się spodziewasz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 24 wrz 2014, o 19:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-24T18:50:38+01:00</updated>
<published>2014-09-24T18:50:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96598#p96598</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96598#p96598"/>
<title type="html"><![CDATA[Re: dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96598#p96598"><![CDATA[
I jak pomoże ktoś? wiem że były takie tematy ale nie umiem sobie z tym poradzić...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 24 wrz 2014, o 18:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoWaL]]></name></author>
<updated>2014-09-24T15:06:47+01:00</updated>
<published>2014-09-24T15:06:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96579#p96579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96579#p96579"/>
<title type="html"><![CDATA[dziwne odczyty z HC-SR04 (ATmega32)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8623&amp;p=96579#p96579"><![CDATA[
Cześć,<br />Mam problem z czujnikiem ultradzwikęowym mianowici mam dziwne odczyty mój kod to:<br />[syntax=c]/*<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;MK_TERMINAL/mk_term.h&quot;<br /><br />#define KEY_DOWN !(PINA &amp; (1&lt;&lt;PA1))<br /><br />#define LEDS (1&lt;&lt;PC0)<br />#define LEDS_ON PORTC &amp;= ~LEDS<br />#define LEDS_OFF PORTC |= LEDS<br />#define LEDS_TOG PORTC ^= LEDS<br /><br />void triger(void);<br />uint8_t licznik_switch=0;<br /><br />volatile uint16_t PulseWidth;<br />volatile uint16_t licznik_us;<br />volatile uint16_t Timer1, Timer2;<br /><br />int main (void){<br /><br />DDRC |=(1&lt;&lt;PC0);<br /><br />DDRA |= (1&lt;&lt;PA0);//wyjscie<br />PORTA &amp;= ~(1&lt;&lt;PA0); //TRIGER<br /><br />DDRD &amp;= ~(1&lt;&lt;PD6);//wejscie ECHO<br />PORTD &amp;= ~(1&lt;&lt;PD6);//ICP<br /><br />DDRA &amp;= ~(1&lt;&lt;PA1); // wejscie<br />PORTA |= (1&lt;&lt;PA1); // uSWITCH<br /><br /><br />    TCCR1B |= (1&lt;&lt;ICES1);  /* Zbocze narastające wywoła przerwanie*/<br />    TCCR1B |= (1&lt;&lt;CS10);   /* preskaler = 1 */<br />    OCR1B = 7;<br />    //TCCR1B |= (1&lt;&lt;ICNC1); //NOISE CANCELLER<br />    TIMSK |=  (1&lt;&lt;TICIE1);   /* zezwolenie na przerwanie od ICP */<br /><br /><br />    // timer0 - Config<br />    TCCR0 |= (1&lt;&lt;CS01)|(1&lt;&lt;CS00); //prescaler = 64<br />    TIMSK |= (1&lt;&lt;TOIE0); // zezwolenie na przerwanie OVF<br /><br />// ---------------  INICJALIZACJA  -----------------<br />USART_Init( __UBRR );<br /><br />sei();<br />// ---------------  INICJALIZACJA  -----------------<br /><br />tr_cls(1);<br />while(1)<br />{<br />licznik_us=(PulseWidth);<br />tr_locate(5,5);<br />uart_putint(licznik_switch,10);<br />tr_locate(7,5);<br />uart_putint(PulseWidth/1000/2,10);<br /><br />if(!Timer1){<br />LEDS_TOG;<br />Timer1=500;<br />}<br />if(!Timer2){<br />tr_cls(1);<br />triger(); //wyzwolenie<br />licznik_switch++;//potwierdzenie wyzwolenia na terminalu<br />Timer2=900;<br />}<br /><br /><br />}//koniec while(1)<br /><br /><br />}//koniec main<br />ISR(TIMER1_CAPT_vect)<br />{<br />    static uint16_t LastCapture;<br /><br />    if( !(TCCR1B &amp; (1&lt;&lt;ICES1)) ) PulseWidth = ICR1 - LastCapture;<br />    LastCapture = ICR1;<br /><br />    TCCR1B ^= (1&lt;&lt;ICES1); //zmiana zbocza<br />}<br /><br />void triger(void)<br />{<br />PORTA &amp;= ~(1&lt;&lt;PA0);<br />_delay_us(2);<br />PORTA |= (1&lt;&lt;PA0); //wystawienie jedynki na TRIG<br />_delay_us(10);//wymagane 10 uS stanu wysokiego<br />PORTA &amp;= ~(1&lt;&lt;PA0);//wystawienie zera na TRIG<br />}<br /><br /><br /><br />ISR( TIMER0_OVF_vect ) {<br />TCNT0 = 132; // czêstotliwoœæ 1000 Hz<br /><br /><br />uint16_t n = Timer1;<br />if(n) Timer1=--n;<br /><br />n = Timer2;<br />if(n) Timer2=--n;<br />}[/syntax]<br />odczyt typu: najpierw 9 (lub jakaś liczba) nagle zmienia se na 24 lub jakies randomowe liczby.<br />Próbowałemteż dzielenia przez 58 ale też nie idzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2114">KoWaL</a> — 24 wrz 2014, o 15:06</p><hr />
]]></content>
</entry>
</feed>