<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>https://senzor.robotika.sk/sensorwiki/index.php?action=history&amp;feed=atom&amp;title=Meranie_d%C4%BA%C5%BEky_impulzu_3</id>
	<title>Meranie dĺžky impulzu 3 - História úprav</title>
	<link rel="self" type="application/atom+xml" href="https://senzor.robotika.sk/sensorwiki/index.php?action=history&amp;feed=atom&amp;title=Meranie_d%C4%BA%C5%BEky_impulzu_3"/>
	<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Meranie_d%C4%BA%C5%BEky_impulzu_3&amp;action=history"/>
	<updated>2026-05-27T01:26:02Z</updated>
	<subtitle>História úprav pre túto stránku na wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Meranie_d%C4%BA%C5%BEky_impulzu_3&amp;diff=12780&amp;oldid=prev</id>
		<title>Balogh: Vytvorená stránka „&#039;&#039;&#039;&#039;&#039;Toto je staršia verzia, ktorú sme mali na cvičeniach kedysi dávno.&#039;&#039;&#039;&#039;&#039;    === Literatúra ===  * [http://www.atmel.com/dyn/resources/prod_documents/doc2505.pdf…“</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Meranie_d%C4%BA%C5%BEky_impulzu_3&amp;diff=12780&amp;oldid=prev"/>
		<updated>2021-05-17T06:11:36Z</updated>

		<summary type="html">&lt;p&gt;Vytvorená stránka „&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Toto je staršia verzia, ktorú sme mali na cvičeniach kedysi dávno.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;    === Literatúra ===  * [http://www.atmel.com/dyn/resources/prod_documents/doc2505.pdf…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Toto je staršia verzia, ktorú sme mali na cvičeniach kedysi dávno.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Literatúra ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc2505.pdf AVR130: Setup and Use the AVR® Timers.]  Aplication Note, Atmel Corporation 2002.&amp;lt;BR&amp;gt; + [http://www.atmel.com/dyn/resources/prod_documents/AVR130.zip software download]&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8014.pdf AVR135: Using Timer Capture to Measure PWM Duty Cycle.] Aplication Note, Atmel Corporation 2005.&amp;lt;BR&amp;gt; + [http://www.atmel.com/dyn/resources/prod_documents/AVR135.zip software download]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Príklad ([[Médiá:avrdemo7.hex|avrdemo7.hex]])&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Na vstupe ICP1 (na doske Acrob D8, na čipe ATmega328P je to PB0, pin 14) máme pripojený [[555|zdroj externého kmitočtu]] cca 1Hz:&lt;br /&gt;
&lt;br /&gt;
[[Obrázok:Oscillogram7.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nastavené máme spúšťanie ICR dobežnou hranou, počítadlo počíta 16 MHz:1024, vypisujeme  niekoľkokrát za sekundu stavy všetkých registrov&lt;br /&gt;
&amp;lt;source linenumbers lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
Input D8 = 1  TCNT1 =   353  ICR =     0 &lt;br /&gt;
Input D8 = 1  TCNT1 =  1543  ICR =     0 &lt;br /&gt;
Input D8 = 1  TCNT1 =  2749  ICR =     0 &lt;br /&gt;
Input D8 = 1  TCNT1 =  3956  ICR =     0 &lt;br /&gt;
Input D8 = 1  TCNT1 =  5163  ICR =     0 &lt;br /&gt;
Input D8 = 0  TCNT1 =  6369  ICR =  6070  D = 6070  T = 388.4800 ms&lt;br /&gt;
Input D8 = 0  TCNT1 =  7706  ICR =  6070  &lt;br /&gt;
Input D8 = 0  TCNT1 =  8961  ICR =  6070  &lt;br /&gt;
Input D8 = 0  TCNT1 = 10216  ICR =  6070  &lt;br /&gt;
Input D8 = 0  TCNT1 = 11488  ICR =  6070  &lt;br /&gt;
Input D8 = 0  TCNT1 = 12759  ICR =  6070  &lt;br /&gt;
Input D8 = 1  TCNT1 = 14031  ICR =  6070  &lt;br /&gt;
Input D8 = 1  TCNT1 = 15303  ICR =  6070  &lt;br /&gt;
Input D8 = 1  TCNT1 = 16574  ICR =  6070  &lt;br /&gt;
Input D8 = 1  TCNT1 = 17846  ICR =  6070  &lt;br /&gt;
Input D8 = 1  TCNT1 = 19117  ICR =  6070  &lt;br /&gt;
Input D8 = 1  TCNT1 = 20389  ICR =  6070  &lt;br /&gt;
Input D8 = 1  TCNT1 = 21661  ICR = 21591  D = 15521  T = 993.3441 ms&lt;br /&gt;
Input D8 = 0  TCNT1 = 23046  ICR = 21591  &lt;br /&gt;
Input D8 = 0  TCNT1 = 24334  ICR = 21591  &lt;br /&gt;
Input D8 = 0  TCNT1 = 25622  ICR = 21591  &lt;br /&gt;
Input D8 = 0  TCNT1 = 26910  ICR = 21591  &lt;br /&gt;
Input D8 = 0  TCNT1 = 28197  ICR = 21591  &lt;br /&gt;
Input D8 = 1  TCNT1 = 29485  ICR = 21591  &lt;br /&gt;
Input D8 = 1  TCNT1 = 30773  ICR = 21591  &lt;br /&gt;
Input D8 = 1  TCNT1 = 32061  ICR = 21591  &lt;br /&gt;
Input D8 = 1  TCNT1 = 33349  ICR = 21591  &lt;br /&gt;
Input D8 = 1  TCNT1 = 34636  ICR = 21591  &lt;br /&gt;
Input D8 = 1  TCNT1 = 35924  ICR = 21591  &lt;br /&gt;
Input D8 = 1  TCNT1 = 37212  ICR = 37110  D = 15519  T = 993.2161 ms&lt;br /&gt;
Input D8 = 0  TCNT1 = 38597  ICR = 37110  &lt;br /&gt;
Input D8 = 0  TCNT1 = 39885  ICR = 37110  &lt;br /&gt;
Input D8 = 0  TCNT1 = 41173  ICR = 37110  &lt;br /&gt;
Input D8 = 0  TCNT1 = 42461  ICR = 37110  &lt;br /&gt;
Input D8 = 0  TCNT1 = 43749  ICR = 37110  &lt;br /&gt;
Input D8 = 1  TCNT1 = 45037  ICR = 37110  &lt;br /&gt;
Input D8 = 1  TCNT1 = 46324  ICR = 37110  &lt;br /&gt;
Input D8 = 1  TCNT1 = 47612  ICR = 37110  &lt;br /&gt;
Input D8 = 1  TCNT1 = 48900  ICR = 37110  &lt;br /&gt;
Input D8 = 1  TCNT1 = 50188  ICR = 37110  &lt;br /&gt;
Input D8 = 1  TCNT1 = 51476  ICR = 37110  &lt;br /&gt;
Input D8 = 1  TCNT1 = 52763  ICR = 52630  D = 15520  T = 993.2800&lt;br /&gt;
Input D8 = 0  TCNT1 = 54149  ICR = 52630  &lt;br /&gt;
Input D8 = 0  TCNT1 = 55437  ICR = 52630  &lt;br /&gt;
Input D8 = 0  TCNT1 = 56724  ICR = 52630  &lt;br /&gt;
Input D8 = 0  TCNT1 = 58012  ICR = 52630  &lt;br /&gt;
Input D8 = 0  TCNT1 = 59300  ICR = 52630  &lt;br /&gt;
Input D8 = 1  TCNT1 = 60588  ICR = 52630  &lt;br /&gt;
Input D8 = 1  TCNT1 = 61876  ICR = 52630  &lt;br /&gt;
Input D8 = 1  TCNT1 = 63163  ICR = 52630  &lt;br /&gt;
Input D8 = 1  TCNT1 = 64451  ICR = 52630  &lt;br /&gt;
Input D8 = 1  TCNT1 =   203  ICR = 52630  &lt;br /&gt;
Input D8 = 1  TCNT1 =  1458  ICR = 52630  &lt;br /&gt;
Input D8 = 1  TCNT1 =  2730  ICR =  2619  D = 15525  T = 993.6000&lt;br /&gt;
Input D8 = 0  TCNT1 =  4083  ICR =  2619  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ak chceme merať aj striedu, musíme meranie realizovať s prerušením a v obsluhe prerušenia preklopiť konfiguračný bit, ktorý rozhoduje o prepise &lt;br /&gt;
TCNT do ICR registra. Je to bit ICES1, ktorý je v TCCR1B.6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
volatile int newTick = 0;   // The variable for interrupt should be declared as a volatile one!&lt;br /&gt;
                  &lt;br /&gt;
ISR(TIMER1_CAPT_vect)       // Timer 1 Capture Interrupt Service Routine&lt;br /&gt;
{&lt;br /&gt;
  TCCR1B = ??               // toggle Edge Select bit&lt;br /&gt;
  newTick = ICR1;&lt;br /&gt;
}; &lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   DDRB = ??                // Set ICR - Port B, pin0  as INPUT&lt;br /&gt;
 TCCR1B = ??                // T1 clk = F_CPU : 1024, falling edge pin ICP1,&lt;br /&gt;
 TCCR1A = ??                // T1 in timer mode !! Note: if You omit this, TCNT1 will be only 8-bit !!&lt;br /&gt;
  TCNT1 = 0x0000;           // initialize the counter (16-bit! Low+High bytes)&lt;br /&gt;
  TIFR1 = ??                // (1&amp;lt;&amp;lt;ICF1);   if a 1 is written to a ICF1 bit&lt;br /&gt;
                            //              - the ICF1 bit will be cleared&lt;br /&gt;
                      &lt;br /&gt;
 TIMSK1 = ??                // Enable ICR interrupt&lt;br /&gt;
  sei();                    // Enable ALL interrupts                      &lt;br /&gt;
&lt;br /&gt;
  ....                      // TODO: display measured value somewhere&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ukážka pre Arduino využíva zabudovaný príkaz [http://arduino.cc/en/Reference/PulseIn PulseIn]:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#define SWITCH 8                // select the pin for Switch&lt;br /&gt;
unsigned long duration;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
 pinMode(SWITCH, INPUT);        // this pin is an INPUT&lt;br /&gt;
 Serial.begin(9600);&lt;br /&gt;
 Serial.println(&amp;quot;PulsIn test:&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()                      // endless loop&lt;br /&gt;
{&lt;br /&gt;
 duration = pulseIn(SWITCH, HIGH);&lt;br /&gt;
 Serial.print(&amp;quot; T1 = &amp;quot;);&lt;br /&gt;
 Serial.print(duration,DEC);&lt;br /&gt;
 Serial.print(&amp;quot; [us]&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
 duration = pulseIn(SWITCH, LOW);&lt;br /&gt;
 Serial.print(&amp;quot; T0 = &amp;quot;);&lt;br /&gt;
 Serial.print(duration,DEC);&lt;br /&gt;
 Serial.println(&amp;quot; [us]&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]][[Category:MMP]][[Category:DVPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
</feed>