<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[forum.rcl-radio.ru &mdash; Измеритель скважности и длительности импульсов]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=574</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=574&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Измеритель скважности и длительности импульсов».]]></description>
		<lastBuildDate>Wed, 10 Jan 2024 21:27:51 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Измеритель скважности и длительности импульсов]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=9162#p9162</link>
			<description><![CDATA[<p>Доброго времени. Интересный проект. Хочу повторить. Я вам на емейл написал.</p>]]></description>
			<author><![CDATA[null@example.com (Valko)]]></author>
			<pubDate>Wed, 10 Jan 2024 21:27:51 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=9162#p9162</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измеритель скважности и длительности импульсов]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8163#p8163</link>
			<description><![CDATA[<p>Доработка</p><p>Добавление внешнего генератора</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/6f1a3f09628677246ac842dffe6ce0e4.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/6f1a3f09628677246ac842dffe6ce0e4.png" /></span> </p><p>#define HZ 12&nbsp; - частота кварцевого генератора</p><div class="codebox"><pre><code>#define HZ 12 

#include &lt;Wire.h&gt;
#include &lt;OLED_I2C.h&gt;           // http://rcl-radio.ru/wp-content/uploads/2022/01/OLED_I2C.zip
 OLED  myOLED(SDA, SCL, 8);
 extern uint8_t SmallFont[];
 char i;
 unsigned long times0,times1,t0,t1,tic,f;
 int w=1;

void setup(){
  Serial.begin(9600);
  Wire.begin();
  Wire.setClock(50000L);
  delay(300);
  myOLED.begin();
  myOLED.setBrightness(100);
  DDRB |= PB5; // D13 ARUINO &gt; OUTPUT
  DDRD &amp;= ~(1 &lt;&lt; 2);  // D2 ARDUINO &gt; INPUT (INT0)
  EICRA |= (1&lt;&lt;ISC00); // любое изменение на INT0
  PORTD |= (1 &lt;&lt; PD5); // подтягивающий резистор на PD5 (вход T1)
  EIMSK |= (1&lt;&lt;INT0); // разрешить внешние прерывания INT0
  noInterrupts();
// TIMER_1 INPUT T1
  TCCR1A = 0;TCCR1B = 0;TCNT1=0;
  TCCR1B = (1 &lt;&lt; CS12) | (1 &lt;&lt; CS11) | (1 &lt;&lt; CS10);
  TIMSK1 = (1 &lt;&lt; TOIE1);
  TCKCSR = (1 &lt;&lt; F2XEN) | (1 &lt;&lt; TC2XS1);
  interrupts();
  }

void loop(){
  if(w==1){
  EIMSK &amp;=~ (1&lt;&lt;INT0);
  PORTB |=(1 &lt;&lt; PB5);
  Serial.print(&quot;T1 &quot;);Serial.print(t0/(1000.0*HZ),3);Serial.println(&quot; mS&quot;);
  Serial.print(&quot;T2 &quot;);Serial.print(t1/(1000.0*HZ),3);Serial.println(&quot; mS&quot;);
  Serial.print(&quot;T  &quot;);Serial.print((t1+t0)/(1000.0*HZ),3);Serial.println(&quot; mS&quot;);
  Serial.print(&quot;F  &quot;);Serial.print((1000000.0*HZ)/(t1+t0),3);Serial.println(&quot; Hz&quot;);
  Serial.println();
  //////////////////////
  myOLED.clrScr();
  myOLED.setFont(SmallFont);
  myOLED.print(F(&quot;T1&quot;),LEFT,0);myOLED.printNumF(t0/(1000.0*HZ),3, 30, 0);myOLED.print(F(&quot;mS&quot;), RIGHT, 0);
  myOLED.print(F(&quot;T2&quot;),LEFT,10);myOLED.printNumF(t1/(1000.0*HZ),3, 30, 10);myOLED.print(F(&quot;mS&quot;), RIGHT, 10);
  myOLED.print(F(&quot;T &quot;),LEFT,20);myOLED.printNumF((t1+t0)/(1000.0*HZ),3, 30, 20);myOLED.print(F(&quot;mS&quot;), RIGHT, 20);
  myOLED.print(F(&quot;F &quot;),LEFT,30);myOLED.printNumF((1000000.0*HZ)/(t1+t0),3, 30, 30);myOLED.print(F(&quot;Hz&quot;), RIGHT, 30);
  ///////////
  myOLED.drawLine(0, 40, 128, 40);
  float t_dl = t0;
  float t_sk = t1;
  float t_pr = t0+t1;
  myOLED.drawLine(0, 60, 5, 60);
  myOLED.drawLine(5, 60, 5, 45);
  myOLED.drawLine(5, 45, 5+(t_dl/t_pr)*120, 45);
  myOLED.drawLine(5+(t_dl/t_pr)*120, 60, 5+(t_dl/t_pr)*120, 45);
  myOLED.drawLine(5+(t_dl/t_pr)*120, 60, 5+(t_dl/t_pr)*120+(t_sk/t_pr)*120, 60);
  ///////////
  myOLED.update();
  PORTB &amp;=~(1 &lt;&lt; PB5);
  delay(400);
  w=0;i=0;f=tic*0xFFFF+TCNT1;times0=f;times1=f;
  EICRA|=(1&lt;&lt;ISC01);EICRA|=(1&lt;&lt;ISC00);EIMSK |= (1&lt;&lt;INT0);}
  }

ISR(INT0_vect){
  if(i&gt;1){i=0;w=1;}
  if(i==0){EICRA&amp;=~(1&lt;&lt;ISC01);EICRA|=(1&lt;&lt;ISC00);
  f=tic*0xFFFF+TCNT1;
  times0=f;t1=f-times1;}
  if(i==1){
  f=(tic*0xFFFF+TCNT1);
  times1=f;t0=f-times0;}
  i++;}

ISR(TIMER1_OVF_vect) {tic++;}  </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 15 Aug 2023 09:08:05 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8163#p8163</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измеритель скважности и длительности импульсов]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8159#p8159</link>
			<description><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/956bcbdb7642e67e0911f4d3b19de5fb.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/956bcbdb7642e67e0911f4d3b19de5fb.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/dc68b0ddd5113bbbc628b72a1723ce63.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/dc68b0ddd5113bbbc628b72a1723ce63.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/da04a7f6f0c0effce59a7183b98a861e.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/da04a7f6f0c0effce59a7183b98a861e.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/07a1f2cb78b9785db608ab5b5e000e68.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/07a1f2cb78b9785db608ab5b5e000e68.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/22a525aee88be3004e48cfddb2fb7d16.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/22a525aee88be3004e48cfddb2fb7d16.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/624aaf49241a17a5d4cb3b407e1ada39.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/624aaf49241a17a5d4cb3b407e1ada39.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/6819a655f657a52093e3b26ed76f9982.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/6819a655f657a52093e3b26ed76f9982.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/d3550af7c16247b4ef6e87a9173a805f.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/d3550af7c16247b4ef6e87a9173a805f.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 14 Aug 2023 06:44:07 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8159#p8159</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измеритель скважности и длительности импульсов]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8158#p8158</link>
			<description><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/a43726d845f6ec44ceae2ebd2829a285.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/a43726d845f6ec44ceae2ebd2829a285.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 14 Aug 2023 05:40:12 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8158#p8158</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измеритель скважности и длительности импульсов]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8157#p8157</link>
			<description><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/08/097051ad9cce0eb90d834aa9ee69b95e.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/08/097051ad9cce0eb90d834aa9ee69b95e.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 14 Aug 2023 03:55:44 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8157#p8157</guid>
		</item>
		<item>
			<title><![CDATA[Измеритель скважности и длительности импульсов]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8156#p8156</link>
			<description><![CDATA[<div class="codebox"><pre><code>#include &lt;Wire.h&gt;
#include &lt;OLED_I2C.h&gt;           // http://rcl-radio.ru/wp-content/uploads/2022/01/OLED_I2C.zip
 OLED  myOLED(SDA, SCL, 8);
 extern uint8_t SmallFont[];
 char i;
 unsigned long times0,times1,t0,t1;
 int w=1;

void setup(){
  Serial.begin(9600);
  Wire.begin();
  Wire.setClock(50000L);
  delay(300);
  myOLED.begin();
  myOLED.setBrightness(100);
  DDRB |= PB5; // D13 ARUINO &gt; OUTPUT
  DDRD &amp;= ~(1 &lt;&lt; 2);  // D2 ARDUINO &gt; INPUT (INT0)
  EICRA |= (1&lt;&lt;ISC00); // любое изменение на INT0
  EIMSK |= (1&lt;&lt;INT0); // разрешить внешние прерывания INT0
  noInterrupts();
  TCNT1 = 0;
  TCCR1A = 0;
  TCCR1C = 0;
  TCCR1A = 1 &lt;&lt; COM1A0;
  TCCR1B = 1 &lt;&lt; WGM12 | 1 &lt;&lt; CS12 | 1 &lt;&lt; CS10;
  DDRB =  1 &lt;&lt; DDB1;
  OCR1A = 15624;
  interrupts();
  }

void loop(){
  if(w==1){
  EIMSK &amp;=~ (1&lt;&lt;INT0);
  PORTB |=(1 &lt;&lt; PB5);
  Serial.print(&quot;T1 &quot;);Serial.print(t0/1000.0,3);Serial.println(&quot; mS&quot;);
  Serial.print(&quot;T2 &quot;);Serial.print(t1/1000.0,3);Serial.println(&quot; mS&quot;);
  Serial.print(&quot;T  &quot;);Serial.print((t1+t0)/1000.0,3);Serial.println(&quot; mS&quot;);
  Serial.print(&quot;F  &quot;);Serial.print(1000000.0/(t1+t0),3);Serial.println(&quot; Hz&quot;);
  Serial.println();
  //////////////////////
  myOLED.clrScr();
  myOLED.setFont(SmallFont);
  myOLED.print(F(&quot;T1&quot;),LEFT,0);myOLED.printNumF(t0/1000.000,3, 30, 0);myOLED.print(F(&quot;mS&quot;), RIGHT, 0);
  myOLED.print(F(&quot;T2&quot;),LEFT,10);myOLED.printNumF(t1/1000.000,3, 30, 10);myOLED.print(F(&quot;mS&quot;), RIGHT, 10);
  myOLED.print(F(&quot;T &quot;),LEFT,20);myOLED.printNumF((t1+t0)/1000.0,3, 30, 20);myOLED.print(F(&quot;mS&quot;), RIGHT, 20);
  myOLED.print(F(&quot;F &quot;),LEFT,30);myOLED.printNumF(1000000.0/(t1+t0),3, 30, 30);myOLED.print(F(&quot;Hz&quot;), RIGHT, 30);
  ///////////
  myOLED.drawLine(0, 40, 128, 40);
  float t_dl = t0;
  float t_sk = t1;
  float t_pr = t0+t1;
  myOLED.drawLine(0, 60, 5, 60);
  myOLED.drawLine(5, 60, 5, 45);
  myOLED.drawLine(5, 45, 5+(t_dl/t_pr)*120, 45);
  myOLED.drawLine(5+(t_dl/t_pr)*120, 60, 5+(t_dl/t_pr)*120, 45);
  myOLED.drawLine(5+(t_dl/t_pr)*120, 60, 5+(t_dl/t_pr)*120+(t_sk/t_pr)*120, 60);
  ///////////
  myOLED.update();
  PORTB &amp;=~(1 &lt;&lt; PB5);
  delay(400);
  EICRA|=(1&lt;&lt;ISC00);w=0;i=0;times0=micros();times1=micros();
  EICRA|=(1&lt;&lt;ISC01);EIMSK |= (1&lt;&lt;INT0);}
  }

ISR(INT0_vect){
  if(i&gt;1){i=0;w=1;}
  if(i==0){EICRA&amp;=~(1&lt;&lt;ISC01);EICRA|=(1&lt;&lt;ISC00);
  times0=micros();t1=micros()-times1;}
  if(i==1){
  times1=micros();t0=micros()-times0;}
  i++;}

  </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 14 Aug 2023 03:49:36 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8156#p8156</guid>
		</item>
	</channel>
</rss>
