<?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; atmega128 частотомер 4 мгц]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=283</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=283&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «atmega128 частотомер 4 мгц».]]></description>
		<lastBuildDate>Wed, 10 Mar 2021 03:30:33 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[atmega128 частотомер 4 мгц]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=3223#p3223</link>
			<description><![CDATA[<p>вход частотомера - pin 31<br />кнопка нажатие = замыкание на gnd - pin 34<br />кварц 12 мгц<br />как прошивать - <a href="http://rcl-radio.ru/?p=92690">http://rcl-radio.ru/?p=92690</a></p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/03/3702db671069b75504fc76513460f344.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/03/3702db671069b75504fc76513460f344.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/03/e87fe3ad34b2b14031b86dad373490be.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/03/e87fe3ad34b2b14031b86dad373490be.png" /></span> </p><br /><div class="codebox"><pre><code>#include &lt;LiquidCrystal.h&gt;  
LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // LCD (RS, E, DB4, DB5, DB6, DB7)
                                         // PIN(PB0,PB1,PB2, PB3, PB4, PB5)

volatile int x;
unsigned long f;
int timer3;
byte ind7,ind6,ind5,ind4,ind3,ind2,ind1,ind0;
byte mn=1;
int vr_s;
                                     
void setup(){ 
   lcd.begin(16, 2); 
  DDRG &amp;= ~(1 &lt;&lt; 1);PORTG |= (1 &lt;&lt; 1);// pin 31
  DDRD  &amp;= ~(1 &lt;&lt; 6); PORTD  |= (1 &lt;&lt; 6); // pin 34
   cli();  
  TCCR1A = 0;
  TCCR1B = 0;
  TCCR1B = (1 &lt;&lt; CS12)|(1 &lt;&lt; CS11)|(1 &lt;&lt; CS10); 
  TIMSK |= (1 &lt;&lt; TOIE1); 
//////////////  
  TCCR3A = 0;   
  TCCR3B = 0;   
  OCR3A = 18750; // 0.1 s || 25000 16MHz
  TCCR3B |= (1 &lt;&lt; WGM32); 
  TCCR3B |= (1 &lt;&lt; CS31) | (1 &lt;&lt; CS30);  // 64  
  ETIMSK |= (1 &lt;&lt; OCIE3A);  
   sei(); 
}
  
  
void loop(){
   if(((PING &gt;&gt; 1) &amp; 1) == 0 &amp;&amp; mn==10){mn=1;delay(200);}
   if(((PING &gt;&gt; 1) &amp; 1) == 0 &amp;&amp; mn==1){mn=10;delay(200);}
   lcd.setCursor(0, 0); if(mn==1){lcd.print(&quot;1s &quot;);}else{lcd.print(&quot;10s&quot;);}
   
   lcd.setCursor(14, 0);if(timer3&gt;0&amp;&amp;timer3&lt;5)lcd.print(&quot; &quot;);else lcd.print(&quot;*&quot;);
  if(timer3 == 5){
   lcd.setCursor(6, 0); lcd.print(&quot;Freq&quot;);
   lcd.setCursor(3, 1);
   ind7=f/1000000/mn;
   ind6=f/100000/mn%10;
   ind5=f/10000/mn%10;
   ind4=f/1000/mn%10;
   ind3=f/100/mn%10;
   ind2=f/10/mn%10;
   ind1=f/mn%10;
 if(mn==10){  ind0=f%10;}

 lcd.print(ind7);lcd.print(&quot;.&quot;);lcd.print(ind6);lcd.print(ind5);lcd.print(ind4);lcd.print(&quot;.&quot;);lcd.print(ind3);lcd.print(ind2);lcd.print(ind1);
 if(mn==10){lcd.print(&quot;,&quot;);lcd.print(ind0);}
  lcd.print(&quot;   &quot;);
}}

ISR(TIMER3_COMPA_vect){
   if(mn==1){vr_s=11;}else{vr_s=101;}
     timer3++;
   if(timer3==1){
     x = 0;TCNT1 = 0; 
     TCCR1B = (1 &lt;&lt; CS12)|(1 &lt;&lt; CS11)|(1 &lt;&lt; CS10);}
   if(timer3==vr_s){timer3=0;
     TCCR1B &amp;= ~(1 &lt;&lt; CS12)|(1 &lt;&lt; CS11)|(1 &lt;&lt; CS10);
     f = ((x*65535) + TCNT1)-1;}
}
      
ISR (TIMER1_OVF_vect){x++;}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 10 Mar 2021 03:30:33 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=3223#p3223</guid>
		</item>
	</channel>
</rss>
