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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-06-23T19:49:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=22&amp;t=11834&amp;mode</id>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-06-23T19:49:26+01:00</updated>
<published>2015-06-23T19:49:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132665#p132665</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132665#p132665"/>
<title type="html"><![CDATA[Re: [DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132665#p132665"><![CDATA[
<div class="quotetitle">maras52 napisał(a):</div><div class="quotecontent"><br />majster a na kiego grzyba jak 3 posty wyżej go masz ? Jedyna zmiana to poprawka obliczania rpm i podgląd tymczasowy rpm na LCD.<br /></div><br /><br /><br />A na takiego &quot;grzyba&quot; (jak to napisałeś) że te zmiany robią dużo zamętu tak jak ten link.<br /><br />A na forum wstawiamy listing po to by osoba pomagająca go przeczytała i nie musiała klikać w jakieś dziwne linki ja i na pewno wiele osób jak widzi takowy link to nie klika bo i po co jak nie wiem co tam tak naprawdę jest ?<br /><br />tutaj na forum kod wstawiam tak<br /><br />[ s y n t a x = c ]tutaj wpisujemy kod C[ / s y n t a x ]<br /><br />a bez spacji wygląda to tak:<br /><br />[syntax=c]tutaj wpisujemy kod C[/syntax]<br /><br /><br />ale skoro ci tak ciężko to uczynić zrobię to za ciebie:<br /><br />[syntax=c]/*<br /> * licznik.c<br /> *<br /> *  Created on: 17-07-2014<br /> *      Author: Maras<br /> */<br /> <br /> <br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /> <br />volatile uint16_t rr,r,rp,rpm,t,d,s,p=1260,speed=0;<br />volatile uint8_t czas=0, czas_10=0,flaga_servo,flaga_praca;<br />uint16_t temp_p,temp_s,ladowanie,ladowanie_p;<br />uint8_t flaga_zapis=0,flaga_odczyt=1,mode,flaga_reset=0,flaga_wyczysc=0,flaga_open=1;<br /> <br />uint8_t sw_ver_a=2, sw_ver_b=2;<br /> <br />//alarm<br />#define LED0_PIN (1&lt;&lt;PC4)<br />#define LED0_OFF PORTC &amp;= ~LED0_PIN<br />#define LED0_ON PORTC |= LED0_PIN<br />#define LED0_TOG PORTC ^= LED0_PIN<br />//temp<br />#define LED1_PIN (1&lt;&lt;PC5)<br />#define LED1_OFF PORTC &amp;= ~LED1_PIN<br />#define LED1_ON PORTC |= LED1_PIN<br />#define LED1_TOG PORTC ^= LED1_PIN<br />//rpm<br />#define LED2_PIN (1&lt;&lt;PC6)<br />#define LED2_OFF PORTC &amp;= ~LED2_PIN<br />#define LED2_ON PORTC |= LED2_PIN<br />#define LED2_TOG PORTC ^= LED2_PIN<br />//wskazowka<br />#define BL_WZK_PIN (1&lt;&lt;PC7)<br />#define BL_WZK_OFF PORTC &amp;= ~BL_WZK_PIN<br />#define BL_WZK_ON PORTC |= BL_WZK_PIN<br />//podswietlanie lcd<br />#define LCD_BL_PIN (1&lt;&lt;PB7);<br />#define LCD_BL_ON PORTB |= LCD_BL_PIN<br />#define LCD_BL_OFF PORTB &amp;= ~LCD_BL_PIN<br /> <br />/* PINY<br /> * A0 Temp powietrza<br /> * A1 Temp silnika<br /> * A2 Ladowanie<br /> * A3<br /> * A4<br /> * A5<br /> * A6<br /> * A7<br /> *<br /> * B0 LCD RS<br /> * B1 LCD RW<br /> * B2 LCD E<br /> * B3 LCD D4<br /> * B4 LCD D5<br /> * B5 LCD D6<br /> * B6 LCD D7<br /> * B7 LCD Podswietlanie<br /> *<br /> * C0<br /> * C1<br /> * C2 KEY Czuwanie<br /> * C3 KEY Reset przebiegu<br /> * C4 LEDS Wskazowka<br /> * C5 LED0 &quot;Alarm&quot;<br /> * C6 LED1 Temperatura<br /> * C7 LED2 Obroty<br /> *<br /> * D0<br /> * D1<br /> * D2 PULSE RPM<br /> * D3 PULSE Speed<br /> * D4<br /> * D5 Serwo PWM<br /> * D6<br /> * D7 KEY Mode<br /> *<br /> */<br />typedef struct {<br />        // Dzienny<br />        uint8_t day_null;<br />    uint8_t dm_e;<br />    uint8_t dj_e;<br />    uint8_t dd_e;<br />    uint8_t ds_e;<br />    // Łaczny<br />    uint8_t tm_e;<br />    uint8_t tj_e;<br />    uint8_t td_e;<br />    uint8_t ts_e;<br />    uint8_t tt_e;<br />    uint8_t tst_e;<br />    // MTH Resetowalne<br />    uint8_t mh_e;<br />    uint8_t mm_e;<br />    uint8_t ms_e;<br />    // MTH Łączne<br />    uint8_t mht_e;<br />    uint8_t mmt_e;<br />    uint8_t mst_e;<br />} przebieg_ee;<br />przebieg_ee eem_przebieg EEMEM;<br />przebieg_ee ram_przebieg;<br /> <br />void servo_on(void)<br />{<br />    DDRD  |= (1&lt;&lt;PD5);<br />    PORTD |= (1&lt;&lt;PD5);<br />}<br />void servo_off(void)<br />{<br />    DDRD  |= (1&lt;&lt;PD5);<br />    PORTD ^= (1&lt;&lt;PD5);<br />}<br />void init(void)<br />{<br /> <br />        uint16_t zx=0;<br />        lcd_cls();<br />LED0_ON;<br />LED1_ON;<br />LED2_ON;<br />        BL_WZK_ON;<br />        lcd_load();<br />        lcd_locate(0,3);<br />        lcd_str(&quot;Maras-Tech&quot;);<br />        lcd_locate(1,5);<br />        lcd_str(&quot;SMX-90&quot;);<br />        _delay_ms(1000);<br />        lcd_cls();<br />        OCR1A=1260;<br /> <br /> <br />                while(zx&lt;300)<br />                {<br />                        if (zx&lt;=9)<br />                        {<br />                                lcd_locate(0,1);<br />                                lcd_big_int(0);<br />                                lcd_big_int(0);<br />                                lcd_big_int(zx);<br />                                lcd_int(temp_s);<br />                                lcd_str(&quot;  km/h&quot;);<br />                                lcd_locate(1,11);<br />                                lcd_int(0);<br />                                lcd_int(0);<br />                                lcd_int(zx);<br />                                lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />                        }<br />                        if (zx&lt;=99 &amp;&amp; zx&gt;=10)<br />                                {<br />                                lcd_locate(0,1);<br />                                lcd_big_int(0);<br />                                lcd_big_int(zx);<br />                                lcd_str(&quot;  km/h&quot;);<br />                                lcd_locate(1,11);<br />                                lcd_int(0);<br />                                lcd_int(zx);<br />                                lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />                                }<br />                        if (zx&gt;=100)<br />                        {<br />                                lcd_locate(0,1);<br />                                lcd_big_int(zx);<br />                                lcd_str(&quot;  km/h&quot;);<br />                                lcd_locate(1,11);<br />                                lcd_int(zx);<br />                                lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />                        }<br />                        zx++;<br />if (zx&lt;150)     OCR1A=OCR1A+22;<br />if (zx&gt;150) OCR1A=OCR1A-22;<br />                        _delay_ms(7);<br />                }//while zx<br /> <br />                _delay_ms(250);<br />                OCR1A=1260;<br />                _delay_ms(800);<br />                flaga_open=0;<br />                lcd_cls();<br />                LED0_OFF;<br />                LED1_OFF;<br />                LED2_OFF;<br />}<br /> <br />void adc_init()<br />{<br />        ADCSRA =   (1&lt;&lt;ADEN)|(1&lt;&lt;ADPS0)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS2);<br />        ADMUX  =   (1&lt;&lt;REFS1)|(1&lt;&lt;REFS0);  // Wew zrodlo odniesienia 2.56V<br />        DDRA &amp;=~   (1&lt;&lt;PA0)|(1&lt;&lt;PA1)|(1&lt;&lt;PA2);              //Ustawienie Wejscia ADC<br />}<br /> <br />uint32_t pomiar_adc( uint8_t kanal)<br />{<br />        if (kanal==0)<br />                {<br />                ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br />                }<br />        if (kanal==1)<br />                {<br />                ADMUX = (ADMUX &amp; 0b11111001) | kanal;<br />                }<br />        if (kanal==2)<br />                {<br />                ADMUX = (ADMUX &amp; 0b11111010) | kanal;<br />                }<br />    ADCSRA |= (1&lt;&lt;ADSC);<br />    while( ADCSRA &amp; (1&lt;&lt;ADSC) );<br />    return ADCW;<br />}<br /> <br />void int_timer_init(void)<br />{<br />    //Przerwania zewnetrzne INT0/INT1<br />    MCUCR |= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC11); //Zbocza opadajace<br />    GICR |= (1&lt;&lt;INT1)|(1&lt;&lt;INT0); //Zezwolenie na przerwania INT0 i INT1<br />    PORTD |= (1&lt;&lt;PD3)|(1&lt;&lt;PD2); // Podciagniecie INT0 i INT1 do VCC<br /> <br />    // Timer2 odmierzanie czasu<br />    TCCR2 |= (1&lt;&lt;CS21)|(1&lt;&lt;CS20)|(1&lt;&lt;CS22);  // Prescaler 1024<br />    TCCR2 |= (1&lt;&lt;WGM21); // CTC<br />    OCR2  = 155;  // 10 ms<br />    TIMSK  |= (1&lt;&lt;OCIE2);     // Przerwanie ON<br /> <br />        //Timer1 PWM Servo<br /> <br />        TCCR1A|=(1&lt;&lt;COM1A1)|(1&lt;&lt;COM1B1)|(1&lt;&lt;WGM11);<br />        TCCR1B|=(1&lt;&lt;WGM13)|(1&lt;&lt;WGM12)|(1&lt;&lt;CS11); //PRESCALER=64 MODE 14(FAST PWM)<br />    ICR1  = 40000;<br />}<br /> <br />void total(void)<br />{<br />        lcd_int(ram_przebieg.tst_e);<br />        lcd_int(ram_przebieg.tt_e);<br />        lcd_int(ram_przebieg.ts_e);<br />        lcd_int(ram_przebieg.td_e);<br />        lcd_int(ram_przebieg.tj_e);<br />}<br /> <br />void day(void)<br />{<br />        lcd_int(ram_przebieg.ds_e);<br />        lcd_int(ram_przebieg.dd_e);<br />        lcd_int(ram_przebieg.dj_e);<br />        lcd_str(&quot;.&quot;);<br />        lcd_int(ram_przebieg.dm_e);<br />}<br /> <br />void mth(void)<br />{<br />        if (ram_przebieg.mh_e&lt;10){lcd_int(0);};<br />        lcd_int(ram_przebieg.mh_e);<br />        lcd_str(&quot;:&quot;);<br />        if (ram_przebieg.mm_e&lt;10){lcd_int(0);};<br />        lcd_int(ram_przebieg.mm_e);<br />        lcd_str(&quot;:&quot;);<br />        if (ram_przebieg.ms_e&lt;10){lcd_int(0);};<br />        lcd_int(ram_przebieg.ms_e);<br />}<br /> <br />void mth_tot(void)<br />{<br />        if (ram_przebieg.mht_e&lt;10){lcd_int(0);};<br />        lcd_int(ram_przebieg.mht_e);<br />        lcd_str(&quot;:&quot;);<br />        if (ram_przebieg.mmt_e&lt;10){lcd_int(0);};<br />        lcd_int(ram_przebieg.mmt_e);<br />        lcd_str(&quot;:&quot;);<br />        if (ram_przebieg.mst_e&lt;10){lcd_int(0);};<br />        lcd_int(ram_przebieg.mst_e);<br />        lcd_str(&quot; mth&quot;);<br />}<br /> <br />void temp(void)<br />{<br />        if (temp_s&lt;=99)<br />                {<br />                        lcd_str(&quot; &quot;);<br />                        lcd_int(temp_s);<br />                }<br />                else<br />                {<br />                        lcd_int(temp_s);<br />                }<br />}<br /> <br />//////////////////////////////////   EEPROM   /////////////////////////////<br /> <br />void r_ep(void)<br />{<br />        eeprom_read_block( &amp;ram_przebieg, &amp;eem_przebieg, sizeof( przebieg_ee ) );<br />}<br /> <br />void w_ep(void)<br />{<br />        eeprom_write_block( &amp;ram_przebieg, &amp;eem_przebieg, sizeof( przebieg_ee ) );<br />}<br /> <br />void display(void)<br />{<br />        if (speed&lt;=9)<br />                {<br />            lcd_locate(0,1);<br />            lcd_big_int(0);<br />            lcd_big_int(0);<br />            lcd_big_int(speed);<br />            lcd_int(temp_s);<br />            lcd_str(&quot;  km/h&quot;);<br />            lcd_locate(1,11);<br />            temp();<br />            lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />            flaga_zapis=1;<br />                }<br />        if (speed&lt;=99 &amp;&amp; speed&gt;=10)<br />                {<br />                        lcd_locate(0,1);<br />            lcd_big_int(0);<br />            lcd_big_int(speed);<br />            lcd_str(&quot;  km/h&quot;);<br />            lcd_locate(1,11);<br />            temp();<br />            lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />            flaga_zapis=1;<br />                }<br />        if (speed&gt;=100)<br />                {<br />                lcd_locate(0,1);<br />            lcd_big_int(speed);<br />            lcd_str(&quot;  km/h&quot;);<br />            lcd_locate(1,11);<br />            temp();<br />            lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />            flaga_zapis=1;<br />                }<br />}<br />void pomiar_ladowania(void)<br />{<br />    ladowanie=((pomiar_adc(2)*25*6)/10000); // Ladowanie<br />    ladowanie_p=((pomiar_adc(2)*25*6)%10000)/1000; // Ladowanie<br />}<br />////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />int main(void)<br />{<br />        // Reset / Usypianie<br />        DDRC &amp;= ~((1&lt;&lt;PC3)|(1&lt;&lt;PC2));<br />        PORTC |=(1&lt;&lt;PC3)|(1&lt;&lt;PC2);<br />        // MODE<br />        DDRD &amp;= ~((1&lt;&lt;PD7));<br />        PORTD |=(1&lt;&lt;PD7);<br />        // Kontrolki<br />        DDRC |= LED0_PIN | LED1_PIN | LED2_PIN | BL_WZK_PIN ;<br />        DDRB |= LCD_BL_PIN;<br />        OCR1A=1260;<br />        lcd_init();<br />    LCD_BL_ON;<br />    BL_WZK_ON;<br />    int_timer_init();<br />    adc_init();<br />    r_ep();<br />    servo_on();<br />    init();<br />    sei();<br />    flaga_reset=1;<br />    while(1)<br />    {<br /> ///////////////////////////////////// Licznik MTH /////////////////////////////////////////<br />        if(ram_przebieg.ms_e==60)<br />                {<br />                        ram_przebieg.ms_e=0;<br />                        ram_przebieg.mm_e++;<br />                };<br />        if(ram_przebieg.mm_e==60)<br />                {<br />                        ram_przebieg.mm_e=0;<br />                        ram_przebieg.mh_e++;<br />                };<br />        if(ram_przebieg.mst_e==60)<br />                {<br />                        ram_przebieg.mst_e=0;<br />                        ram_przebieg.mmt_e++;<br />                };<br />        if(ram_przebieg.mmt_e==60)<br />                {<br />                        ram_przebieg.mmt_e=0;<br />                        ram_przebieg.mht_e++;<br />                };<br />////////////////////////////////////////////////////////////////////////////////////////////<br />        if(!(PINC &amp; (1&lt;&lt;PC2)))<br />                {<br /> <br />                flaga_praca=1;<br /> <br />                } //pwr on<br />        else<br />                {<br /> <br />                flaga_praca=0;<br />                                flaga_open=1;<br />                } //pwr off<br />        if(flaga_praca==0)<br />                {<br />                LED1_OFF;<br />                LED2_OFF;<br />                if (flaga_wyczysc==1)<br />                        {<br />                                lcd_locate(0,0);<br />                                lcd_str(&quot;                &quot;);<br />                                lcd_locate(1,0);<br />                                lcd_str(&quot;                &quot;);<br />                                flaga_wyczysc=0;<br />                        }<br />                _delay_ms(500);<br />                LCD_BL_OFF;<br />                _delay_ms(1000);<br />                BL_WZK_OFF;<br />                w_ep();<br />                servo_off();<br />                flaga_reset=0;<br />                LED0_TOG;<br />                if(!(PINC &amp; (1&lt;&lt;PC3)) &amp;&amp; !(PIND &amp; (1&lt;&lt;PD7)))<br />                        {<br />                                LCD_BL_ON;<br />                                lcd_locate (0,5);<br />                                lcd_str(&quot;SW &quot;);<br />                        lcd_int(sw_ver_a);<br />                        lcd_str(&quot;.&quot;);<br />                        lcd_int(sw_ver_b);<br />                        lcd_locate (1,2);<br />                        mth_tot();<br />                        _delay_ms(5000);<br />                        lcd_cls();<br />                        LCD_BL_OFF;<br />                        }<br />                lcd_cls();<br />                LCD_BL_OFF;<br />                } // flaga_praca 0<br />        if (flaga_praca==1)<br />                {<br />                        LED0_OFF; //alarm off<br />                        LCD_BL_ON; //podswietlanie lcd+cyferblatu on<br />                        BL_WZK_ON; //podswietlanie wskazowki on<br />                        if (flaga_reset==0)<br />                                {<br />                                        servo_on();<br />                                        init();<br />                                        r_ep();<br />                        flaga_reset=1;<br />                        }<br />////////////////////////////////// Łączny //////////////////////////////////////////////////<br />                        if(t&gt;9)<br />                                {<br />                                        ram_przebieg.tm_e++;<br />                                        t=0;<br />                                }<br />                        if(ram_przebieg.tm_e&gt;9)<br />                                {<br />                                        ram_przebieg.tj_e++;<br />                                        ram_przebieg.tm_e=0;<br />                                };<br />                        if(ram_przebieg.tj_e&gt;9)<br />                                {<br />                                        ram_przebieg.td_e++;<br />                                        ram_przebieg.tj_e=0;<br />                                };<br />                        if(ram_przebieg.td_e&gt;9)<br />                                {<br />                                        ram_przebieg.ts_e++;<br />                                        ram_przebieg.td_e=0;<br />                                };<br />                        if(ram_przebieg.ts_e&gt;9)<br />                                {<br />                                        ram_przebieg.tt_e++;<br />                                        ram_przebieg.ts_e=0;<br />                                };<br />                        if(ram_przebieg.tt_e&gt;9)<br />                                {<br />                                        ram_przebieg.tst_e++;<br />                                        ram_przebieg.ts_e=0;<br />                                };<br />                        if(ram_przebieg.tst_e&gt;9)<br />                                {<br />                                        ram_przebieg.tm_e=0;<br />                                        ram_przebieg.td_e=0;<br />                                        ram_przebieg.ts_e=0;<br />                                        ram_przebieg.tj_e=0;<br />                                        ram_przebieg.tst_e=0;<br />                                };<br />////////////////////////////////////// Dzienny /////////////////////////////////////////////<br />                        if(d&gt;9)<br />                                {<br />                                        ram_przebieg.dm_e++;<br />                                        d=0;<br />                                };<br />                        if(ram_przebieg.dm_e&gt;9)<br />                                {<br />                                        ram_przebieg.dj_e++;<br />                                        ram_przebieg.dm_e=0;<br />                                };<br />                        if(ram_przebieg.dj_e&gt;9)<br />                                {<br />                                        ram_przebieg.dd_e++;<br />                                        ram_przebieg.dj_e=0;<br />                                };<br />                        if(ram_przebieg.dd_e&gt;9)<br />                                {<br />                                        ram_przebieg.ds_e++;<br />                                        ram_przebieg.dd_e=0;<br />                                };<br />                        if(ram_przebieg.ds_e&gt;9)<br />                                {<br />                                        ram_przebieg.dm_e=0;<br />                                        ram_przebieg.ds_e=0;<br />                                        ram_przebieg.dd_e=0;<br />                                        ram_przebieg.dj_e=0;<br />                                };<br />////////////////////////////////////////////////////////////////////////////////////////////<br />                        if((!(PIND &amp; (1&lt;&lt;PD7)))&amp;&amp; mode==0)<br />                                {<br />                                        mode=1;<br />                                        _delay_ms(500);<br />                                }<br />                        if((!(PIND &amp; (1&lt;&lt;PD7)))&amp;&amp; mode==1)<br />                                {<br />                                        mode=0;<br />                                        _delay_ms(500);<br />                                }<br />                        if(!(PINC &amp; (1&lt;&lt;PC3)) &amp;&amp; !(PIND &amp; (1&lt;&lt;PD7)))<br />                                {<br />                                        lcd_cls();<br />                                        lcd_locate (0,5);<br />                                        lcd_str(&quot;SW &quot;);<br />                                        lcd_int(sw_ver_a);<br />                                        lcd_str(&quot;.&quot;);<br />                                        lcd_int(sw_ver_b);<br />                                        lcd_locate (1,2);<br />                                        mth_tot();<br />                                        _delay_ms(5000);<br />                                        lcd_cls();<br />                                }<br />                        rpm=r*1000;<br />                        rp=rpm/50;<br />                        if (rpm==0)p=0;<br />                        if (rpm&gt;0)p=rp*13;<br />                        if(czas==50)<br />                                {<br />                                        temp_p=(pomiar_adc(0)*25)/100; // Temperatura powietrza<br />                                        temp_s=(pomiar_adc(1)*25)/100; // Temperatura silnika<br />                                        pomiar_ladowania();<br />                                        if(temp_s&gt;=120)LED1_TOG;<br />                                        else { LED1_OFF;};<br />                                        if(rpm&gt;8000)LED2_TOG;<br />                                        else {LED2_OFF;};<br />                                        if (speed==0)<br />                                  {<br />                                                        if(flaga_zapis==1)<br />                                                                {<br />                                                                        w_ep();<br />                                                                        flaga_zapis=0;<br />                                                                        r_ep();<br />                                                                }<br />                                                        if (mode==0)<br />                                                                {<br />                                                                        if(!(PINC &amp; (1&lt;&lt;PC3)))<br />                                                                                {<br />                                                                                        _delay_ms(1000);<br />                                                                                        if(!(PINC &amp; (1&lt;&lt;PC3)))<br />                                                                                                {<br />                                                                                                        ram_przebieg.dm_e=0;<br />                                                                                                        ram_przebieg.ds_e=0;<br />                                                                                                        ram_przebieg.dd_e=0;<br />                                                                                                        ram_przebieg.dj_e=0;<br />                                                                                                        w_ep();<br />                                                                                                }<br />                                                                                }<br />                                                                        if(!(PINC &amp; (1&lt;&lt;PC3)) &amp;&amp; !(PIND &amp; (1&lt;&lt;PD7)))<br />                                                                                {<br />                                                                                        lcd_cls();<br />                                                                                                lcd_locate (0,5);<br />                                                                                                lcd_str(&quot;SW &quot;);<br />                                                                                                lcd_int(sw_ver_a);<br />                                                                                                lcd_str(&quot;.&quot;);<br />                                                                                                lcd_int(sw_ver_b);<br />                                                                                                lcd_locate (1,2);<br />                                                                                                mth_tot();<br />                                                                                                _delay_ms(5000);<br />                                                                                                lcd_cls();<br />                                                                                        }<br />                                                                        lcd_locate(0,0);<br />                                                                        lcd_str(&quot;                &quot;);<br />                                                                        lcd_locate(1,0);<br />                                                                        lcd_str(&quot;                &quot;);<br />                                                                        lcd_locate(0,0);<br />                                                                        lcd_str(&quot;T &quot;);<br />                                                                        total();<br />                                                                        lcd_str(&quot; km&quot;);<br />                                                                        lcd_locate(0,12);<br />                                                                        lcd_int(temp_p);<br />                                                                        lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />                                                                        lcd_locate(1,0);<br />                                                                        lcd_str(&quot;D &quot;);<br />                                                                        day();<br />                                                                        lcd_str(&quot; km&quot;);<br />                                                                        lcd_locate(1,11);<br />                                                                        temp();<br />                                                                        lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />                                                                }<br />                                                        if (mode==1)<br />                                                                {<br />                                                                        if(!(PINC &amp; (1&lt;&lt;PC3)))<br />                                                                                {<br />                                                                                        _delay_ms(1000);<br />                                                                                        if(!(PINC &amp; (1&lt;&lt;PC3)))<br />                                                                                                {<br />                                                                                                        ram_przebieg.mh_e=0;<br />                                                                                                        ram_przebieg.mm_e=0;<br />                                                                                                        ram_przebieg.ms_e=0;<br />                                                                                                        w_ep();};<br />                                                                                                }<br />                                                                        lcd_locate(0,0);<br />                                                                        lcd_str(&quot;                &quot;);<br />                                                                        lcd_locate(1,0);<br />                                                                        lcd_str(&quot;                &quot;);<br />                                                                        lcd_locate(0,0);<br />                                                                        lcd_int(rpm); //tymczasowy podglad<br />                                                                        lcd_str(&quot;  &quot;); //tymczasowy podglad<br />                                                                        lcd_int(rp); //tymczasowy podglad<br />                                                                        //mth();<br />                                                                        //lcd_str(&quot;mth&quot;);<br />                                                                        lcd_locate(0,12);<br />                                                                        lcd_int(temp_p);<br />                                                                        lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />                                                                        lcd_locate(1,0);<br />                                                                        lcd_int(ladowanie);<br />                                                                        lcd_str(&quot;.&quot;);<br />                                                                        lcd_int(ladowanie_p);<br />                                                                        lcd_str(&quot; V&quot;);<br />                                                                        lcd_locate(1,11);<br />                                                                        temp();<br />                                                                        lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />                                                                }<br />                                  }//speed=0<br />                                        else<br />                                                  {<br />                                                        if(speed!=0)<br />                                                                {<br />                                                                        lcd_cls();<br />                                                                        display();<br />                                                                }<br />                                                  }//else<br /> <br />                                }//czas=50<br />                }//flaga praca=1<br />    }//while<br />}//main<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />ISR(INT1_vect)<br />{<br />        if(flaga_praca==1)<br />                {<br />                        s++; //impulsy z kola<br />                        d++; //dzienny<br />                        t++; // totalny<br />                }<br /> <br />}<br />ISR(INT0_vect)<br />{<br />        if(flaga_praca==1)<br />        {<br />                rr++; //impulsy z silnika<br />        }<br />}<br /> <br />//TIMER CO 10ms<br />ISR( TIMER2_COMP_vect )<br />{<br />        if(flaga_praca==1 &amp;&amp; flaga_open==0)<br />                {<br />                        if (rpm!=0)<br />                                {<br />                                        OCR1A=1260+p;<br />                                };<br />                        if (rpm==0)<br />                                {<br />                                        while(OCR1A&gt;1260)<br />                                                {<br />                                                OCR1A--;<br />                                                }<br />                                };<br />                }<br />        czas_10++;<br />        flaga_servo++;<br />        if (czas_10==1)<br />                {<br />                        czas++;<br />                        czas_10=0;<br />                };<br />        if(flaga_servo==6)<br />                {<br />                        r=rr;<br />                        rr=0;<br />                        flaga_servo=0;<br />                }<br />    if(czas==10) //1000ms<br />        {<br />                if(flaga_praca==1)<br />                        {<br />                                speed=(s*30)/10;<br />                                if(rpm&gt;0)<br />                                        {<br />                                                ram_przebieg.ms_e++;<br />                                        }<br />                                if(rpm&gt;0)<br />                                        {<br />                                                ram_przebieg.mst_e++;<br />                                        }<br />                                flaga_wyczysc=1;<br />                        }<br />        }<br />    if (czas&gt;100) //jesli przekroczy = reset timera<br />        {<br />                s=0;<br />                czas=0;<br />        }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 23 cze 2015, o 19:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maras52]]></name></author>
<updated>2015-06-23T13:59:41+01:00</updated>
<published>2015-06-23T13:59:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132607#p132607</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132607#p132607"/>
<title type="html"><![CDATA[Re: [DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132607#p132607"><![CDATA[
<strong>RafPe</strong> jak masz link to jesteś &quot;wszystkimi&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Coś jak na YT niepubliczne filmy.<br /><strong>majster</strong> a na kiego grzyba jak 3 posty wyżej go masz ? Jedyna zmiana to poprawka obliczania rpm i podgląd tymczasowy rpm na LCD.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1046">maras52</a> — 23 cze 2015, o 13:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-06-23T13:52:52+01:00</updated>
<published>2015-06-23T13:52:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132605#p132605</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132605#p132605"/>
<title type="html"><![CDATA[Re: [DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132605#p132605"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />A co to za dziwny link zamiast kodu ... wklej kod do posta uzywajac syntax c<br /></div><br /><br />Majster ale Ty jestes passe <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> kolega uzywa popularnego sposobu dzielenia sie kodem ze wszystkimi a nie tylko z nami tutaj na forum <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 23 cze 2015, o 13:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-06-23T13:22:02+01:00</updated>
<published>2015-06-23T13:22:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132600#p132600</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132600#p132600"/>
<title type="html"><![CDATA[Re: [DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132600#p132600"><![CDATA[
A co to za dziwny link zamiast  kodu ... wklej kod do posta uzywajac syntax c<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 23 cze 2015, o 13:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maras52]]></name></author>
<updated>2015-06-23T12:58:33+01:00</updated>
<published>2015-06-23T12:58:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132597#p132597</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132597#p132597"/>
<title type="html"><![CDATA[Re: [DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132597#p132597"><![CDATA[
I masz wiedziałem że to będzie dziwoczyć :/<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br /><br />Mógłby kto bardziej wyonaczony w tych sprawach zerknąć na kod i pomóc zniwelować te skoki i uzyskać efekt &quot;płynności&quot; ruchu?<br /><br /><span style="color: #FF0000">[ kod umieszczamy na forum zgodnie z: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --> (proszę tego przestrzegać bo będzie warn <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ) - mirekk36 ]</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1046">maras52</a> — 23 cze 2015, o 12:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maras52]]></name></author>
<updated>2015-06-18T10:47:40+01:00</updated>
<published>2015-06-18T10:47:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132050#p132050</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132050#p132050"/>
<title type="html"><![CDATA[Re: [DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132050#p132050"><![CDATA[
Dziękuje za słowa &quot;uznania&quot;   <br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />dostrzega swój spory progress<br /></div><br />No pewnie, pamiętam jak zamigotałem małą czerwoną ledzinką<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />dalszych projektach<br /></div><br />Już sprawiłem sobie ściemniacz do taśmy LED sterowany pilotem, tak więc byle do przodu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />&quot;Obudowa&quot; gniazda ATX które metodą destrukcji wydziubałem z jakiejś starej MB.<br />Piny wykorzystam do :<br />GND 7 pinów (masy nigdy za dużo)<br />VCC  4 piny<br />Temperatura silnika<br />Temperatura powietrza<br />Impulsy prędkości <br />Impulsy obrotów <br /><br />Impulsy umieszczone pomiędzy masami co by łatwiej było przylutować ekran przewodu, tak więc zostają mi 4 piny wolne na &quot;zaś&quot;  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /> , dodatkowo druga osobna kostka wychodząca z stacyjki.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1046/201fb66a85da489329d89ba5f918617d.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/201fb66a85da489329d89ba5f918617d.jpg" alt="Obrazek" /></a> <a href="http://forum.atnel.pl/_obrazki/o/1046/a75ad8b8e5bce78a0b68c228ff372624.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/a75ad8b8e5bce78a0b68c228ff372624.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1046">maras52</a> — 18 cze 2015, o 10:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-06-18T00:53:26+01:00</updated>
<published>2015-06-18T00:53:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132039#p132039</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132039#p132039"/>
<title type="html"><![CDATA[Re: [DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132039#p132039"><![CDATA[
Kawał dobrej roboty <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tym bardziej, że kolega sam dostrzega swój spory progress w programowaniu czyli podniesienie własnego skill'a <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tak trzymać, powodzenia w dalszych projektach!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 18 cze 2015, o 00:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maras52]]></name></author>
<updated>2015-06-23T13:53:36+01:00</updated>
<published>2015-06-18T00:18:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132038#p132038</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132038#p132038"/>
<title type="html"><![CDATA[Re: [DIY]Electronig Guage System by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132038#p132038"><![CDATA[
Zapomniałem dodać.<br />Od razu zaznaczam iż wciąż się uczę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />[syntax=c]/*<br /> *  licznik.c<br /> *  Atmega16 @ 16MHz<br /> *  Created on: 17-07-2014<br /> *  Author: Maras<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />volatile uint16_t rr,r,rp,rpm,t,d,s,p=1260,speed=0;<br />volatile uint8_t czas=0, czas_10=0,flaga_servo,flaga_praca;<br />uint8_t temp_p,temp_s,ladowanie,ladowanie_p;<br />uint8_t flaga_zapis=0,flaga_odczyt=1,mode,flaga_reset=0,flaga_wyczysc=0,flaga_open=1;<br /><br />uint8_t sw_ver_a=2, sw_ver_b=0;<br /><br />//alarm<br />#define LED0_PIN (1&lt;&lt;PC4)<br />#define LED0_OFF PORTC &amp;= ~LED0_PIN<br />#define LED0_ON PORTC |= LED0_PIN<br />#define LED0_TOG PORTC ^= LED0_PIN<br />//temp<br />#define LED1_PIN (1&lt;&lt;PC5)<br />#define LED1_OFF PORTC &amp;= ~LED1_PIN<br />#define LED1_ON PORTC |= LED1_PIN<br />#define LED1_TOG PORTC ^= LED1_PIN<br />//rpm<br />#define LED2_PIN (1&lt;&lt;PC6)<br />#define LED2_OFF PORTC &amp;= ~LED2_PIN<br />#define LED2_ON PORTC |= LED2_PIN<br />#define LED2_TOG PORTC ^= LED2_PIN<br />//wskazowka<br />#define BL_WZK_PIN (1&lt;&lt;PC7)<br />#define BL_WZK_OFF PORTC &amp;= ~BL_WZK_PIN<br />#define BL_WZK_ON PORTC |= BL_WZK_PIN<br />//podswietlanie lcd<br />#define LCD_BL_PIN (1&lt;&lt;PB7);<br />#define LCD_BL_ON PORTB |= LCD_BL_PIN<br />#define LCD_BL_OFF PORTB &amp;= ~LCD_BL_PIN<br /><br />/* PINY<br /> * A0 Temp powietrza<br /> * A1 Temp silnika<br /> * A2 Ladowanie<br /> * A3<br /> * A4<br /> * A5<br /> * A6<br /> * A7<br /> *<br /> * B0 LCD RS<br /> * B1 LCD RW<br /> * B2 LCD E<br /> * B3 LCD D4<br /> * B4 LCD D5<br /> * B5 LCD D6<br /> * B6 LCD D7<br /> * B7 LCD Podswietlanie<br /> *<br /> * C0<br /> * C1<br /> * C2 KEY Czuwanie<br /> * C3 KEY Reset przebiegu<br /> * C4 LEDS Wskazowka<br /> * C5 LED0 &quot;Alarm&quot;<br /> * C6 LED1 Temperatura<br /> * C7 LED2 Obroty<br /> *<br /> * D0<br /> * D1<br /> * D2 PULSE RPM<br /> * D3 PULSE Speed<br /> * D4<br /> * D5 Serwo PWM<br /> * D6<br /> * D7 KEY Mode<br /> *<br /> */<br />typedef struct {<br />// Dzienny<br />uint8_t day_null;<br />    uint8_t dm_e;<br />    uint8_t dj_e;<br />    uint8_t dd_e;<br />    uint8_t ds_e;<br />    // Łaczny<br />    uint8_t tm_e;<br />    uint8_t tj_e;<br />    uint8_t td_e;<br />    uint8_t ts_e;<br />    uint8_t tt_e;<br />    uint8_t tst_e;<br />    // MTH Resetowalne<br />    uint8_t mh_e;<br />    uint8_t mm_e;<br />    uint8_t ms_e;<br />    // MTH Łączne<br />    uint8_t mht_e;<br />    uint8_t mmt_e;<br />    uint8_t mst_e;<br />} przebieg_ee;<br />przebieg_ee eem_przebieg EEMEM;<br />przebieg_ee ram_przebieg;<br /><br />void servo_on(void)<br />{<br />    DDRD  |= (1&lt;&lt;PD5);<br />    PORTD |= (1&lt;&lt;PD5);<br />}<br />void servo_off(void)<br />{<br />    DDRD  |= (1&lt;&lt;PD5);<br />    PORTD ^= (1&lt;&lt;PD5);<br />}<br />void init(void)<br />{<br /><br />uint16_t zx=0;<br />lcd_cls();<br />LED0_ON;<br />LED1_ON;<br />LED2_ON;<br />BL_WZK_ON;<br />lcd_load();<br />lcd_locate(0,3);<br />lcd_str(&quot;Maras-Tech&quot;);<br />lcd_locate(1,5);<br />lcd_str(&quot;SMX-90&quot;);<br />_delay_ms(1000);<br />lcd_cls();<br />OCR1A=4530;<br />_delay_ms(1000);<br />OCR1A=1260;<br />while(zx&lt;300)<br />{<br />if (zx&lt;=9)<br />    {<br />lcd_locate(0,1);<br />lcd_big_int(0);<br />lcd_big_int(0);<br />lcd_big_int(zx);<br />lcd_int(temp_s);<br />lcd_str(&quot;  km/h&quot;);<br />lcd_locate(1,11);<br />lcd_int(0);<br />lcd_int(0);<br />lcd_int(zx);<br />lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />    }<br />if (zx&lt;=99 &amp;&amp; zx&gt;=10)<br />{<br />lcd_locate(0,1);<br />lcd_big_int(0);<br />lcd_big_int(zx);<br />lcd_str(&quot;  km/h&quot;);<br />lcd_locate(1,11);<br />lcd_int(0);<br />lcd_int(zx);<br />lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />}<br />if (zx&gt;=100)<br />    {<br />lcd_locate(0,1);<br />lcd_big_int(zx);<br />lcd_str(&quot;  km/h&quot;);<br />lcd_locate(1,11);<br />lcd_int(zx);<br />lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />    }<br />zx++;<br />_delay_ms(7);<br />}//while zx<br />_delay_ms(800);<br />flaga_open=0;<br />lcd_cls();<br />LED0_OFF;<br />LED1_OFF;<br />LED2_OFF;<br />}<br /><br />void adc_init()<br />{<br />ADCSRA =   (1&lt;&lt;ADEN)|(1&lt;&lt;ADPS0)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS2);<br />ADMUX  =   (1&lt;&lt;REFS1)|(1&lt;&lt;REFS0);  // Wew zrodlo odniesienia 2.56V<br />DDRA &amp;=~   (1&lt;&lt;PA0)|(1&lt;&lt;PA1)|(1&lt;&lt;PA2);  // Ustawienie wejscia ADC<br />}<br /><br />uint32_t pomiar_adc( uint8_t kanal)<br />{<br />if (kanal==0)<br />{<br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br />}<br />if (kanal==1)<br />{<br />ADMUX = (ADMUX &amp; 0b11111001) | kanal;<br />}<br />if (kanal==2)<br />{<br />ADMUX = (ADMUX &amp; 0b11111010) | kanal;<br />}<br />    ADCSRA |= (1&lt;&lt;ADSC);<br />    while( ADCSRA &amp; (1&lt;&lt;ADSC) );<br />    return ADCW;<br />}<br /><br />void int_timer_init(void)<br />{<br />    //Przerwania zewnetrzne INT0/INT1<br />    MCUCR |= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC11); // Zbocza opadajace<br />    GICR |= (1&lt;&lt;INT1)|(1&lt;&lt;INT0); // Przerwania ON<br />    PORTD |= (1&lt;&lt;PD3)|(1&lt;&lt;PD2); // Podciagniecie INT0 i INT1 do VCC<br /><br />    // Timer2 odmierzanie czasu<br />    TCCR2 |= (1&lt;&lt;CS21)|(1&lt;&lt;CS20)|(1&lt;&lt;CS22);  // Prescaler 1024<br />    TCCR2 |= (1&lt;&lt;WGM21); // CTC<br />    OCR2  = 155;  // 10 ms<br />    TIMSK  |= (1&lt;&lt;OCIE2);     // Przerwanie ON<br /><br />//Timer1 PWM Servo<br /><br />TCCR1A|=(1&lt;&lt;COM1A1)|(1&lt;&lt;COM1B1)|(1&lt;&lt;WGM11);<br />TCCR1B|=(1&lt;&lt;WGM13)|(1&lt;&lt;WGM12)|(1&lt;&lt;CS11); // Preskaler 64, Fast PWM<br />    ICR1  = 40000;<br />}<br /><br />void total(void)<br />{<br />lcd_int(ram_przebieg.tst_e);<br />lcd_int(ram_przebieg.tt_e);<br />lcd_int(ram_przebieg.ts_e);<br />lcd_int(ram_przebieg.td_e);<br />lcd_int(ram_przebieg.tj_e);<br />}<br /><br />void day(void)<br />{<br />lcd_int(ram_przebieg.ds_e);<br />lcd_int(ram_przebieg.dd_e);<br />lcd_int(ram_przebieg.dj_e);<br />lcd_str(&quot;.&quot;);<br />lcd_int(ram_przebieg.dm_e);<br />}<br /><br />void mth(void)<br />{<br />if (ram_przebieg.mh_e&lt;10){lcd_int(0);};<br />lcd_int(ram_przebieg.mh_e);<br />lcd_str(&quot;:&quot;);<br />if (ram_przebieg.mm_e&lt;10){lcd_int(0);};<br />lcd_int(ram_przebieg.mm_e);<br />lcd_str(&quot;:&quot;);<br />if (ram_przebieg.ms_e&lt;10){lcd_int(0);};<br />lcd_int(ram_przebieg.ms_e);<br />}<br /><br />void mth_tot(void)<br />{<br />if (ram_przebieg.mht_e&lt;10){lcd_int(0);};<br />lcd_int(ram_przebieg.mht_e);<br />lcd_str(&quot;:&quot;);<br />if (ram_przebieg.mmt_e&lt;10){lcd_int(0);};<br />lcd_int(ram_przebieg.mmt_e);<br />lcd_str(&quot;:&quot;);<br />if (ram_przebieg.mst_e&lt;10){lcd_int(0);};<br />lcd_int(ram_przebieg.mst_e);<br />lcd_str(&quot; mth&quot;);<br />}<br /><br />void temp(void)<br />{<br />if (temp_s&lt;=99)<br />{<br />lcd_str(&quot; &quot;);<br />lcd_int(temp_s);<br />}<br />else<br />{<br />lcd_int(temp_s);<br />}<br />}<br /><br />//////////////////////////////////   EEPROM   /////////////////////////////<br /><br />void r_ep(void)<br />{<br />eeprom_read_block( &amp;ram_przebieg, &amp;eem_przebieg, sizeof( przebieg_ee ) );<br />}<br /><br />void w_ep(void)<br />{<br />eeprom_write_block( &amp;ram_przebieg, &amp;eem_przebieg, sizeof( przebieg_ee ) );<br />}<br /><br />void display(void)<br />{<br />if (speed&lt;=9)<br />{<br />        lcd_locate(0,1);<br />        lcd_big_int(0);<br />        lcd_big_int(0);<br />        lcd_big_int(speed);<br />        lcd_int(temp_s);<br />        lcd_str(&quot;  km/h&quot;);<br />        lcd_locate(1,11);<br />        temp();<br />        lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />        flaga_zapis=1;<br />}<br />if (speed&lt;=99 &amp;&amp; speed&gt;=10)<br />{<br />lcd_locate(0,1);<br />        lcd_big_int(0);<br />        lcd_big_int(speed);<br />        lcd_str(&quot;  km/h&quot;);<br />        lcd_locate(1,11);<br />        temp();<br />        lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />        flaga_zapis=1;<br />}<br />if (speed&gt;=100)<br />{<br />    lcd_locate(0,1);<br />        lcd_big_int(speed);<br />        lcd_str(&quot;  km/h&quot;);<br />        lcd_locate(1,11);<br />        temp();<br />        lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />        flaga_zapis=1;<br />}<br />}<br />void pomiar_ladowania(void)<br />{<br />    ladowanie=((pomiar_adc(2)*25*6)/10000); // Ladowanie<br />    ladowanie_p=((pomiar_adc(2)*25*6)%10000)/1000; // Ladowanie<br />}<br />////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />int main(void)<br />{<br />// Reset / Usypianie<br />DDRC &amp;= ~((1&lt;&lt;PC3)|(1&lt;&lt;PC2));<br />PORTC |=(1&lt;&lt;PC3)|(1&lt;&lt;PC2);<br />// Mode<br />DDRD &amp;= ~((1&lt;&lt;PD7));<br />PORTD |=(1&lt;&lt;PD7);<br />// Kontrolki<br />DDRC |= LED0_PIN | LED1_PIN | LED2_PIN | BL_WZK_PIN ;<br />DDRB |= LCD_BL_PIN;<br />OCR1A=1260;<br />lcd_init();<br />        LCD_BL_ON;<br />        BL_WZK_ON;<br />        int_timer_init();<br />        adc_init();<br />        r_ep();<br />        servo_on();<br />        init();<br />        sei();<br />        flaga_reset=1;<br />    while(1)<br />    {<br /> ///////////////////////////////////// Licznik MTH /////////////////////////////////////////<br />    if(ram_przebieg.ms_e==60)<br />    {<br />    ram_przebieg.ms_e=0;<br />    ram_przebieg.mm_e++;<br />    };<br />    if(ram_przebieg.mm_e==60)<br />    {<br />    ram_przebieg.mm_e=0;<br />    ram_przebieg.mh_e++;<br />    };<br />    if(ram_przebieg.mst_e==60)<br />    {<br />    ram_przebieg.mst_e=0;<br />    ram_przebieg.mmt_e++;<br />    };<br />    if(ram_przebieg.mmt_e==60)<br />    {<br />    ram_przebieg.mmt_e=0;<br />    ram_przebieg.mht_e++;<br />    };<br />////////////////////////////////////////////////////////////////////////////////////////////<br />    if(!(PINC &amp; (1&lt;&lt;PC2)))<br />    {<br /><br />    flaga_praca=1;<br /><br />    } //pwr on<br />    else<br />    {<br /><br />    flaga_praca=0;<br />        flaga_open=1;<br />    } //pwr off<br />    if(flaga_praca==0)<br />    {<br />            LED1_OFF;<br />            LED2_OFF;<br />            if (flaga_wyczysc==1)<br />            {<br />            lcd_locate(0,0);<br />            lcd_str(&quot;                &quot;);<br />            lcd_locate(1,0);<br />            lcd_str(&quot;                &quot;);<br />            flaga_wyczysc=0;<br />            }<br />            _delay_ms(500);<br />            LCD_BL_OFF;<br />            _delay_ms(1000);<br />            BL_WZK_OFF;<br />            w_ep();<br />            servo_off();<br />            flaga_reset=0;<br />            LED0_TOG;<br />            if(!(PINC &amp; (1&lt;&lt;PC3)) &amp;&amp; !(PIND &amp; (1&lt;&lt;PD7)))<br />        {<br />        LCD_BL_ON;<br />        lcd_locate (0,5);<br />        lcd_str(&quot;SW &quot;);<br />            lcd_int(sw_ver_a);<br />            lcd_str(&quot;.&quot;);<br />            lcd_int(sw_ver_b);<br />            lcd_locate (1,2);<br />            mth_tot();<br />            _delay_ms(5000);<br />            lcd_cls();<br />            LCD_BL_OFF;<br />        }<br />            lcd_cls();<br />            LCD_BL_OFF;<br />    } // flaga_praca 0<br />    if (flaga_praca==1)<br />    {<br />    LED0_OFF; // Alarm OFF<br />    LCD_BL_ON; // Podswietlanie lcd+cyferblatu ON<br />    BL_WZK_ON; //Podswietlanie wskazowki ON<br />    if (flaga_reset==0)<br />    {<br />    servo_on();<br />    init();<br />    r_ep();<br />                flaga_reset=1;<br />           }<br />////////////////////////////////// Łączny //////////////////////////////////////////////////<br />    if(t&gt;9)<br />    {<br />    ram_przebieg.tm_e++;<br />    t=0;<br />    }<br />    if(ram_przebieg.tm_e&gt;9)<br />    {<br />    ram_przebieg.tj_e++;<br />    ram_przebieg.tm_e=0;<br />    };<br />    if(ram_przebieg.tj_e&gt;9)<br />    {<br />    ram_przebieg.td_e++;<br />    ram_przebieg.tj_e=0;<br />    };<br />    if(ram_przebieg.td_e&gt;9)<br />    {<br />    ram_przebieg.ts_e++;<br />    ram_przebieg.td_e=0;<br />    };<br />    if(ram_przebieg.ts_e&gt;9)<br />    {<br />    ram_przebieg.tt_e++;<br />    ram_przebieg.ts_e=0;<br />    };<br />    if(ram_przebieg.tt_e&gt;9)<br />    {<br />    ram_przebieg.tst_e++;<br />    ram_przebieg.ts_e=0;<br />    };<br />    if(ram_przebieg.tst_e&gt;9)<br />    {<br />    ram_przebieg.tm_e=0;<br />    ram_przebieg.td_e=0;<br />    ram_przebieg.ts_e=0;<br />    ram_przebieg.tj_e=0;<br />    ram_przebieg.tst_e=0;<br />    };<br />////////////////////////////////////// Dzienny /////////////////////////////////////////////<br />    if(d&gt;9)<br />    {<br />    ram_przebieg.dm_e++;<br />    d=0;<br />    };<br />    if(ram_przebieg.dm_e&gt;9)<br />    {<br />    ram_przebieg.dj_e++;<br />    ram_przebieg.dm_e=0;<br />    };<br />    if(ram_przebieg.dj_e&gt;9)<br />    {<br />    ram_przebieg.dd_e++;<br />    ram_przebieg.dj_e=0;<br />    };<br />    if(ram_przebieg.dd_e&gt;9)<br />    {<br />    ram_przebieg.ds_e++;<br />    ram_przebieg.dd_e=0;<br />    };<br />    if(ram_przebieg.ds_e&gt;9)<br />    {<br />    ram_przebieg.dm_e=0;<br />    ram_przebieg.ds_e=0;<br />    ram_przebieg.dd_e=0;<br />    ram_przebieg.dj_e=0;<br />    };<br />////////////////////////////////////////////////////////////////////////////////////////////<br />    if((!(PIND &amp; (1&lt;&lt;PD7)))&amp;&amp; mode==0)<br />    {<br />    mode=1;<br />    _delay_ms(500);<br />    }<br />    if((!(PIND &amp; (1&lt;&lt;PD7)))&amp;&amp; mode==1)<br />    {<br />    mode=0;<br />    _delay_ms(500);<br />    }<br />    if(!(PINC &amp; (1&lt;&lt;PC3)) &amp;&amp; !(PIND &amp; (1&lt;&lt;PD7)))<br />    {<br />    lcd_cls();<br />    lcd_locate (0,5);<br />    lcd_str(&quot;SW &quot;);<br />    lcd_int(sw_ver_a);<br />    lcd_str(&quot;.&quot;);<br />    lcd_int(sw_ver_b);<br />    lcd_locate (1,2);<br />    mth_tot();<br />    _delay_ms(5000);<br />    lcd_cls();<br />    }<br />    rpm=r*1000;<br />    rp=rpm/50;<br />    if (rpm==0)p=0;<br />    if (rpm&gt;0)p=rp*13;<br />    if(czas==50)<br />    {<br />    temp_p=(pomiar_adc(0)*25)/100; // Temperatura powietrza<br />    temp_s=(pomiar_adc(1)*25)/100; // Temperatura silnika<br />    pomiar_ladowania();<br />    if(temp_s&gt;=120)LED1_TOG;<br />    else { LED1_OFF;};<br />    if(rpm&gt;8000)LED2_TOG;<br />    else {LED2_OFF;};<br />    if (speed==0)<br />              {<br />    if(flaga_zapis==1)<br />    {<br />    w_ep();<br />    flaga_zapis=0;<br />    r_ep();<br />    }<br />    if (mode==0)<br />    {<br />    if(!(PINC &amp; (1&lt;&lt;PC3)))<br />    {<br />    _delay_ms(1000);<br />    if(!(PINC &amp; (1&lt;&lt;PC3)))<br />    {<br />    ram_przebieg.dm_e=0;<br />    ram_przebieg.ds_e=0;<br />    ram_przebieg.dd_e=0;<br />    ram_przebieg.dj_e=0;<br />    w_ep();<br />    }<br />    }<br />    if(!(PINC &amp; (1&lt;&lt;PC3)) &amp;&amp; !(PIND &amp; (1&lt;&lt;PD7)))<br />    {<br />    lcd_cls();<br />lcd_locate (0,5);<br />lcd_str(&quot;SW &quot;);<br />lcd_int(sw_ver_a);<br />lcd_str(&quot;.&quot;);<br />lcd_int(sw_ver_b);<br />lcd_locate (1,2);<br />mth_tot();<br />_delay_ms(5000);<br />lcd_cls();<br />}<br />    lcd_locate(0,0);<br />    lcd_str(&quot;                &quot;);<br />    lcd_locate(1,0);<br />    lcd_str(&quot;                &quot;);<br />    lcd_locate(0,0);<br />    lcd_str(&quot;T &quot;);<br />    total();<br />    lcd_str(&quot; km&quot;);<br />    lcd_locate(0,12);<br />    lcd_int(temp_p);<br />    lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />    lcd_locate(1,0);<br />    lcd_str(&quot;D &quot;);<br />    day();<br />    lcd_str(&quot; km&quot;);<br />    lcd_locate(1,11);<br />    temp();<br />    lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />    }<br />    if (mode==1)<br />    {<br />    if(!(PINC &amp; (1&lt;&lt;PC3)))<br />    {<br />    _delay_ms(1000);<br />    if(!(PINC &amp; (1&lt;&lt;PC3)))<br />    {<br />    ram_przebieg.mh_e=0;<br />    ram_przebieg.mm_e=0;<br />    ram_przebieg.ms_e=0;<br />    w_ep();};<br />    }<br />    lcd_locate(0,0);<br />    lcd_str(&quot;                &quot;);<br />    lcd_locate(1,0);<br />    lcd_str(&quot;                &quot;);<br />    lcd_locate(0,0);<br />    mth();<br />    lcd_str(&quot;mth&quot;);<br />    lcd_locate(0,12);<br />    lcd_int(temp_p);<br />    lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />    lcd_locate(1,0);<br />    lcd_int(ladowanie);<br />    lcd_str(&quot;.&quot;);<br />    lcd_int(ladowanie_p);<br />    lcd_str(&quot; V&quot;);<br />    lcd_locate(1,11);<br />    temp();<br />    lcd_str(&quot;\xdf&quot;&quot;c&quot;);<br />    }<br />              }//speed=0<br />    else<br />      {<br />    if(speed!=0)<br />    {<br />    lcd_cls();<br />    display();<br />    }<br />      }//else<br /><br />    }//czas=50<br />    }//flaga praca=1<br />    }//while<br />}//main<br /><br /><br /><br /><br /><br /><br /><br />ISR(INT1_vect)<br />{<br />if(flaga_praca==1)<br />{<br />s++; //impulsy z kola<br />d++; //dzienny<br />t++; // totalny<br />}<br /><br />}<br />ISR(INT0_vect)<br />{<br />if(flaga_praca==1)<br />{<br />rr++; //impulsy z silnika<br />}<br />}<br /><br />//TIMER CO 10ms<br />ISR( TIMER2_COMP_vect )<br />{<br />if(flaga_praca==1 &amp;&amp; flaga_open==0)<br />{<br />if (rpm!=0)<br />{<br />OCR1A=1260+p;<br />};<br />if (rpm==0)<br />{<br />while(OCR1A&gt;1260)<br />{<br />OCR1A--;<br />}<br />};<br />}<br />czas_10++;<br />flaga_servo++;<br />if (czas_10==1)<br />{<br />czas++;<br />czas_10=0;<br />};<br />if(flaga_servo==6)<br />{<br />r=rr;<br />rr=0;<br />flaga_servo=0;<br />}<br />    if(czas==10) //1000ms<br />    {<br />    if(flaga_praca==1)<br />    {<br />    speed=(s*30)/10;<br />    if(rpm&gt;0)<br />    {<br />    ram_przebieg.ms_e++;<br />    }<br />    if(rpm&gt;0)<br />    {<br />    ram_przebieg.mst_e++;<br />    }<br />    flaga_wyczysc=1;<br />    }<br />    }<br />    if (czas&gt;100) //jesli przekroczy = reset timera<br />    {<br />    s=0;<br />    czas=0;<br />    }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1046">maras52</a> — 18 cze 2015, o 00:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-06-17T23:04:17+01:00</updated>
<published>2015-06-17T23:04:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132037#p132037</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132037#p132037"/>
<title type="html"><![CDATA[Re: [DIY]Electronig Guage System by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132037#p132037"><![CDATA[
No projekt interesujacy. Zapodasz schematy :/ kody i szerszy opis ?<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 17 cze 2015, o 23:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maras52]]></name></author>
<updated>2015-06-17T22:17:13+01:00</updated>
<published>2015-06-17T22:17:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132036#p132036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132036#p132036"/>
<title type="html"><![CDATA[Re: [DIY]Electronig Guage System by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=132036#p132036"><![CDATA[
Tak więc...<br /><br />Po drobnych problemach z LCD i wytrawieniu na nowo płytek z naniesionymi poprawkami i &quot;udogodnieniami&quot; pozostało mi do zlutowania płytkę z dzielnikami i wejsciami impulsów,a brakuje mi 2 kondensatorów oraz gniazdo do którego obudowa się tworzy :/ Całość siedzi w obudowie choć przyznam trochę walczyłem z przyciskami które docelowo zrobiłem z ujaranych ledów podklejonych od spodu  kawałeczkami plexi 5mm<br /><a href="http://forum.atnel.pl/_obrazki/o/1046/d943921c4093ff2a1e8f601a6f66151e.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/d943921c4093ff2a1e8f601a6f66151e.jpg" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/1046/4aed61e9dd20ff92750736a720283f68.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/4aed61e9dd20ff92750736a720283f68.jpg" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/1046/6552cdd836357516fe1191a6817c7540.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/6552cdd836357516fe1191a6817c7540.jpg" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/1046/3c941fff5f57b3549c5b84ade4358e82.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/3c941fff5f57b3549c5b84ade4358e82.jpg" alt="Obrazek" /></a><br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1046">maras52</a> — 17 cze 2015, o 22:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-05-27T22:28:11+01:00</updated>
<published>2015-05-27T22:28:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=130277#p130277</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=130277#p130277"/>
<title type="html"><![CDATA[Re: [DIY]Electronig Guage System by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=130277#p130277"><![CDATA[
No zaj3b1stY projekt! Swietne wykonanie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />Sent from my iPhone using Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 27 maja 2015, o 22:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maras52]]></name></author>
<updated>2015-06-18T10:09:17+01:00</updated>
<published>2015-05-27T19:43:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=130254#p130254</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=130254#p130254"/>
<title type="html"><![CDATA[[DIY] Electronic Guage System v2.0 by Maras (BUDOWA)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11834&amp;p=130254#p130254"><![CDATA[
<a href="http://forum.atnel.pl/_obrazki/o/1046/be99edaa004629446ebfb8f89d8f2333.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/be99edaa004629446ebfb8f89d8f2333.jpg" alt="Obrazek" /></a><br /><br />Siema<br />Jak rejestrowałem się na tym forum byłem zielony z tych wszystkich if'ów, for'ów i tym podobnych. Miałem jeden główny cel by naumieć się rozkazywania tajemniczej czarnej stonodze by stworzyć zestaw wskaźników do mojego pierdzikółka. Nie powiem szło to czasem topornie czasem jeszcze bardziej, lecz z uzyskanych efektów jestem dumny (ta skromność hue hue).<br /><br />Zatem jedziem do punktu docelowego.<br />Jako iż moje pierdzikółko nie miało ani obrotomierza, ani wskaźnika temperatury, a licznik był na linkę która albo się ukręcała albo zębatki napędu się wycierały (można więc przyjąć że go nie było) postanowiłem zrobić to elektroniczne.<br /><br />Funkcję:<br />-Prędkościomierz cyfrowy<br />-Obrotomierz analogowy (wskazówka musi być !)<br />-Wskaźnik temp. powietrza<br />-Wskaźnik temp. silnika<br />-Drogomierz dzienny/łączny<br />-Wskaźnik ładowania<br />-Licznik mth (motogodzin)<br /><br />Całość oparta na m16 @16MHz, obrotomierz na serwie modelarskim (ochhh jak rzęzi <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ), licznik na HD44780 (docelowo pomarańczowe podświetlanie - czarne znaki).<br />Po przekręceniu kluczyka zwierany jest przekaźnik który odpina masę od pinu co daje sygnał wyjścia z czuwania i uruchomienia &quot;Opening Ceremony&quot;. Po otrzymaniu impulsów prędkości licznik przełącza się w tryb dużych cyfr wskazujących prędkość + temp silnika. Na postoju pokazuje przebiegi d/t + temperatury lub w drugim trybie mth (resetowalne), aktualnie napięcie w instalacji i temperatury. Gdy obroty uzyskają odpowiednią wartość odpala się &quot;Shift Light&quot; (aktualnie ustawione na 8.5k RPM) i analogicznie gdy temperatura przekroczy odpowiedni próg migać zaczyna kontrolka informująca o tym fakcie.Resetowanie przebiegów/mth odbywa się przez przytrzymanie przycisku ponad 1s, natomiast przytrzymanie obydwu (mode + reset) przycisków pokazuje aktualna wersje &quot;softu&quot; oraz łączne mth (te już trzeba z poziomu kompa zresetować).<br /><br />Projekt powstał na chwilę obecną na płytce testowej choć płytki pod &quot;finalną&quot; wersję są już wytrawione i w większości polutowane. Obudowa wykonana z rury kanalizacyjnej PCV fi 100mm oraz kawałków plastiku (za ChRL nie wiem co to za materiał) muszę jeszcze pozalewać żywicą pewne niedoskonałości i pomalować/okleić, dodam że w środku ekranowana blachą z puszki po herbatce. Nie wiem na ile to pomoże ale boje się tylko że przy sąsiedztwie iskry zapłonowej coś będzie się krzaczyć :/ czas pokaże.<br /><br />Impulsy prędkości będą brane z czujki opartej na Hallu umieszczonej w rejonie wałka zdawczego w pokrywie silnika, natomiast impulsy obrotów z impulsatora w zapłonie podawane dalej na klucz tranzystorowy dający na wyjściu sygnały odpowiednie dla mikroklocka. Pomiar temperatury powietrza zmontowany na LM35, a silnika w oparciu o termistor NTC .<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />Schematy* i kod muszę poogarniać co by lałurek nie wrzucać.<br /><br />*Tych muszę poszukać bo już to z rok klepie i po drodze były z 3 formaty kompa.<br /><a href="http://forum.atnel.pl/_obrazki/o/1046/e4e4eb7ef7ec9b26871eac16a82943a5.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/e4e4eb7ef7ec9b26871eac16a82943a5.jpg" alt="Obrazek" /></a> <a href="http://forum.atnel.pl/_obrazki/o/1046/ef25d30643bcdcd2641475a356ea700c.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/ef25d30643bcdcd2641475a356ea700c.jpg" alt="Obrazek" /></a> <a href="http://forum.atnel.pl/_obrazki/o/1046/d964abd2e9925900f2bd1b92cea96992.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/d964abd2e9925900f2bd1b92cea96992.jpg" alt="Obrazek" /></a> <a href="http://forum.atnel.pl/_obrazki/o/1046/6ea887bf7d47371c6089ba124f68e285.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/6ea887bf7d47371c6089ba124f68e285.jpg" alt="Obrazek" /></a> <a href="http://forum.atnel.pl/_obrazki/o/1046/c66c7bc461e7922d4846ac86b5e74ae0.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/c66c7bc461e7922d4846ac86b5e74ae0.jpg" alt="Obrazek" /></a> <a href="http://forum.atnel.pl/_obrazki/o/1046/fd3eba42fffd6c0b2bf924006a6b514f.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1046/fd3eba42fffd6c0b2bf924006a6b514f.jpg" alt="Obrazek" /></a><br /><br />//edit<br /><br />Dodałem schematy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1046">maras52</a> — 27 maja 2015, o 19:43</p><hr />
]]></content>
</entry>
</feed>