<?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; TM1637 + STM32FC103]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=132</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=132&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «TM1637 + STM32FC103».]]></description>
		<lastBuildDate>Wed, 03 Mar 2021 08:15:38 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: TM1637 + STM32FC103]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=3187#p3187</link>
			<description><![CDATA[<p>Прочитал в&nbsp; datasheet на эту микросхему, что она может опрашивать до 16 кнопок, но&nbsp; нигде не нашёл примеров использования. Точно такая же ситуация и с tm1650 обе эти микросхемы очень часто используются в спутниковых ресиверах. Готовый корпус плюс блок питания хорошая основа для радиолюбителя.</p>]]></description>
			<author><![CDATA[null@example.com (derdemons)]]></author>
			<pubDate>Wed, 03 Mar 2021 08:15:38 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=3187#p3187</guid>
		</item>
		<item>
			<title><![CDATA[Re: TM1637 + STM32FC103]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1097#p1097</link>
			<description><![CDATA[<p><span class="attention-yellow"></span> </p><p>Добавлена функция print.time для вывода времени на индикатор с двоеточием.</p><p>Пример:</p><div class="codebox"><pre><code>#include &lt;Wire.h&gt;
#include &lt;STM32_TM1637.h&gt; // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=403&amp;download=1
#include &lt;uRTCLib.h&gt;//https://github.com/Naguissa/uRTCLib.git
   STM32_TM1637 tm(PB0,PB1);// CLK, DIO
   uRTCLib rtc(0x68);       
 
   // PB7 = SDA DS1307 (DS3231) 
   // PB6 = SCL DS1307 (DS3231)
   // PB0 = CLK TM1637
   // PB1 = DIO TM1637
 
float h;
int i;
 
void setup(){  
  tm.brig(7); // ЯРКОСТЬ 0...7
   Wire.begin();
  // rtc.set(30, 37, 23, 2, 17, 12, 19);
  // RTCLib::set(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year)
}
 
void loop(){
   rtc.refresh();// опрос времни
   h = rtc.hour()*100 + rtc.minute();
   tm.print_time(h, 0);
   delay(500);
   tm.print_time(h, 1);
   delay(500);
i++;
if(i==10){i=0;tm.print_float(rtc.temp()/100,0 ,0b1111000,0,0,0);delay(2000);}// вывод температуры DS3231
    
  }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Fri, 06 Mar 2020 18:42:14 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1097#p1097</guid>
		</item>
		<item>
			<title><![CDATA[Re: TM1637 + STM32FC103]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1023#p1023</link>
			<description><![CDATA[<p>STM32_TM1637 v2.0</p><p><span class="attention-yellow"></span> </p><div class="codebox"><pre><code>#include &lt;STM32_TM1637.h&gt;

STM32_TM1637 tm(PB0,PB1);// CLK, DIO

float h=0.1;
byte p=1;

void setup(){
  Serial.begin(9600);   
  tm.brig(7); // ЯРКОСТЬ 0...7
}

void loop(){
   
   tm.print_float(h,p,  0,0,0,0); 
   delay(500);
  }

  /*
    
  tm.print_float(h,p,  h0,h1,h2,h3); 

  float h = -999...9999 | -0.99...0.999 | -9.99...99.99 | -99.9...999.9 
  byte p = 0...3 - число знаков после запятой
  
      A
     ---
  F |   | B
     -G-
  E |   | C
     ---
      D

 h0 h1 h2 h3 
 -----------
   XGFEDCBA (X - запятая)
 0b00000000 
      
   */</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sun, 23 Feb 2020 17:25:46 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1023#p1023</guid>
		</item>
		<item>
			<title><![CDATA[Re: TM1637 + STM32FC103]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1019#p1019</link>
			<description><![CDATA[<p><strong>STM32_TM1637 v1.1</strong></p><p>Библиотека в архиве:<br /><span class="attention-yellow"></span> </p><br /><div class="codebox"><pre><code>#include &lt;STM32_TM1637.h&gt;
//  CLK      PB0
//  DIO      PB1
STM32_TM1637 tm;

int h=23;
byte p=11;

void setup(){
  Serial.begin(9600);   
  tm.brig(7); // ЯРКОСТЬ 0...7
}

void loop(){
   tm.print_dec(h,p,  0b01000000,-1,-1,-1); 
   delay(1000);
  }

  /*
    
  tm.print_dec(h,p,  h0,h1,h2,h3); 

  int h = 0...9999
  
  byte p = 0...3   (h=0) | 0  = ###0  1 = ###.0  2 = ##.#0  3 = #.##0 // # - пусто
  byte p = 10...13 (h=0) | 10 = 0000 11 = 000.0 12 = 00.00 13 = 0.000
  
      A
     ---
  F |   | B
     -G-
  E |   | C
     ---
      D

 h0 h1 h2 h3 
 -----------
   XGFEDCBA (X - запятая)
 0b00000000 - пусто
 0b01000000 - минус
 -1         - символы не испольуются
-------------------------------------------------------------
ПРИМЕРЫ (# - пусто)

ЧИСЛО    ФУНКЦИЯ            
0.012    tm.print_dec(12,13,  -1,-1,-1,-1);  
 0.12    tm.print_dec(12,12,   0,-1,-1,-1);  
   12    tm.print_dec(12,0,   -1,-1,-1,-1); 
 0012    tm.print_dec(12,10,  -1,-1,-1,-1);  
 -12.3   tm.print_dec(123,11, 0b01000000,-1,-1,-1); 
 -#2.3   tm.print_dec(23,1,   0b01000000,-1,-1,-1); 
 -02.3   tm.print_dec(23,11,  0b01000000,-1,-1,-1); 
   */</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Fri, 21 Feb 2020 09:05:20 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1019#p1019</guid>
		</item>
		<item>
			<title><![CDATA[TM1637 + STM32FC103]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1018#p1018</link>
			<description><![CDATA[<p>Разработка библиотеки</p><p><strong>STM32_TM1637 v1.0</strong></p><p>Библиотека в архиве:<br /><span class="attention-yellow"></span> </p><p>test.ino</p><div class="codebox"><pre><code>#include &lt;STM32_TM1637.h&gt;
//  CLK      PB0
//  DIO      PB1
STM32_TM1637 tm;

int h=12;
byte p=0;

void setup(){
  Serial.begin(9600);   
  tm.brig(7); // ЯРКОСТЬ 0...7
}

void loop(){
   tm.print_dec(h,p,  0b1111000,0,0,0); 
   delay(1000);
  }

  /*
    
  tm.print_dec(h,p,  h0,h1,h2,h3); 

  int h = 0...9999
  byte p = 0...3 | 0 = 0000 1 = 000,0 2 = 00,00 3 = 0,000
  
      A
     ---
  F |   | B
     -G-
  E |   | C
     ---
      D

 h0 h1 h2 h3 
 -----------
   XGFEDCBA (X - запятая)
 0b00000000 
      
   */</code></pre></div><p>STM32_TM1637.h</p><div class="codebox"><pre><code>//  STM32_TM1637 v1.0
//  Alexander Liman
//  liman324@yandex.ru
//  rcl-radio.ru

#ifndef  STM32_TM1637_H
#define  STM32_TM1637_H

#include &lt;Arduino.h&gt;

#define CLK      PB0
#define DIO      PB1
#define CODE0    0b10001000
#define CODE1    0x40
#define ADDR0    0xC0

class  STM32_TM1637
{
  public:
     STM32_TM1637();
     
void print_dec(int decimal, int pd, int h0, int h1, int h2, int h3);
void brig(byte br);
  
  private:
  
void dec(byte dig);
void stop();
void start();
byte qwer;
};
#endif</code></pre></div><p>STM32_TM1637.cpp</p><div class="codebox"><pre><code>#include &lt;STM32_TM1637.h&gt;

STM32_TM1637::STM32_TM1637(){};

void STM32_TM1637::brig(byte br){
     qwer = br + CODE0;
  }

void STM32_TM1637::dec(byte dig){
         for(int i = 0; i &lt; 8; i++) {
           pinMode(CLK, OUTPUT);
           delayMicroseconds(100);
         if (dig &amp; 0x01)
           pinMode(DIO, INPUT);
         else
           pinMode(DIO, OUTPUT);
           delayMicroseconds(100);
           pinMode(CLK, INPUT);
           delayMicroseconds(100);
           dig = dig &gt;&gt; 1;
  }
           pinMode(CLK, OUTPUT);
           pinMode(DIO, INPUT);
           delayMicroseconds(100);
           pinMode(CLK, INPUT);
           delayMicroseconds(100);
           uint8_t ack = digitalRead(DIO);
         if (ack == 0)
           pinMode(DIO, OUTPUT);
           delayMicroseconds(100);
           pinMode(CLK, OUTPUT);
           delayMicroseconds(100);
  }
            
void STM32_TM1637::stop(){
           pinMode(DIO, OUTPUT);
           delayMicroseconds(100);
           pinMode(CLK, INPUT);
           delayMicroseconds(100);
           pinMode(DIO, INPUT);
           delayMicroseconds(100);
  }  

void STM32_TM1637::start(){
           pinMode(DIO, OUTPUT);
           delayMicroseconds(100);
  }

void STM32_TM1637::print_dec(int decimal, int pd,    int h0, int h1, int h2, int h3){
        start();dec(qwer);stop();start();dec(CODE1);stop();start();
      
        byte w;
        if(decimal&lt;0){decimal = abs(decimal); w=0b01000000;}else{w=0b00000000;}
        int data0 = decimal/1000;
        int data1 = decimal/100%10;
        int data2 = decimal/10%10;
        int data3 = decimal%10;
        
        for(int n=0;n&lt;4;n++){
        int data;
        if(n==0){data=data0;}
        if(n==1){data=data1;}
        if(n==2){data=data2;}
        if(n==3){data=data3;}
              
        switch(data){  // XGFEDCBA
        case 0:  data = 0b00111111;break;     // 0
        case 1:  data = 0b00000110;break;     // 1
        case 2:  data = 0b01011011;break;     // 2
        case 3:  data = 0b01001111;break;     // 3
        case 4:  data = 0b01100110;break;     // 4
        case 5:  data = 0b01101101;break;     // 5
        case 6:  data = 0b01111101;break;     // 6
        case 7:  data = 0b00000111;break;     // 7
        case 8:  data = 0b01111111;break;     // 8
        case 9:  data = 0b01101111;break;     // 9
        }
              
        if(n==0){data0=data;}
        if(n==1){data1=data;}
        if(n==2){data2=data;}
        if(n==3){data3=data;}
        }
        
        if(decimal&lt;1000&amp;&amp;decimal&gt;99){data0 = w;}
        if(decimal&lt;100&amp;&amp;decimal&gt;9){data0 = 0b00000000;data1 = w;}
        if(decimal&lt;10){data0 = 0b00000000; data1 = 0b00000000; data2 = w;}
        
        switch(pd){
        case 0 : data0;data1;data2;data3;break;
        case 1 : data2 = data2+0b10000000;break;
        case 2 : data1 = data1+0b10000000;break;
        case 3 : data0 = data0+0b10000000;break;
        }
        
        if(h0&gt;0){data0 = h0;}
        if(h1&gt;0){data1 = h1;}
        if(h2&gt;0){data2 = h2;}
        if(h3&gt;0){data3 = h3;}
        
        dec(ADDR0);dec(data0);dec(data1);dec(data2);dec(data3);stop();
    }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Thu, 20 Feb 2020 14:42:13 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1018#p1018</guid>
		</item>
	</channel>
</rss>
