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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-01-19T21:18:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5586&amp;mode</id>
<entry>
<author><name><![CDATA[chmielek]]></name></author>
<updated>2014-01-19T21:18:26+01:00</updated>
<published>2014-01-19T21:18:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65727#p65727</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65727#p65727"/>
<title type="html"><![CDATA[Re: Płytka, Atmega32u4 i Kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65727#p65727"><![CDATA[
Ok, ale wydaje mi się, że kod główny będzie tak samo wyglądać jak w przypadku mojej atmegi, Ty jedynie musiałbyś zmienic tylko w bibliotece lcd zmienić porty jak masz podłączone u siebie i w głownym kodzie usatwić gdzie masz port 1-wire do magistrali.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2081">chmielek</a> — 19 sty 2014, o 21:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Józef 63]]></name></author>
<updated>2014-01-19T16:24:16+01:00</updated>
<published>2014-01-19T16:24:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65653#p65653</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65653#p65653"/>
<title type="html"><![CDATA[Re: Płytka, Atmega32u4 i Kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65653#p65653"><![CDATA[
Przerób kod na atmege 32 to sprawdzę.<br />Pozdrawiam serdecznie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=697">Józef 63</a> — 19 sty 2014, o 16:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chmielek]]></name></author>
<updated>2014-01-18T22:23:01+01:00</updated>
<published>2014-01-18T22:23:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65525#p65525</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65525#p65525"/>
<title type="html"><![CDATA[Re: Płytka, Atmega32u4 i Kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65525#p65525"><![CDATA[
Ok, dzięki u mnie też się kompiluje tylko no kurcze chodzi o to że nie mogę sprawdzić czy działa tak jak należy. Nawet nie wiem czy procesor ma tak duże znaczenie chodzi o to żeby zobaczyć faktycznie czy on pobiera dane z czujnika i wyświetla je na wyświetlaczu. Myślę, że nawet na procesorze atmega16/8/32 i innych podobnych działać powinno dlatego jeżeli ktoś ma wyświetlacz, czujnik to prosiłbym o sprawdzenie tego. No bo jakby nie mówić troszkę się zdenerwowałem i zostałem w czarnej <span style="color: #FF0000"><strong>&lt;słownictwo&gt; </strong></span>za przeproszeniem, bo w weekend wszystkie elektroniczne takie sklepy są zamknięte<br /><br /><br /><strong><span style="color: #FF0000">Zaatakował wyjątkowo wredny mod_cenzor  ---&gt; SunRiver </span></strong><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2081">chmielek</a> — 18 sty 2014, o 22:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Józef 63]]></name></author>
<updated>2014-01-18T19:32:15+01:00</updated>
<published>2014-01-18T19:32:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65490#p65490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65490#p65490"/>
<title type="html"><![CDATA[Re: Płytka, Atmega32u4 i Kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65490#p65490"><![CDATA[
Witam. Program przechodzi kompilacje , ale czy działa nie wiem nie mam takiego proc.<br /><a href="http://forum.atnel.pl/_obrazki/o/697/149b55e5a994c84f9f6c49505df81123.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/697/149b55e5a994c84f9f6c49505df81123.jpg" alt="Obrazek" /></a><br />Pozdrawiam serdecznie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=697">Józef 63</a> — 18 sty 2014, o 19:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chmielek]]></name></author>
<updated>2014-01-18T16:30:32+01:00</updated>
<published>2014-01-18T16:30:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65463#p65463</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65463#p65463"/>
<title type="html"><![CDATA[Płytka, Atmega32u4 i Kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5586&amp;p=65463#p65463"><![CDATA[
Witam, pisze tu z małą prośbą o sprawdzenie kogoś mojego kodu, tzn napisałem kod do wyświetlania temperatury z czujnika DS18b20, wszystko fajnie cacy, ale coś popsuło mi się z płytką i USB na niej, co powoduje, że nie mogę nawet wgrać kodu i sprawdzić czy działa. Dlatego pisze do was z prośba o to aby ktoś wrzucił mój kod i sprawdził czy aby na pewno on działa i wyświetla temperaturę. Jest to troszkę pilne bo nawet nie mam innego programatora, sklepy elektroniczne dziś już zamknięte a jest to projekt który mam na poniedziałek. Napisana jest biblioteka do LCD, oraz ściągałem rklibavr.<br /><br />[syntax=c]/*<br /> * TEST2.c<br /> *<br /> * Created: 2014-01-16 20:21:46<br /> *  Author: Rafał<br /> */ <br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;lcd.h&quot;<br /><br />#define WE 7<br />#define Port_1Wire PINF<br />#define Set_1Wire DDRF&amp;=~_BV(WE)<br />#define Clear_1Wire DDRF|=_BV(WE)<br /><br />char buf&#91;8&#93;;//zmienna potrzebnna do konwersji temperatury<br /><br />//Reset magistrali <br />unsigned char Reset_Pulse(void)<br />{<br />unsigned char Presence;<br />Clear_1Wire;  //ustawienie na stan niski<br />_delay_ms(500);  //<br />Set_1Wire;    //ustawienie na stan wysoki<br />_delay_ms(30);<br />//sprawdzenie poziomu lini czy jest w stanie niskim<br />if (bit_is_clear(Port_1Wire,WE)){Presence=1;} else {Presence=0;}<br />//1-odebrano bit, 0- nieaktywne<br />_delay_ms(470);<br />//sprawdzenie poziomu lini<br />if(bit_is_set(Port_1Wire,WE)){Presence=1;}<br />else {Presence=0;}<br />return Presence;  //zwrocenie wartosci<br />}<br /><br />//wysłanie do układu pojedynczego bitu<br />void send(char bit)<br />{<br />  Clear_1Wire; //ustawienie na stan niski<br />  _delay_ms(5);<br />if(bit==1)<br /> Set_1Wire; // zwolnienie magistrali<br /> <br /> _delay_ms(80);<br /> Set_1Wire; <br />}<br /><br />unsigned char read (void)<br />{<br />unsigned Presence=0;<br /><br />Clear_1Wire; //Zstan niski<br />_delay_ms(5);<br />Set_1Wire;    //zwolnienie magistrali<br />_delay_ms(15);<br />if(bit_is_set(Port_1Wire,WE)) Presence=1; else Presence=0;<br />return(Presence);<br />}<br /><br />//wysłanie całego bajtu do układu<br />void send_byte (char wartosc)<br />{<br />unsigned char i; //licznik<br />unsigned char pom; //zmienna pomocnicz<br /><br />for (i=0;i&lt;8;i++)<br />{<br />pom=wartosc&gt;&gt;1; //przesuniecie bitu wprawo<br />pom &amp;= 0x01; //skopiowanie bitu do zmiennej pomocniczej<br />send(pom);<br />}<br />_delay_ms(100);   //czekanie na ustawienie<br />}<br /><br />//zczytanie bajtu<br />unsigned char read_byte (void)<br />{<br />unsigned char i;<br />unsigned char wartosc;<br /><br />for (i=0;i&lt;8;i++)<br />{<br />if (read()) wartosc|=0x01&lt;&lt;i; //zczytywaie po jednym bicie<br />_delay_ms(15); //czekanie<br />}<br />return(wartosc); //zwrot wartosci<br />}<br /><br /><br /><br />int main(void)<br />{<br />    unsigned char sprawdz;<br />char tmp1=0, tmp2=0;<br /><br />LCD_Initalize();    //inicjalizacja LCD<br />LCD_Clear();   //czysczenie wyświetlacza<br />LCD_WriteText(&quot;Termometr&quot;); //jakis napis<br />_delay_ms(200);<br />LCD_Clear();<br />//petla głowna<br />for (;;)<br />{<br />sprawdz=Reset_Pulse(); //impuls reset<br />if(sprawdz==1)<br />{<br />send_byte(0xCC); //skip rom<br />send_byte(0x44); //Convert<br />_delay_ms(750);<br /><br />sprawdz=Reset_Pulse();<br />send_byte(0xCC);<br />send_byte(0xBE);<br /><br />tmp1=read_byte();<br />tmp2=read_byte();<br /><br />sprawdz=Reset_Pulse();<br /><br />float tmp=0;<br />tmp=(float)(tmp1+(tmp2*256))/16; //obliczenie tempreratury<br /><br />dtostrf(tmp,1,1,buf);   //konwersja float na string<br />LCD_GoTo(0,0); //pozycja zerowa<br />LCD_WriteText(buf); //wyswietlenie<br />_delay_ms(200);<br />}<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;brak&quot;);<br />}<br />}[/syntax]<br /><br />a to moja biblioteka do LCD, HD44780<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdio.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_DIRDDRE<br />#define LCD_RS_PORT PORTE<br />#define LCD_RS_PINPINE<br />#define LCD_RS(1 &lt;&lt; PE6)<br /><br />#define LCD_E_DIRDDRB<br />#define LCD_E_PORTPORTB<br />#define LCD_E_PINPINB<br />#define LCD_E(1 &lt;&lt; PB0)<br /><br />#define LCD_DB4_DIRDDRB<br />#define LCD_DB4_PORTPORTB<br />#define LCD_DB4_PINPINB<br />#define LCD_DB4(1 &lt;&lt; PB7)<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_DIRDDRC<br />#define LCD_DB7_PORTPORTC<br />#define LCD_DB7_PINPINC<br />#define LCD_DB7(1 &lt;&lt; PC7)<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(unsigned char);<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 />int a=0;<br />int b=0;<br />char bufor&#91;10&#93;;<br /><br /><br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.h<br />//<br />//------------------------------------------------------------------------------------------------<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_OutNibble(unsigned char nibbleToWrite)<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 wstawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char _LCD_InNibble(void)<br />{<br />unsigned char tmp = 0;<br />if(PINB &amp; _BV(7))<br />tmp |= (1&lt;&lt;0);<br />if(PIND &amp; _BV(1))<br />tmp |= (1&lt;&lt;1);<br />if(PIND &amp; _BV(7))<br />tmp |= (1&lt;&lt;2);<br />if(PINC &amp; _BV(7))<br />tmp |= (1&lt;&lt;3);<br /><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_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 />_delay_us(50);<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 />// Funkcja zapisu danych do pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteData(unsigned char dataToWrite)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />_LCD_Write(dataToWrite);<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 />_delay_ms(15); // 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 /><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 />_delay_ms(2);<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 />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2081">chmielek</a> — 18 sty 2014, o 16:30</p><hr />
]]></content>
</entry>
</feed>