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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-15T21:46:05+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4901&amp;mode</id>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-15T21:46:05+01:00</updated>
<published>2013-12-15T21:46:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61338#p61338</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61338#p61338"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61338#p61338"><![CDATA[
Faktycznie napięcie, ale to tylko dla celów projektu który robię, a wartość prądu jest tylko symulowana stany połączeń uzwojeń sa symulowane diodami prąd głównego układu to zadaje potencjometrem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> itd <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />na chwile obecną prace zakończyłem prace nad nim teraz tylko papierki do uczelni opis bla bla bla<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 15 gru 2013, o 21:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-15T20:05:53+01:00</updated>
<published>2013-12-15T20:05:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61314#p61314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61314#p61314"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61314#p61314"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />jest A &lt;= w kodzie jest LCD_WriteText( &quot; A&quot; ); czyli musi być <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br />No tak to napisałeś, ale... żeby był &quot;A&quot; to chyba powinieneś to przeliczyć.<br />A to co wyświetlasz to jakby Ci to powiedzieć jest... napięcie. Czyli &quot;V&quot;<br />No ale mogę się mylić...<br />Musiałbym jeszcze raz dokładnie spojrzeć w kod. Ale tak na &quot;pierwszy rzut oka&quot; mi się wydawało <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 15 gru 2013, o 20:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-15T12:38:48+01:00</updated>
<published>2013-12-15T12:38:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61250#p61250</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61250#p61250"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61250#p61250"><![CDATA[
jest A &lt;= w kodzie jest LCD_WriteText( &quot; A&quot; ); czyli musi być <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 15 gru 2013, o 12:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-14T22:09:34+01:00</updated>
<published>2013-12-14T22:09:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61153#p61153</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61153#p61153"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61153#p61153"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />edit dopisałem pętle if w odp miejscu na bazie poradnika adc 4b i działa!!!<br /></div><br />Cieszę się, że się udało  <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" /> <br />ale... Czy aby na pewno to co pokazujesz na wyświetlaczu to &quot;A&quot;  <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /> <br />Bo mnie się wydaje, że to jednak inna wartość fizyczna jest <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 14 gru 2013, o 22:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-14T20:49:08+01:00</updated>
<published>2013-12-14T20:49:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61127#p61127</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61127#p61127"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61127#p61127"><![CDATA[
edit dopisałem pętle if w odp miejscu na bazie poradnika adc 4b i działa!!!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 14 gru 2013, o 20:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-14T16:09:25+01:00</updated>
<published>2013-12-14T16:09:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61085#p61085</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61085#p61085"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=61085#p61085"><![CDATA[
Specjalnie dla Ciebie kolego MirkoT <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />//#include &quot;HD44780.h&quot;<br />#include &quot;HD44780.c&quot;<br /><br /><br />//definicje dla procesora<br /><br />//dla diody LED<br /><br />#define LED1_PIN (1&lt;&lt;PD0)  //def pinu naktorym jest dioda<br />#define LED_TOG1 PORTD ^= LED1_PIN   //makro def zmiana stanu diody<br /><br />#define LED2_PIN (1&lt;&lt;PD1)  //def pinu naktorym jest dioda<br />#define LED_TOG2 PORTD ^= LED2_PIN   //makro def zmiana stanu diody<br /><br /><br />//dla klawisza<br /><br />#define KEY1_PIN (1&lt;&lt;PC4)  //def pinu przycisku aktywacja<br />#define KEY_DOWN1 ! (PINC &amp; KEY1_PIN)   //stan przycisku aktywacja<br /><br />#define KEY2_PIN (1&lt;&lt;PC3)  //def pinu przycisku aktywacja<br />#define KEY_DOWN2 ! (PINC &amp; KEY2_PIN)  //stan przycisku aktywacja<br /><br />#define KEY3_PIN (1&lt;&lt;PC2)  //def pinu przycisku stop<br />#define KEY_DOWN3 ! (PINC &amp; KEY3_PIN) //stan przycisku stop<br /><br /><br />// definicje funkcji w main.c<br /><br />uint16_t pomiar ( uint8_t kanal);<br />//uint16_t konwersja ( uint16_t wynikpomiaru );<br /><br />//......zmienna globalna<br /><br />uint16_t TEMP;<br /><br />int main (void) //glowna funkcja<br />{<br /><br />//.......zmienne lokalne<br />int x = 0, y = 0;<br /><br />uint16_t wynik = 0;<br />//uint16_t tmp2 = 0;<br /><br /><br />DDRD |= LED1_PIN; //kirtunek pinu leda aktywacji wyjsciowy<br />PORTD |= LED1_PIN; //wylaczenie<br /><br />DDRD |= LED2_PIN; //kirtunek pinu leda startu wyjsciowy<br />PORTD |= LED2_PIN; //wylaczenie<br /><br />DDRC &amp;= ~KEY1_PIN; //kierunek pinu na wejsciowydla aktywacji!<br />PORTC |= KEY1_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY2_PIN; //kierunek pinu na wejsciowydla stopu!!<br />PORTC |= KEY2_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY3_PIN; //kierunek pinu na wejsciowy dla stopu!!<br />PORTC |= KEY3_PIN; //posciagniećie VCC dla stotpu!<br /><br />//..............................ADC..........................<br /><br />ADCSRA |= (1 &lt;&lt; ADEN);  //turn on ADC<br /><br />ADCSRA |= (1 &lt;&lt; ADPS1); //preskaler 64<br />ADCSRA |= (1 &lt;&lt; ADPS2);<br /><br />ADMUX |=  (1 &lt;&lt; REFS0);// wewnętrzne Uref<br />ADMUX |=  (1 &lt;&lt; REFS1);<br /><br />//...............LCD..............<br /><br />LCD_Initalize();<br /><br />LCD_Clear();<br />//_delay_ms(50);<br /><br />/*for(uint8_t i = 57;i&gt;=48;i--)  //kody asci dla cyfr 9-0<br />{<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;Laduje dane&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteData(i);<br />_delay_ms(1000);<br />LCD_Clear();<br />}<br /><br />*/<br /><br />LCD_Clear();<br />LCD_GoTo(1,0);<br />LCD_WriteText(&quot;Aktywuj uklad!&quot;);<br /><br /><br /><br />while ( 1 )    //..............petla nieskonczona<br />{<br /><br />//...................przycisk aktywacji!!.................<br /><br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);  //niekontrolowane kilkurotne nacisnięcie - zabezpieczenie<br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);<br />if (KEY_DOWN1)<br />{<br />if (x == 0)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad aktywny&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;nacisnij start&quot;);<br />LED_TOG1;<br />//_delay_ms(200);<br />x = 1;<br />}<br />}<br />}<br />}<br /><br />//..................przycisk startu......................................<br /><br />if (KEY_DOWN2)<br />{<br />_delay_ms(80);<br />if (KEY_DOWN2)<br />{<br />if (x == 1)<br />{<br />if (y == 0)<br />{<br />/*LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wGwiazde&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot; I=&quot;);<br />LED_TOG2; */<br />//_delay_ms(250);<br />LED_TOG2;<br />y = 1;<br /><br />}<br />}<br />}<br />}<br /><br />//....................przycisk stopu..................<br /><br />if (KEY_DOWN3)<br />{<br />_delay_ms(30);<br />if (KEY_DOWN3)<br />{<br />if (x == 1)<br />{<br />LED_TOG1;<br />LED_TOG2;<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wylaczony&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;mozesz aktywowac&quot;);<br />x = 0;<br />y = 0;<br />}<br />}<br />}<br /><br />uint32_t obliczony , stala = 473; // stala = 471 tj  1,1/1024 * wsp podzialu napiecia (4,4) * 100 000 = 472.656<br />uint8_t cz_d , cz_u;  //czesc calkowita i ulamkowa<br /><br />if (y == 1)<br />{<br /><br />wynik = pomiar( PC0 );     //wynik to odczytana wartosc<br />obliczony = wynik * stala;// wynik 100 000 razy wiekszy po przemnożeniu przez stałe<br />cz_d = obliczony / 100000;// czesc calkowita<br />cz_u = (obliczony / 1000 ) % 1000; // obliczenia czesc ulamkowa<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText( &quot;uklad w Gwiazde&quot; );  //stan ukladu<br /><br />LCD_GoTo(0,1);<br />LCD_WriteText( &quot;I = &quot; );<br />LCD_INT( cz_d ); // to co funkcja przeliczająca i wyswietlajaca czesc calkowita<br />LCD_WriteText( &quot;.&quot; );<br />LCD_INT(cz_u); // czesc ulamkowa<br />LCD_WriteText( &quot; A&quot; );<br />//LCD_GoTo(8,1);<br />//LCD_WriteData( wynik );<br /><br />_delay_ms(500);<br /><br />}<br />}  //od while(1)<br /><br /><br /><br /><br /><br />} // od maina<br /><br />//.................................funkcje....................<br /><br />uint16_t pomiar ( uint8_t kanal)  //funkcja pomiaru ADC<br />{<br /><br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br /><br />ADCSRA |= ( 1 &lt;&lt; ADSC);<br /><br />while (ADCSRA &amp; ( 1 &lt;&lt; ADSC));<br /><br />return ADCW;<br /><br />}<br /><br />/*uint16_t konwersja ( uint16_t wynikpomiaru )<br />{<br /><br />char bufor&#91;17&#93;;<br />itoa(wynikpomiaru, bufor, 10);<br />return TEMP;<br /><br />}<br />*/[/syntax]<br /><br />obsługa wyświetlacza plik .h a po nim plik.c<br /><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.h<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Konfiguracja sygnałów sterujących wyświetlaczem.<br />// Można zmienić stosownie do potrzeb.<br />//<br />//-------------------------------------------------------------------------------------------------<br />#define LCD_RS_DIRDDRB<br />#define LCD_RS_PORT PORTB<br />#define LCD_RS_PINPINB<br />#define LCD_RS(1 &lt;&lt; PB1)<br /><br />#define LCD_RW_DIRDDRB<br />#define LCD_RW_PORTPORTB<br />#define LCD_RW_PINPINB<br />#define LCD_RW(1 &lt;&lt; PB2)<br /><br />#define LCD_E_DIRDDRC<br />#define LCD_E_PORTPORTC<br />#define LCD_E_PINPINC<br />#define LCD_E(1 &lt;&lt; PC5)<br /><br />#define LCD_DB4_DIRDDRD<br />#define LCD_DB4_PORTPORTD<br />#define LCD_DB4_PINPIND<br />#define LCD_DB4(1 &lt;&lt; PD5)<br /><br />#define LCD_DB5_DIRDDRD<br />#define LCD_DB5_PORTPORTD<br />#define LCD_DB5_PINPIND<br />#define LCD_DB5(1 &lt;&lt; PD6)<br /><br />#define LCD_DB6_DIRDDRD<br />#define LCD_DB6_PORTPORTD<br />#define LCD_DB6_PINPIND<br />#define LCD_DB6(1 &lt;&lt; PD7)<br /><br />#define LCD_DB7_DIRDDRB<br />#define LCD_DB7_PORTPORTB<br />#define LCD_DB7_PINPINB<br />#define LCD_DB7(1 &lt;&lt; PB0)<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Instrukcje kontrolera Hitachi HD44780<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />#define HD44780_CLEAR0x01<br /><br />#define HD44780_HOME0x02<br /><br />#define HD44780_ENTRY_MODE0x04<br />#define HD44780_EM_SHIFT_CURSOR0<br />#define HD44780_EM_SHIFT_DISPLAY1<br />#define HD44780_EM_DECREMENT0<br />#define HD44780_EM_INCREMENT2<br /><br />#define HD44780_DISPLAY_ONOFF0x08<br />#define HD44780_DISPLAY_OFF0<br />#define HD44780_DISPLAY_ON4<br />#define HD44780_CURSOR_OFF0<br />#define HD44780_CURSOR_ON2<br />#define HD44780_CURSOR_NOBLINK0<br />#define HD44780_CURSOR_BLINK1<br /><br />#define HD44780_DISPLAY_CURSOR_SHIFT0x10<br />#define HD44780_SHIFT_CURSOR0<br />#define HD44780_SHIFT_DISPLAY8<br />#define HD44780_SHIFT_LEFT0<br />#define HD44780_SHIFT_RIGHT4<br /><br />#define HD44780_FUNCTION_SET0x20<br />#define HD44780_FONT5x70<br />#define HD44780_FONT5x104<br />#define HD44780_ONE_LINE0<br />#define HD44780_TWO_LINE8<br />#define HD44780_4_BIT0<br />#define HD44780_8_BIT16<br /><br />#define HD44780_CGRAM_SET0x40<br /><br />#define HD44780_DDRAM_SET0x80<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Deklaracje funkcji<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />void LCD_WriteCommand(unsigned char);<br />unsigned char LCD_ReadStatus(void);<br />void LCD_WriteData(uint16_t);<br />unsigned char LCD_ReadData(void);<br />void LCD_WriteText(char *);<br />void LCD_GoTo(unsigned char, unsigned char);<br />void LCD_Clear(void);<br />void LCD_Home(void);<br />void LCD_Initalize(void);<br />void LCD_INT (uint16_t);<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.h<br />//<br />//-------------------------------------------------------------------------------------------------[/syntax]<br /><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.c<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &quot;HD44780.h&quot;<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_OutNibble(unsigned char nibbleToWrite)<br />{<br /><br />if(nibbleToWrite &amp; 0x01)<br />LCD_DB4_PORT |= LCD_DB4;<br />else<br />LCD_DB4_PORT  &amp;= ~LCD_DB4;<br /><br />if(nibbleToWrite &amp; 0x02)<br />LCD_DB5_PORT |= LCD_DB5;<br />else<br />LCD_DB5_PORT  &amp;= ~LCD_DB5;<br /><br />if(nibbleToWrite &amp; 0x04)<br />LCD_DB6_PORT |= LCD_DB6;<br />else<br />LCD_DB6_PORT  &amp;= ~LCD_DB6;<br /><br />if(nibbleToWrite &amp; 0x08)<br />LCD_DB7_PORT |= LCD_DB7;<br />else<br />LCD_DB7_PORT  &amp;= ~LCD_DB7;<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char _LCD_InNibble(void)<br />{<br />unsigned char tmp = 0;<br /><br />if(LCD_DB4_PIN &amp; LCD_DB4)<br />tmp |= (1 &lt;&lt; 0);<br />if(LCD_DB5_PIN &amp; LCD_DB5)<br />tmp |= (1 &lt;&lt; 1);<br />if(LCD_DB6_PIN &amp; LCD_DB6)<br />tmp |= (1 &lt;&lt; 2);<br />if(LCD_DB7_PIN &amp; LCD_DB7)<br />tmp |= (1 &lt;&lt; 3);<br />return tmp;<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu bajtu do wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_Write(unsigned char dataToWrite)<br />{<br />LCD_DB4_DIR |= LCD_DB4;<br />LCD_DB5_DIR |= LCD_DB5;<br />LCD_DB6_DIR |= LCD_DB6;<br />LCD_DB7_DIR |= LCD_DB7;<br /><br />LCD_RW_PORT &amp;= ~LCD_RW;<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite &gt;&gt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite);<br />LCD_E_PORT &amp;= ~LCD_E;<br />while(LCD_ReadStatus()&amp;0x80);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu bajtu z wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />unsigned char _LCD_Read(void)<br />{<br />unsigned char tmp = 0;<br />LCD_DB4_DIR &amp;= ~LCD_DB4;<br />LCD_DB5_DIR &amp;= ~LCD_DB5;<br />LCD_DB6_DIR &amp;= ~LCD_DB6;<br />LCD_DB7_DIR &amp;= ~LCD_DB7;<br /><br />LCD_RW_PORT |= LCD_RW;<br />LCD_E_PORT |= LCD_E;<br />tmp |= (_LCD_InNibble() &lt;&lt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />tmp |= _LCD_InNibble();<br />LCD_E_PORT &amp;= ~LCD_E;<br />return tmp;<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu rozkazu do wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteCommand(unsigned char commandToWrite)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />_LCD_Write(commandToWrite);<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu bajtu statusowego<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadStatus(void)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />return _LCD_Read();<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu danych do pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteData(uint16_t dataToWrite)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />_LCD_Write(dataToWrite);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu danych z pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadData(void)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />return _LCD_Read();<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wyświetlenia napisu na wyswietlaczu.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteText(char * text)<br />{<br />while(*text)<br />  LCD_WriteData(*text++);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja ustawienia współrzędnych ekranowych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_GoTo(unsigned char x, unsigned char y)<br />{<br />LCD_WriteCommand(HD44780_DDRAM_SET | (x + (0x40 * y)));<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja czyszczenia ekranu wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Clear(void)<br />{<br />LCD_WriteCommand(HD44780_CLEAR);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja przywrócenia początkowych współrzędnych wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Home(void)<br />{<br />LCD_WriteCommand(HD44780_HOME);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Procedura inicjalizacji kontrolera HD44780.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Initalize(void)<br />{<br />unsigned char i;<br />LCD_DB4_DIR |= LCD_DB4; // Konfiguracja kierunku pracy wyprowadzeń<br />LCD_DB5_DIR |= LCD_DB5; //<br />LCD_DB6_DIR |= LCD_DB6; //<br />LCD_DB7_DIR |= LCD_DB7; //<br />LCD_E_DIR |= LCD_E;   //<br />LCD_RS_DIR |= LCD_RS;  //<br />LCD_RW_DIR |= LCD_RW;  //<br />_delay_ms(150); // oczekiwanie na ustalibizowanie się napiecia zasilajacego<br />LCD_RS_PORT &amp;= ~LCD_RS; // wyzerowanie linii RS<br />LCD_E_PORT &amp;= ~LCD_E;  // wyzerowanie linii E<br />LCD_RW_PORT &amp;= ~LCD_RW;<br />for(i = 0; i &lt; 3; i++) // trzykrotne powtórzenie bloku instrukcji<br />  {<br />  LCD_E_PORT |= LCD_E; //  E = 1<br />  _LCD_OutNibble(0x03); // tryb 8-bitowy<br />  LCD_E_PORT &amp;= ~LCD_E; // E = 0<br />  _delay_ms(5); // czekaj 5ms<br />  }<br /><br />LCD_E_PORT |= LCD_E; // E = 1<br />_LCD_OutNibble(0x02); // tryb 4-bitowy<br />LCD_E_PORT &amp;= ~LCD_E; // E = 0<br /><br />_delay_ms(1); // czekaj 1ms <br />LCD_WriteCommand(HD44780_FUNCTION_SET | HD44780_FONT5x7 | HD44780_TWO_LINE | HD44780_4_BIT); // interfejs 4-bity, 2-linie, znak 5x7<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_OFF); // wyłączenie wyswietlacza<br />LCD_WriteCommand(HD44780_CLEAR); // czyszczenie zawartosći pamieci DDRAM<br />LCD_WriteCommand(HD44780_ENTRY_MODE | HD44780_EM_SHIFT_CURSOR | HD44780_EM_INCREMENT);// inkrementaja adresu i przesuwanie kursora<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_ON | HD44780_CURSOR_OFF | HD44780_CURSOR_NOBLINK); // włącz LCD, bez kursora i mrugania<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.c<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br /><br />void LCD_INT (uint16_t doprzetworzenia)<br />{<br />char bufor&#91;17&#93;;<br />LCD_WriteText(itoa (doprzetworzenia, bufor, 10));<br />}<br /><br />//[/syntax]<br /><br />zachowanie układu <br /><br /><a href="http://www.youtube.com/watch?v=I3Tng0gMggw&amp;feature"  class="postlink">http://www.youtube.com/watch?v=I3Tng0gMggw&amp;feature</a><br /><br />PS nie umiem dodawać linków z yt po przez BBCODE <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />jest blad w komentarzach ale juz to poprawiam i te definicje cz_u itd dam do góry zeby to porządek miało<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2069/8d644d5997be73b2690ff5217b2c8fea.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2069/8d644d5997be73b2690ff5217b2c8fea.jpg" alt="Obrazek" /></a><br /><br />takie mam pytanie wszystko od wyświetlacza wrzuca na fiolet a to co dopisalem juz nie np funkcja LCD_INT wie ktoś dlaczego?<br />no i jeszcze trafilem na taki błąd,<br />zrzucam wartosci<br />3,12<br />3,11<br />3,9<br />3,8 ... i nie bardzo mam pomysł jak to poprawić<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 14 gru 2013, o 16:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-13T20:16:50+01:00</updated>
<published>2013-12-13T20:16:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60995#p60995</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60995#p60995"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60995#p60995"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent">W &quot;mojej&quot; książce rozdział o ADC rozpoczyna się od str. 235 a kończy się na stronie 245 Czyli raptem 10 stron. <br />A masz tam wszystko co potrzebujesz do przeliczenia i poprawnego wyświetlenia wyniku.<br /></div><br /><br />to juz wiem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> jutro to skończe może cos pozmieniam jeszcze delikatnie no i usune te masę wyłączonych fragmentów programu i wgl, mam teraz nadzieje ze juz to skończe bez problemów dzieki za pomoc ponownie!  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /></div><br />To pokaż proszę działający kod. Taki który się kompiluje bez error i warning <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Chętnie zobaczę dokąd doszedłeś<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 13 gru 2013, o 20:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-13T20:13:48+01:00</updated>
<published>2013-12-13T20:13:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60994#p60994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60994#p60994"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60994#p60994"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />W &quot;mojej&quot; książce rozdział o ADC rozpoczyna się od str. 235 a kończy się na stronie 245 Czyli raptem 10 stron. <br />A masz tam wszystko co potrzebujesz do przeliczenia i poprawnego wyświetlenia wyniku.<br /></div><br /><br />to juz wiem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> jutro to skończe może cos pozmieniam jeszcze delikatnie no i usune te masę wyłączonych fragmentów programu i wgl, mam teraz nadzieje ze juz to skończe bez problemów dzieki za pomoc ponownie!  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 13 gru 2013, o 20:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-13T19:53:09+01:00</updated>
<published>2013-12-13T19:53:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60991#p60991</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60991#p60991"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60991#p60991"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />przepisując z bb nic sie nie naucze nie powiem czytałem to, przetwornik uruchomiłem wyświetlacz złożyłem na wyświetlacz pomiar uruchomiłem, niestety tak to juz jest ze wymyślają cuda niewidy u mnie na uczelni... z cylku nie wiem jak ale zrób i szukaj wiatru w polu, tam juz doszedłem co zdemolowałem działa kejji wynik skacze w granicach 8-9 przedziałow teraz musze to tylko przeliczyć na nasze i po przekroczeniu tam ilus ma sie stan na nóżkach zmienić i koniec wtedy wracam (mam nadzieje ze w świeta) do strony 1 i zaczynam to od zera przerabiać<br /></div><br />W &quot;mojej&quot; książce rozdział o ADC rozpoczyna się od str. 235 a kończy się na stronie 245 Czyli raptem 10 stron. <br />A masz tam wszystko co potrzebujesz do przeliczenia i poprawnego wyświetlenia wyniku. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 13 gru 2013, o 19:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-13T19:44:35+01:00</updated>
<published>2013-12-13T19:44:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60988#p60988</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60988#p60988"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60988#p60988"><![CDATA[
przepisując z bb nic sie nie naucze nie powiem czytałem to, przetwornik uruchomiłem wyświetlacz złożyłem na wyświetlacz pomiar uruchomiłem, niestety tak to juz jest ze wymyślają cuda niewidy u mnie na uczelni... z cylku nie wiem jak ale zrób i szukaj wiatru w polu, tam juz doszedłem co zdemolowałem działa kejji wynik skacze w granicach 8-9 przedziałow teraz musze to tylko przeliczyć na nasze i po przekroczeniu tam ilus ma sie stan na nóżkach zmienić i koniec wtedy wracam (mam nadzieje ze w świeta) do strony 1 i zaczynam to od zera przerabiać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 13 gru 2013, o 19:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-13T19:30:46+01:00</updated>
<published>2013-12-13T19:30:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60987#p60987</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60987#p60987"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60987#p60987"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />bez czegokolwiek... gdzies na wikibooks (czy cos w ten deseń) wyczytałem ze przetworzona postać zapisuje sie w tablicy,przez tą 1 h przepisałem ten kod inaczej ale i tak nie działa zrobiłem tak jak w książce tą fukncje i nie moge tego i tak ogarnąć....<br /><br />[...]<br /><br />Chciałbym to jak najszybciej zrobić(zdać ten cenzura projekt) zeby móc od 0 przekopać <span style="color: #4000FF">BB</span> i od podstaw robić wszystko i sie tego pożądnie nauczyć<br /></div><br />Wybacz, ale tak się nie da <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":-(" title="Smutny" /><br />Nie odbierz tego źle, ale po prostu brakuje Ci elementarnej wiedzy.<br />Zupełnie nie wiesz co się dzieje, jak się dzieje i dlaczego się dzieje...<br />A tak na prawdę to w BB masz działające kody.<br />Wystarczy wybrać te które potrzebujesz, poskładać je w całość i ociupinkę przerobić pod Twój procesor.<br /><br />Owszem, ktoś może Ci napisać działający kod, ale to Ci w niczym nie pomoże.<br />Pisałem Ci w którym rozdziale BB masz o ADC. Tam znajdziesz wszystkie potrzebne informacje! WSZYSTKIE!<br />Poza tym na blogu u Mirka też są poradniki wideo o ADC. Warto, na prawdę warto pooglądać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 13 gru 2013, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-13T19:05:09+01:00</updated>
<published>2013-12-13T19:05:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60985#p60985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60985#p60985"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60985#p60985"><![CDATA[
bez czegokolwiek... gdzies na wikibooks (czy cos w ten deseń) wyczytałem ze przetworzona postać zapisuje sie w tablicy,przez tą 1 h przepisałem ten kod inaczej ale i tak nie działa zrobiłem tak jak w książce tą fukncje i nie moge tego i tak ogarnąć....<br /><br />main<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />//#include &quot;HD44780.h&quot;<br />#include &quot;HD44780.c&quot;<br /><br /><br />//definicje dla procesora<br /><br />//dla diody LED<br /><br />#define LED1_PIN (1&lt;&lt;PD0)  //def pinu naktorym jest dioda<br />#define LED_TOG1 PORTD ^= LED1_PIN   //makro def zmiana stanu diody<br /><br />#define LED2_PIN (1&lt;&lt;PD1)  //def pinu naktorym jest dioda<br />#define LED_TOG2 PORTD ^= LED2_PIN   //makro def zmiana stanu diody<br /><br /><br />//dla klawisza<br /><br />#define KEY1_PIN (1&lt;&lt;PC4)  //def pinu przycisku aktywacja<br />#define KEY_DOWN1 ! (PINC &amp; KEY1_PIN)   //stan przycisku aktywacja<br /><br />#define KEY2_PIN (1&lt;&lt;PC3)  //def pinu przycisku aktywacja<br />#define KEY_DOWN2 ! (PINC &amp; KEY2_PIN)  //stan przycisku aktywacja<br /><br />#define KEY3_PIN (1&lt;&lt;PC2)  //def pinu przycisku stop<br />#define KEY_DOWN3 ! (PINC &amp; KEY3_PIN) //stan przycisku stop<br /><br /><br />// definicje funkcji w main.c<br /><br />uint16_t pomiar ( uint8_t kanal);<br />//uint16_t konwersja ( uint16_t wynikpomiaru );<br /><br />//......zmienna globalna<br /><br />uint16_t TEMP;<br /><br />int main (void) //glowna funkcja<br />{<br /><br />//.......zmienne lokalne<br />int x = 0, y = 0;<br /><br />uint16_t wynik = 0;<br />//uint16_t tmp2 = 0;<br /><br /><br />DDRD |= LED1_PIN; //kirtunek pinu leda aktywacji wyjsciowy<br />PORTD |= LED1_PIN; //wylaczenie<br /><br />DDRD |= LED2_PIN; //kirtunek pinu leda startu wyjsciowy<br />PORTD |= LED2_PIN; //wylaczenie<br /><br />DDRC &amp;= ~KEY1_PIN; //kierunek pinu na wejsciowydla aktywacji!<br />PORTC |= KEY1_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY2_PIN; //kierunek pinu na wejsciowydla stopu!!<br />PORTC |= KEY2_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY3_PIN; //kierunek pinu na wejsciowy dla stopu!!<br />PORTC |= KEY3_PIN; //posciagniećie VCC dla stotpu!<br /><br />//..............................ADC..........................<br /><br />ADCSRA |= (1 &lt;&lt; ADEN);  //turn on ADC<br /><br />ADCSRA |= (1 &lt;&lt; ADPS1); //preskaler 64<br />ADCSRA |= (1 &lt;&lt; ADPS2);<br /><br />ADMUX |=  (1 &lt;&lt; REFS0);// wewnętrzne Uref<br />ADMUX |=  (1 &lt;&lt; REFS1);<br /><br />//...............LCD..............<br /><br />LCD_Initalize();<br /><br />LCD_Clear();<br />//_delay_ms(50);<br /><br />/*for(uint8_t i = 57;i&gt;=48;i--)  //kody asci dla cyfr 9-0<br />{<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;Laduje dane&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteData(i);<br />_delay_ms(1000);<br />LCD_Clear();<br />}<br /><br />*/<br /><br />LCD_Clear();<br />LCD_GoTo(1,0);<br />LCD_WriteText(&quot;Aktywuj uklad!&quot;);<br /><br /><br /><br />while ( 1 )    //..............petla nieskonczona<br />{<br /><br />//...................przycisk aktywacji!!.................<br /><br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);  //niekontrolowane kilkurotne nacisnięcie - zabezpieczenie<br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);<br />if (KEY_DOWN1)<br />{<br />if (x == 0)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad aktywny&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;nacisnij start&quot;);<br />LED_TOG1;<br />//_delay_ms(200);<br />x = 1;<br />}<br />}<br />}<br />}<br /><br />//..................przycisk startu......................................<br /><br />if (KEY_DOWN2)<br />{<br />_delay_ms(80);<br />if (KEY_DOWN2)<br />{<br />if (x == 1)<br />{<br />if (y == 0)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wGwiazde&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot; I=&quot;);<br />LED_TOG2;<br />//_delay_ms(250);<br />y = 1;<br /><br />}<br />}<br />}<br />}<br /><br />//....................przycisk stopu..................<br /><br />if (KEY_DOWN3)<br />{<br />_delay_ms(30);<br />if (KEY_DOWN3)<br />{<br />if (x == 1)<br />{<br />LED_TOG1;<br />LED_TOG2;<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wylaczony&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;mozesz aktywowac&quot;);<br />x = 0;<br />y = 0;<br />}<br />}<br />}<br /><br />if (y == 1)<br />{<br />wynik = pomiar( PC0 );<br /><br /><br />LCD_GoTo(0,1);<br />LCD_WriteText( &quot;I= &quot; );<br />LCD_INT(wynik);<br />//LCD_WriteData( tmp2  );<br /><br />_delay_ms(200);<br /><br /><br />}<br /><br />}  //od while(1)<br /><br /><br /><br /><br /><br />} // od maina<br /><br />//.................................funkcje....................<br /><br />uint16_t pomiar ( uint8_t kanal)  //funkcja pomiaru ADC<br />{<br /><br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br /><br />ADCSRA |= ( 1 &lt;&lt; ADSC);<br /><br />while (ADCSRA &amp; ( 1 &lt;&lt; ADSC));<br /><br />return ADCW;<br /><br />}<br /><br />/*uint16_t konwersja ( uint16_t wynikpomiaru )<br />{<br /><br />char bufor&#91;17&#93;;<br />itoa(wynikpomiaru, bufor, 10);<br />return TEMP;<br /><br />}<br />*/[/syntax]<br /><br />.h<br /><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.h<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Konfiguracja sygnałów sterujących wyświetlaczem.<br />// Można zmienić stosownie do potrzeb.<br />//<br />//-------------------------------------------------------------------------------------------------<br />#define LCD_RS_DIRDDRB<br />#define LCD_RS_PORT PORTB<br />#define LCD_RS_PINPINB<br />#define LCD_RS(1 &lt;&lt; PB1)<br /><br />#define LCD_RW_DIRDDRB<br />#define LCD_RW_PORTPORTB<br />#define LCD_RW_PINPINB<br />#define LCD_RW(1 &lt;&lt; PB2)<br /><br />#define LCD_E_DIRDDRC<br />#define LCD_E_PORTPORTC<br />#define LCD_E_PINPINC<br />#define LCD_E(1 &lt;&lt; PC5)<br /><br />#define LCD_DB4_DIRDDRD<br />#define LCD_DB4_PORTPORTD<br />#define LCD_DB4_PINPIND<br />#define LCD_DB4(1 &lt;&lt; PD5)<br /><br />#define LCD_DB5_DIRDDRD<br />#define LCD_DB5_PORTPORTD<br />#define LCD_DB5_PINPIND<br />#define LCD_DB5(1 &lt;&lt; PD6)<br /><br />#define LCD_DB6_DIRDDRD<br />#define LCD_DB6_PORTPORTD<br />#define LCD_DB6_PINPIND<br />#define LCD_DB6(1 &lt;&lt; PD7)<br /><br />#define LCD_DB7_DIRDDRB<br />#define LCD_DB7_PORTPORTB<br />#define LCD_DB7_PINPINB<br />#define LCD_DB7(1 &lt;&lt; PB0)<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Instrukcje kontrolera Hitachi HD44780<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />#define HD44780_CLEAR0x01<br /><br />#define HD44780_HOME0x02<br /><br />#define HD44780_ENTRY_MODE0x04<br />#define HD44780_EM_SHIFT_CURSOR0<br />#define HD44780_EM_SHIFT_DISPLAY1<br />#define HD44780_EM_DECREMENT0<br />#define HD44780_EM_INCREMENT2<br /><br />#define HD44780_DISPLAY_ONOFF0x08<br />#define HD44780_DISPLAY_OFF0<br />#define HD44780_DISPLAY_ON4<br />#define HD44780_CURSOR_OFF0<br />#define HD44780_CURSOR_ON2<br />#define HD44780_CURSOR_NOBLINK0<br />#define HD44780_CURSOR_BLINK1<br /><br />#define HD44780_DISPLAY_CURSOR_SHIFT0x10<br />#define HD44780_SHIFT_CURSOR0<br />#define HD44780_SHIFT_DISPLAY8<br />#define HD44780_SHIFT_LEFT0<br />#define HD44780_SHIFT_RIGHT4<br /><br />#define HD44780_FUNCTION_SET0x20<br />#define HD44780_FONT5x70<br />#define HD44780_FONT5x104<br />#define HD44780_ONE_LINE0<br />#define HD44780_TWO_LINE8<br />#define HD44780_4_BIT0<br />#define HD44780_8_BIT16<br /><br />#define HD44780_CGRAM_SET0x40<br /><br />#define HD44780_DDRAM_SET0x80<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Deklaracje funkcji<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />void LCD_WriteCommand(unsigned char);<br />unsigned char LCD_ReadStatus(void);<br />void LCD_WriteData(uint16_t);<br />unsigned char LCD_ReadData(void);<br />void LCD_WriteText(char *);<br />void LCD_GoTo(unsigned char, unsigned char);<br />void LCD_Clear(void);<br />void LCD_Home(void);<br />void LCD_Initalize(void);<br />void LCD_INT (uint16_t);<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.h<br />//<br />//-------------------------------------------------------------------------------------------------[/syntax]<br /><br />w pliku h dopisałem jedynue definicje  funkcji LCD_INT<br /><br /><br />a tu C<br /><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.c<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &quot;HD44780.h&quot;<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_OutNibble(unsigned char nibbleToWrite)<br />{<br /><br />if(nibbleToWrite &amp; 0x01)<br />LCD_DB4_PORT |= LCD_DB4;<br />else<br />LCD_DB4_PORT  &amp;= ~LCD_DB4;<br /><br />if(nibbleToWrite &amp; 0x02)<br />LCD_DB5_PORT |= LCD_DB5;<br />else<br />LCD_DB5_PORT  &amp;= ~LCD_DB5;<br /><br />if(nibbleToWrite &amp; 0x04)<br />LCD_DB6_PORT |= LCD_DB6;<br />else<br />LCD_DB6_PORT  &amp;= ~LCD_DB6;<br /><br />if(nibbleToWrite &amp; 0x08)<br />LCD_DB7_PORT |= LCD_DB7;<br />else<br />LCD_DB7_PORT  &amp;= ~LCD_DB7;<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char _LCD_InNibble(void)<br />{<br />unsigned char tmp = 0;<br /><br />if(LCD_DB4_PIN &amp; LCD_DB4)<br />tmp |= (1 &lt;&lt; 0);<br />if(LCD_DB5_PIN &amp; LCD_DB5)<br />tmp |= (1 &lt;&lt; 1);<br />if(LCD_DB6_PIN &amp; LCD_DB6)<br />tmp |= (1 &lt;&lt; 2);<br />if(LCD_DB7_PIN &amp; LCD_DB7)<br />tmp |= (1 &lt;&lt; 3);<br />return tmp;<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu bajtu do wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_Write(unsigned char dataToWrite)<br />{<br />LCD_DB4_DIR |= LCD_DB4;<br />LCD_DB5_DIR |= LCD_DB5;<br />LCD_DB6_DIR |= LCD_DB6;<br />LCD_DB7_DIR |= LCD_DB7;<br /><br />LCD_RW_PORT &amp;= ~LCD_RW;<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite &gt;&gt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite);<br />LCD_E_PORT &amp;= ~LCD_E;<br />while(LCD_ReadStatus()&amp;0x80);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu bajtu z wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />unsigned char _LCD_Read(void)<br />{<br />unsigned char tmp = 0;<br />LCD_DB4_DIR &amp;= ~LCD_DB4;<br />LCD_DB5_DIR &amp;= ~LCD_DB5;<br />LCD_DB6_DIR &amp;= ~LCD_DB6;<br />LCD_DB7_DIR &amp;= ~LCD_DB7;<br /><br />LCD_RW_PORT |= LCD_RW;<br />LCD_E_PORT |= LCD_E;<br />tmp |= (_LCD_InNibble() &lt;&lt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />tmp |= _LCD_InNibble();<br />LCD_E_PORT &amp;= ~LCD_E;<br />return tmp;<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu rozkazu do wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteCommand(unsigned char commandToWrite)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />_LCD_Write(commandToWrite);<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu bajtu statusowego<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadStatus(void)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />return _LCD_Read();<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu danych do pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteData(uint16_t dataToWrite)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />_LCD_Write(dataToWrite);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu danych z pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadData(void)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />return _LCD_Read();<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wyświetlenia napisu na wyswietlaczu.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteText(char * text)<br />{<br />while(*text)<br />  LCD_WriteData(*text++);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja ustawienia współrzędnych ekranowych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_GoTo(unsigned char x, unsigned char y)<br />{<br />LCD_WriteCommand(HD44780_DDRAM_SET | (x + (0x40 * y)));<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja czyszczenia ekranu wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Clear(void)<br />{<br />LCD_WriteCommand(HD44780_CLEAR);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja przywrócenia początkowych współrzędnych wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Home(void)<br />{<br />LCD_WriteCommand(HD44780_HOME);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Procedura inicjalizacji kontrolera HD44780.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Initalize(void)<br />{<br />unsigned char i;<br />LCD_DB4_DIR |= LCD_DB4; // Konfiguracja kierunku pracy wyprowadzeń<br />LCD_DB5_DIR |= LCD_DB5; //<br />LCD_DB6_DIR |= LCD_DB6; //<br />LCD_DB7_DIR |= LCD_DB7; //<br />LCD_E_DIR |= LCD_E;   //<br />LCD_RS_DIR |= LCD_RS;  //<br />LCD_RW_DIR |= LCD_RW;  //<br />_delay_ms(150); // oczekiwanie na ustalibizowanie się napiecia zasilajacego<br />LCD_RS_PORT &amp;= ~LCD_RS; // wyzerowanie linii RS<br />LCD_E_PORT &amp;= ~LCD_E;  // wyzerowanie linii E<br />LCD_RW_PORT &amp;= ~LCD_RW;<br />for(i = 0; i &lt; 3; i++) // trzykrotne powtórzenie bloku instrukcji<br />  {<br />  LCD_E_PORT |= LCD_E; //  E = 1<br />  _LCD_OutNibble(0x03); // tryb 8-bitowy<br />  LCD_E_PORT &amp;= ~LCD_E; // E = 0<br />  _delay_ms(5); // czekaj 5ms<br />  }<br /><br />LCD_E_PORT |= LCD_E; // E = 1<br />_LCD_OutNibble(0x02); // tryb 4-bitowy<br />LCD_E_PORT &amp;= ~LCD_E; // E = 0<br /><br />_delay_ms(1); // czekaj 1ms <br />LCD_WriteCommand(HD44780_FUNCTION_SET | HD44780_FONT5x7 | HD44780_TWO_LINE | HD44780_4_BIT); // interfejs 4-bity, 2-linie, znak 5x7<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_OFF); // wyłączenie wyswietlacza<br />LCD_WriteCommand(HD44780_CLEAR); // czyszczenie zawartosći pamieci DDRAM<br />LCD_WriteCommand(HD44780_ENTRY_MODE | HD44780_EM_SHIFT_CURSOR | HD44780_EM_INCREMENT);// inkrementaja adresu i przesuwanie kursora<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_ON | HD44780_CURSOR_OFF | HD44780_CURSOR_NOBLINK); // włącz LCD, bez kursora i mrugania<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.c<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br /><br />void LCD_INT (uint16_t doprzetworzenia)<br />{<br />char bufor&#91;17&#93;;<br />LCD_WriteText(itoa (doprzetworzenia, bufor, 10));<br />}[/syntax]<br /><br /><br />Chciałbym to jak najszybciej zrobić(zdać ten cenzura projekt) zeby móc od 0 przekopać <span style="color: #4000FF">BB</span> i od podstaw robić wszystko i sie tego pożądnie nauczyć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 13 gru 2013, o 19:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-13T18:54:53+01:00</updated>
<published>2013-12-13T18:54:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60984#p60984</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60984#p60984"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60984#p60984"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />No i problem powraca jak bumerang.... Nie wiem czy to takie trudne czy ja taki tempy, ale do rzeczy wróciłem do pisania dalej programu a chciałem juz w ten weekend go skonczyć, a wiec napisałem sobie prostą funkcje konwersja która ma mi zmienić wyświetlane krzaczki z ADCW na ładne cyferki ale jak zwykle nic nie chce działać... funkcja jest na samym dole a odwołanie do niej trochę wyżej, układ zachowuje sie ze swieci sie 1 znaczek i nic wiecej i nie wiem co robić, zapętlac sie nie zapetla bo mogego wyłączyć przyciskiem<br /><br />[syntax=c]uint16_t pomiar ( uint8_t kanal)  //funkcja pomiaru ADC<br />{<br /><br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br /><br />ADCSRA |= ( 1 &lt;&lt; ADSC);<br /><br />while (ADCSRA &amp; ( 1 &lt;&lt; ADSC));<br /><br />return ADCW;<br /><br />}<br /><br />uint16_t konwersja ( uint16_t wynikpomiaru )<br />{<br /><br />char bufor &#91;150&#93; ;<br />itoa (wynikpomiaru , bufor , 10);<br />return TEMP;<br /><br />}[/syntax]<br /></div><br />I to Ci się kompiluje bez błędów i warningów?<br />Nie bardzo chce mi się w to wierzyć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 13 gru 2013, o 18:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-13T17:04:29+01:00</updated>
<published>2013-12-13T17:04:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60977#p60977</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60977#p60977"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=60977#p60977"><![CDATA[
No i problem powraca jak bumerang.... Nie wiem czy to takie trudne czy ja taki tempy, ale do rzeczy wróciłem do pisania dalej programu a chciałem juz w ten weekend go skonczyć, a wiec napisałem sobie prostą funkcje konwersja która ma mi zmienić wyświetlane krzaczki z ADCW na ładne cyferki ale jak zwykle nic nie chce działać... funkcja jest na samym dole a odwołanie do niej trochę wyżej, układ zachowuje sie ze swieci sie 1 znaczek i nic wiecej i nie wiem co robić, zapętlac sie nie zapetla bo mogego wyłączyć przyciskiem<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />//#include &quot;HD44780.h&quot;<br />#include &quot;HD44780.c&quot;<br /><br />//definicje dla procesora<br />//dla diody LED<br /><br />#define LED1_PIN (1&lt;&lt;PD0)  //def pinu naktorym jest dioda<br />#define LED_TOG1 PORTD ^= LED1_PIN   //makro def zmiana stanu diody<br /><br />#define LED2_PIN (1&lt;&lt;PD1)  //def pinu naktorym jest dioda<br />#define LED_TOG2 PORTD ^= LED2_PIN   //makro def zmiana stanu diody<br /><br />uint16_t pomiar ( uint8_t kanal);<br />uint16_t konwersja ( uint16_t wynikpomiaru );<br /><br />//dla klawisza<br /><br />#define KEY1_PIN (1&lt;&lt;PC4)  //def pinu przycisku aktywacja<br />#define KEY_DOWN1 ! (PINC &amp; KEY1_PIN)   //stan przycisku aktywacja<br /><br />#define KEY2_PIN (1&lt;&lt;PC3)  //def pinu przycisku aktywacja<br />#define KEY_DOWN2 ! (PINC &amp; KEY2_PIN)  //stan przycisku aktywacja<br /><br />#define KEY3_PIN (1&lt;&lt;PC2)  //def pinu przycisku stop<br />#define KEY_DOWN3 ! (PINC &amp; KEY3_PIN) //stan przycisku stop<br /><br />uint16_t TEMP;<br /><br />int main (void) //glowna funkcja<br />{<br /><br />int x = 0, y = 0;<br /><br />uint16_t wynik = 0;<br />uint16_t tmp2 = 0;<br /><br /><br />DDRD |= LED1_PIN; //kirtunek pinu leda aktywacji wyjsciowy<br />PORTD |= LED1_PIN; //wylaczenie<br /><br />DDRD |= LED2_PIN; //kirtunek pinu leda startu wyjsciowy<br />PORTD |= LED2_PIN; //wylaczenie<br /><br />DDRC &amp;= ~KEY1_PIN; //kierunek pinu na wejsciowydla aktywacji!<br />PORTC |= KEY1_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY2_PIN; //kierunek pinu na wejsciowydla stopu!!<br />PORTC |= KEY2_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY3_PIN; //kierunek pinu na wejsciowy dla stopu!!<br />PORTC |= KEY3_PIN; //posciagniećie VCC dla stotpu!<br /><br />//..............................ADC..........................<br />ADCSRA |= (1 &lt;&lt; ADEN);  //turn on ADC<br /><br />ADCSRA |= (1 &lt;&lt; ADPS1); //preskaler 64<br />ADCSRA |= (1 &lt;&lt; ADPS2);<br /><br />ADMUX |=  (1 &lt;&lt; REFS0);// wewnętrzne Uref<br />ADMUX |=  (1 &lt;&lt; REFS1);<br /><br />LCD_Initalize();<br /><br />LCD_Clear();<br />//_delay_ms(50);<br /><br />/*for(uint8_t i = 57;i&gt;=48;i--)  //kody asci dla cyfr 9-0<br />{<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;Laduje dane&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteData(i);<br />_delay_ms(1000);<br />LCD_Clear();<br />}<br /><br />*/<br /><br />LCD_Clear();<br />LCD_GoTo(1,0);<br />LCD_WriteText(&quot;Aktywuj uklad!&quot;);<br /><br /><br /><br />while ( 1 )<br />{<br /><br />//...................przycisk aktywacji!!.................<br /><br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);  //niekontrolowane kilkurotne nacisnięcie - zabezpieczenie<br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);<br />if (KEY_DOWN1)<br />{<br />if (x == 0)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad aktywny&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;nacisnij start&quot;);<br />LED_TOG1;<br />//_delay_ms(200);<br />x = 1;<br />}<br />}<br />}<br />}<br /><br />//przycisk startu<br /><br />if (KEY_DOWN2)<br />{<br />_delay_ms(80);<br />if (KEY_DOWN2)<br />{<br />if (x == 1)<br />{<br />if (y == 0)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wGwiazde&quot;);<br />//LCD_GoTo(0,1);<br />//LCD_WriteText(&quot; I=&quot;);<br />LED_TOG2;<br />//_delay_ms(250);<br />y = 1;<br /><br />}<br />}<br />}<br />}<br /><br />//....................przycisk stopu..................<br /><br />if (KEY_DOWN3)<br />{<br />_delay_ms(30);<br />if (KEY_DOWN3)<br />{<br />if (x == 1)<br />{<br />LED_TOG1;<br />LED_TOG2;<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wylaczony&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;mozesz aktywowac&quot;);<br />x = 0;<br />y = 0;<br />}<br />}<br />}<br /><br />if (y == 1)<br />{<br />wynik = pomiar( PC0 );<br />tmp2 = konwersja(wynik);<br /><br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;I= &quot;);<br />LCD_WriteData( tmp2 );<br /><br />_delay_ms(200);<br />}<br /><br />}  //od while(1)<br /><br /><br /><br /><br /><br />} // od maina<br /><br /><br />uint16_t pomiar ( uint8_t kanal)  //funkcja pomiaru ADC<br />{<br /><br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br /><br />ADCSRA |= ( 1 &lt;&lt; ADSC);<br /><br />while (ADCSRA &amp; ( 1 &lt;&lt; ADSC));<br /><br />return ADCW;<br /><br />}<br /><br />uint16_t konwersja ( uint16_t wynikpomiaru )<br />{<br /><br />char bufor &#91;150&#93; ;<br />itoa (wynikpomiaru , bufor , 10);<br />return TEMP;<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 13 gru 2013, o 17:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-06T23:08:44+01:00</updated>
<published>2013-12-06T23:08:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59962#p59962</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59962#p59962"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59962#p59962"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />wydanie 2 ma 2 tygodnie...<br /></div><br />No to niestety tej przy sobie nie mam. Została w pracy...<br />Ale rozdziały są na pewno takie same... więc w przybliżeniu:<br />rozdział 5.5 o LCD pod koniec masz funkcję która nazywa się lcd_int<br />Jest kompilowana warunkowo<br />W bibliotekach Radzia jej nie ma więc musisz sobie dopisać do biblioteki której używasz<br />Zaś o ADC to sugeruję przeczytać cały rozdział na pewno wiele się rozjaśni.<br /><span style="font-size: 50%; line-height: normal">I jest też taki malutki przycisk pomógł, ale to już nie w BB</span><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />A tak rozdziały. W mojej to są<br />5.5 Wyświetlacz LCD to ważne dla wyświetlania<br />5.7 Pomiar napięcia za pomocą ADC - to Ci na 1000% pomoże w pracy z ADC bo tu widzę b. ciężko Ci idzie<br /><br />Dobranoc i miłego czytania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 6 gru 2013, o 23:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-06T23:03:10+01:00</updated>
<published>2013-12-06T23:03:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59960#p59960</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59960#p59960"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59960#p59960"><![CDATA[
wydanie 2 ma 2 tygodnie... lub chociaż nazwę rozdziału<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 6 gru 2013, o 23:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-06T23:00:04+01:00</updated>
<published>2013-12-06T23:00:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59959#p59959</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59959#p59959"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59959#p59959"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent">Są do tego odpowiednie funkcje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /></div><br /><br />to to od jutra szukam tych funkcji... mam BB ale nie moge się odnaleźć w nim... dobra jutro bd szukał tego pozdro!</div><br />A którą wersję BB?<br />Bo jak mam taką samą to podpowiem na której stronie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 6 gru 2013, o 23:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-06T22:58:26+01:00</updated>
<published>2013-12-06T22:58:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59958#p59958</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59958#p59958"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59958#p59958"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Są do tego odpowiednie funkcje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /></div><br /><br />to to od jutra szukam tych funkcji... mam BB ale nie moge się odnaleźć w nim... dobra jutro bd szukał tego pozdro!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 6 gru 2013, o 22:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-06T22:51:07+01:00</updated>
<published>2013-12-06T22:51:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59957#p59957</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59957#p59957"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59957#p59957"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br /><a href="http://forum.atnel.pl/_obrazki/o/2069/6a811fb6e64d0362f38db293074c9bda.gif"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2069/6a811fb6e64d0362f38db293074c9bda.gif" alt="Obrazek" /></a><br /><br />pokręciłem potencjometrem i pokazuje wg tej tabeli od okolo 39 - 43 ale to caly czas ascii ;/ a przydały by sie cyferki i to najlepiej dziesiętne<br /></div><br />A zajrzałeś do BB? no w taki sposób jak to wysyłasz nie możesz dostać nic innego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />To nie jest wynik bezpośrednio w woltach tylko właśnie jakieś cyferki które wysyłasz do wyświetlacza. A wyświetlacz traktuje to jako ASCII<br />Bo jak ma inaczej traktować?<br />Jak chcesz cyferki to musisz to:<br /> przeliczyć<br /> zmienić otrzymane liczby na odpowiadające im kody ASCII<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />Są do tego odpowiednie funkcje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 6 gru 2013, o 22:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-06T22:46:16+01:00</updated>
<published>2013-12-06T22:46:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59955#p59955</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59955#p59955"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59955#p59955"><![CDATA[
<a href="http://forum.atnel.pl/_obrazki/o/2069/6a811fb6e64d0362f38db293074c9bda.gif"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2069/6a811fb6e64d0362f38db293074c9bda.gif" alt="Obrazek" /></a><br /><br />pokręciłem potencjometrem i pokazuje wg tej tabeli od okolo 39 - 43 ale to caly czas ascii ;/ a przydały by sie cyferki i to najlepiej dziesiętne<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 6 gru 2013, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-06T22:43:53+01:00</updated>
<published>2013-12-06T22:43:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59954#p59954</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59954#p59954"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59954#p59954"><![CDATA[
tzn. co nie bardzo?<br />Proszę pisać konkretniej... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 6 gru 2013, o 22:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-06T22:39:03+01:00</updated>
<published>2013-12-06T22:39:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59953#p59953</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59953#p59953"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59953#p59953"><![CDATA[
yyyy no nie bardzo<br /><br />main.c<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />//#include &quot;HD44780.h&quot;<br />#include &quot;HD44780.c&quot;<br /><br />//definicje dla procesora<br />//dla diody LED<br /><br />#define LED1_PIN (1&lt;&lt;PD0)  //def pinu naktorym jest dioda<br />#define LED_TOG1 PORTD ^= LED1_PIN   //makro def zmiana stanu diody<br /><br />#define LED2_PIN (1&lt;&lt;PD1)  //def pinu naktorym jest dioda<br />#define LED_TOG2 PORTD ^= LED2_PIN   //makro def zmiana stanu diody<br /><br />uint16_t pomiar ( uint8_t kanal);<br /><br />//dla klawisza<br /><br />#define KEY1_PIN (1&lt;&lt;PC4)  //def pinu przycisku aktywacja<br />#define KEY_DOWN1 ! (PINC &amp; KEY1_PIN)   //stan przycisku aktywacja<br /><br />#define KEY2_PIN (1&lt;&lt;PC3)  //def pinu przycisku aktywacja<br />#define KEY_DOWN2 ! (PINC &amp; KEY2_PIN)  //stan przycisku aktywacja<br /><br />#define KEY3_PIN (1&lt;&lt;PC2)  //def pinu przycisku stop<br />#define KEY_DOWN3 ! (PINC &amp; KEY3_PIN) //stan przycisku stop<br /><br /><br /><br />int main (void) //glowna funkcja<br />{<br /><br />int x = 0, y = 0;<br /><br />uint16_t wynik = 0;<br /><br />DDRD |= LED1_PIN; //kirtunek pinu leda aktywacji wyjsciowy<br />PORTD |= LED1_PIN; //wylaczenie<br /><br />DDRD |= LED2_PIN; //kirtunek pinu leda startu wyjsciowy<br />PORTD |= LED2_PIN; //wylaczenie<br /><br />DDRC &amp;= ~KEY1_PIN; //kierunek pinu na wejsciowydla aktywacji!<br />PORTC |= KEY1_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY2_PIN; //kierunek pinu na wejsciowydla stopu!!<br />PORTC |= KEY2_PIN; //posciagniećie VCC<br /><br />DDRC &amp;= ~KEY3_PIN; //kierunek pinu na wejsciowy dla stopu!!<br />PORTC |= KEY3_PIN; //posciagniećie VCC dla stotpu!<br /><br />//..............................ADC..........................<br />ADCSRA |= (1 &lt;&lt; ADEN);  //turn on ADC<br /><br />ADCSRA |= (1 &lt;&lt; ADPS1); //preskaler 64<br />ADCSRA |= (1 &lt;&lt; ADPS2);<br /><br />ADMUX |=  (1 &lt;&lt; REFS0);// wewnętrzne Uref<br />ADMUX |=  (1 &lt;&lt; REFS1);<br /><br />LCD_Initalize();<br /><br />LCD_Clear();<br />//_delay_ms(50);<br /><br />/*for(uint8_t i = 57;i&gt;=48;i--)  //kody asci dla cyfr 9-0<br />{<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;Laduje dane&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteData(i);<br />_delay_ms(1000);<br />LCD_Clear();<br />}<br /><br />*/<br /><br />LCD_Clear();<br />LCD_GoTo(1,0);<br />LCD_WriteText(&quot;Aktywuj uklad!&quot;);<br /><br /><br /><br />while ( 1 )<br />{<br /><br />//...................przycisk aktywacji!!.................<br /><br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);  //niekontrolowane kilkurotne nacisnięcie - zabezpieczenie<br />if (KEY_DOWN1)<br />{<br />_delay_ms(500);<br />if (KEY_DOWN1)<br />{<br />if (x == 0)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad aktywny&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;nacisnij start&quot;);<br />LED_TOG1;<br />//_delay_ms(200);<br />x = 1;<br />}<br />}<br />}<br />}<br /><br />//przycisk startu<br /><br />if (KEY_DOWN2)<br />{<br />_delay_ms(80);<br />if (KEY_DOWN2)<br />{<br />if (x == 1)<br />{<br />if (y == 0)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wGwiazde&quot;);<br />//LCD_GoTo(0,1);<br />//LCD_WriteText(&quot; I=&quot;);<br />LED_TOG2;<br />//_delay_ms(250);<br />y = 1;<br /><br />}<br />}<br />}<br />}<br /><br />//....................przycisk stopu..................<br /><br />if (KEY_DOWN3)<br />{<br />_delay_ms(30);<br />if (KEY_DOWN3)<br />{<br />if (x == 1)<br />{<br />LED_TOG1;<br />LED_TOG2;<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;uklad wylaczony&quot;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;mozesz aktywowac&quot;);<br />x = 0;<br />y = 0;<br />}<br />}<br />}<br /><br />if (y == 1)<br />{<br />wynik = pomiar( PC0 );<br />LCD_GoTo(0,1);<br />LCD_WriteData(wynik);<br />_delay_ms(200);<br />}<br /><br />}  //od while(1)<br /><br /><br /><br /><br /><br />} // od maina<br /><br /><br />uint16_t pomiar ( uint8_t kanal)<br />{<br /><br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br /><br />ADCSRA |= ( 1 &lt;&lt; ADSC);<br /><br />while (ADCSRA &amp; ( 1 &lt;&lt; ADSC));<br /><br />return ADCW;<br /><br />}[/syntax]<br /><br />HD44780.h<br /><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.h<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Konfiguracja sygnałów sterujących wyświetlaczem.<br />// Można zmienić stosownie do potrzeb.<br />//<br />//-------------------------------------------------------------------------------------------------<br />#define LCD_RS_DIRDDRB<br />#define LCD_RS_PORT PORTB<br />#define LCD_RS_PINPINB<br />#define LCD_RS(1 &lt;&lt; PB1)<br /><br />#define LCD_RW_DIRDDRB<br />#define LCD_RW_PORTPORTB<br />#define LCD_RW_PINPINB<br />#define LCD_RW(1 &lt;&lt; PB2)<br /><br />#define LCD_E_DIRDDRC<br />#define LCD_E_PORTPORTC<br />#define LCD_E_PINPINC<br />#define LCD_E(1 &lt;&lt; PC5)<br /><br />#define LCD_DB4_DIRDDRD<br />#define LCD_DB4_PORTPORTD<br />#define LCD_DB4_PINPIND<br />#define LCD_DB4(1 &lt;&lt; PD5)<br /><br />#define LCD_DB5_DIRDDRD<br />#define LCD_DB5_PORTPORTD<br />#define LCD_DB5_PINPIND<br />#define LCD_DB5(1 &lt;&lt; PD6)<br /><br />#define LCD_DB6_DIRDDRD<br />#define LCD_DB6_PORTPORTD<br />#define LCD_DB6_PINPIND<br />#define LCD_DB6(1 &lt;&lt; PD7)<br /><br />#define LCD_DB7_DIRDDRB<br />#define LCD_DB7_PORTPORTB<br />#define LCD_DB7_PINPINB<br />#define LCD_DB7(1 &lt;&lt; PB0)<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Instrukcje kontrolera Hitachi HD44780<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />#define HD44780_CLEAR0x01<br /><br />#define HD44780_HOME0x02<br /><br />#define HD44780_ENTRY_MODE0x04<br />#define HD44780_EM_SHIFT_CURSOR0<br />#define HD44780_EM_SHIFT_DISPLAY1<br />#define HD44780_EM_DECREMENT0<br />#define HD44780_EM_INCREMENT2<br /><br />#define HD44780_DISPLAY_ONOFF0x08<br />#define HD44780_DISPLAY_OFF0<br />#define HD44780_DISPLAY_ON4<br />#define HD44780_CURSOR_OFF0<br />#define HD44780_CURSOR_ON2<br />#define HD44780_CURSOR_NOBLINK0<br />#define HD44780_CURSOR_BLINK1<br /><br />#define HD44780_DISPLAY_CURSOR_SHIFT0x10<br />#define HD44780_SHIFT_CURSOR0<br />#define HD44780_SHIFT_DISPLAY8<br />#define HD44780_SHIFT_LEFT0<br />#define HD44780_SHIFT_RIGHT4<br /><br />#define HD44780_FUNCTION_SET0x20<br />#define HD44780_FONT5x70<br />#define HD44780_FONT5x104<br />#define HD44780_ONE_LINE0<br />#define HD44780_TWO_LINE8<br />#define HD44780_4_BIT0<br />#define HD44780_8_BIT16<br /><br />#define HD44780_CGRAM_SET0x40<br /><br />#define HD44780_DDRAM_SET0x80<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Deklaracje funkcji<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />void LCD_WriteCommand(unsigned char);<br />unsigned char LCD_ReadStatus(void);<br />void LCD_WriteData(uint16_t);<br />unsigned char LCD_ReadData(void);<br />void LCD_WriteText(char *);<br />void LCD_GoTo(unsigned char, unsigned char);<br />void LCD_Clear(void);<br />void LCD_Home(void);<br />void LCD_Initalize(void);<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.h<br />//<br />//-------------------------------------------------------------------------------------------------[/syntax]<br /><br />HD44780.c<br /><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.c<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &quot;HD44780.h&quot;<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_OutNibble(unsigned char nibbleToWrite)<br />{<br /><br />if(nibbleToWrite &amp; 0x01)<br />LCD_DB4_PORT |= LCD_DB4;<br />else<br />LCD_DB4_PORT  &amp;= ~LCD_DB4;<br /><br />if(nibbleToWrite &amp; 0x02)<br />LCD_DB5_PORT |= LCD_DB5;<br />else<br />LCD_DB5_PORT  &amp;= ~LCD_DB5;<br /><br />if(nibbleToWrite &amp; 0x04)<br />LCD_DB6_PORT |= LCD_DB6;<br />else<br />LCD_DB6_PORT  &amp;= ~LCD_DB6;<br /><br />if(nibbleToWrite &amp; 0x08)<br />LCD_DB7_PORT |= LCD_DB7;<br />else<br />LCD_DB7_PORT  &amp;= ~LCD_DB7;<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char _LCD_InNibble(void)<br />{<br />unsigned char tmp = 0;<br /><br />if(LCD_DB4_PIN &amp; LCD_DB4)<br />tmp |= (1 &lt;&lt; 0);<br />if(LCD_DB5_PIN &amp; LCD_DB5)<br />tmp |= (1 &lt;&lt; 1);<br />if(LCD_DB6_PIN &amp; LCD_DB6)<br />tmp |= (1 &lt;&lt; 2);<br />if(LCD_DB7_PIN &amp; LCD_DB7)<br />tmp |= (1 &lt;&lt; 3);<br />return tmp;<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu bajtu do wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_Write(unsigned char dataToWrite)<br />{<br />LCD_DB4_DIR |= LCD_DB4;<br />LCD_DB5_DIR |= LCD_DB5;<br />LCD_DB6_DIR |= LCD_DB6;<br />LCD_DB7_DIR |= LCD_DB7;<br /><br />LCD_RW_PORT &amp;= ~LCD_RW;<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite &gt;&gt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite);<br />LCD_E_PORT &amp;= ~LCD_E;<br />while(LCD_ReadStatus()&amp;0x80);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu bajtu z wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />unsigned char _LCD_Read(void)<br />{<br />unsigned char tmp = 0;<br />LCD_DB4_DIR &amp;= ~LCD_DB4;<br />LCD_DB5_DIR &amp;= ~LCD_DB5;<br />LCD_DB6_DIR &amp;= ~LCD_DB6;<br />LCD_DB7_DIR &amp;= ~LCD_DB7;<br /><br />LCD_RW_PORT |= LCD_RW;<br />LCD_E_PORT |= LCD_E;<br />tmp |= (_LCD_InNibble() &lt;&lt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />tmp |= _LCD_InNibble();<br />LCD_E_PORT &amp;= ~LCD_E;<br />return tmp;<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu rozkazu do wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteCommand(unsigned char commandToWrite)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />_LCD_Write(commandToWrite);<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu bajtu statusowego<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadStatus(void)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />return _LCD_Read();<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu danych do pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteData(uint16_t dataToWrite)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />_LCD_Write(dataToWrite);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu danych z pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadData(void)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />return _LCD_Read();<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wyświetlenia napisu na wyswietlaczu.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteText(char * text)<br />{<br />while(*text)<br />  LCD_WriteData(*text++);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja ustawienia współrzędnych ekranowych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_GoTo(unsigned char x, unsigned char y)<br />{<br />LCD_WriteCommand(HD44780_DDRAM_SET | (x + (0x40 * y)));<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja czyszczenia ekranu wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Clear(void)<br />{<br />LCD_WriteCommand(HD44780_CLEAR);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja przywrócenia początkowych współrzędnych wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Home(void)<br />{<br />LCD_WriteCommand(HD44780_HOME);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Procedura inicjalizacji kontrolera HD44780.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Initalize(void)<br />{<br />unsigned char i;<br />LCD_DB4_DIR |= LCD_DB4; // Konfiguracja kierunku pracy wyprowadzeń<br />LCD_DB5_DIR |= LCD_DB5; //<br />LCD_DB6_DIR |= LCD_DB6; //<br />LCD_DB7_DIR |= LCD_DB7; //<br />LCD_E_DIR |= LCD_E;   //<br />LCD_RS_DIR |= LCD_RS;  //<br />LCD_RW_DIR |= LCD_RW;  //<br />_delay_ms(150); // oczekiwanie na ustalibizowanie się napiecia zasilajacego<br />LCD_RS_PORT &amp;= ~LCD_RS; // wyzerowanie linii RS<br />LCD_E_PORT &amp;= ~LCD_E;  // wyzerowanie linii E<br />LCD_RW_PORT &amp;= ~LCD_RW;<br />for(i = 0; i &lt; 3; i++) // trzykrotne powtórzenie bloku instrukcji<br />  {<br />  LCD_E_PORT |= LCD_E; //  E = 1<br />  _LCD_OutNibble(0x03); // tryb 8-bitowy<br />  LCD_E_PORT &amp;= ~LCD_E; // E = 0<br />  _delay_ms(5); // czekaj 5ms<br />  }<br /><br />LCD_E_PORT |= LCD_E; // E = 1<br />_LCD_OutNibble(0x02); // tryb 4-bitowy<br />LCD_E_PORT &amp;= ~LCD_E; // E = 0<br /><br />_delay_ms(1); // czekaj 1ms <br />LCD_WriteCommand(HD44780_FUNCTION_SET | HD44780_FONT5x7 | HD44780_TWO_LINE | HD44780_4_BIT); // interfejs 4-bity, 2-linie, znak 5x7<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_OFF); // wyłączenie wyswietlacza<br />LCD_WriteCommand(HD44780_CLEAR); // czyszczenie zawartosći pamieci DDRAM<br />LCD_WriteCommand(HD44780_ENTRY_MODE | HD44780_EM_SHIFT_CURSOR | HD44780_EM_INCREMENT);// inkrementaja adresu i przesuwanie kursora<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_ON | HD44780_CURSOR_OFF | HD44780_CURSOR_NOBLINK); // włącz LCD, bez kursora i mrugania<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.c<br />//<br />//-------------------------------------------------------------------------------------------------[/syntax]<br /><br />Jak widać zmieniłem a oto wynik <br /><br /><a href="http://www.youtube.com/watch?v=zCAwBsVdCw8&amp;feature=youtu.be"  class="postlink">http://www.youtube.com/watch?v=zCAwBsVdCw8&amp;feature=youtu.be</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 6 gru 2013, o 22:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-06T22:26:47+01:00</updated>
<published>2013-12-06T22:26:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59951#p59951</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59951#p59951"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59951#p59951"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />dobra chyba widze LCD_WriteData wysyła zmienną unsigned char a ja chce dać uint16_t.....<br /><br />dobrze widzę?<br /></div><br />Otóż to. Widzisz proste... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />A swoją drogą...<br />Chyba pisałeś, że masz BB?<br />To dlaczego nie korzystasz z bibliotek Mirka tylko Radzia?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br />I jeszcze jedna drobna uwaga.<br />Może to Ci pomoże. W BB od strony 235 masz jak mierzyć i prezentować wynik tak żeby nie było z tym kłopotów.<br /><br />I moim skromnym zdaniem lepiej od razu pisać dobrze (to odnośnie tych delayów). Po co 2 razy robić to samo? <br />Czy nie lepiej od razu zrobić/napisać dobrze i już do tego nie wracać?<br /><br />Ps. mam nadzieję że moje drobne uwagi troszkę Cię naprowadziły na właściwe tory rozumowania... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 6 gru 2013, o 22:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-06T22:25:00+01:00</updated>
<published>2013-12-06T22:25:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59950#p59950</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59950#p59950"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59950#p59950"><![CDATA[
dobra chyba widze LCD_WriteData wysyła zmienną unsigned char a ja chce dać uint16_t.....<br /><br />dobrze widzę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 6 gru 2013, o 22:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-06T22:22:44+01:00</updated>
<published>2013-12-06T22:22:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59949#p59949</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59949#p59949"/>
<title type="html"><![CDATA[Re: Projekt gwiazda trójkąt... i moja walka czas na Waszą po]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4901&amp;p=59949#p59949"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />wrzuciłem poprawionego maina z odpowiednią (na moje) komendą LCD_WriteData<br /><br />W hd 44780.c w 13 linijce jest include o który pytasz....<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />wynik w 35 linijce jest uint16_t wynik = 0;<br /></div><br />I już nie sypie tymi błędami przy kompilacji? mam nadzieję bo nie powinien<br /><br />tak... uint16_t wynik czyli? Jakiego typu jest to zmienna?<br />A co wysyłasz do LCD? czy na pewno to co chcesz? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 6 gru 2013, o 22:22</p><hr />
]]></content>
</entry>
</feed>