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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-11T18:47:44+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11352&amp;mode</id>
<entry>
<author><name><![CDATA[#99]]></name></author>
<updated>2015-04-11T18:47:44+01:00</updated>
<published>2015-04-11T18:47:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11352&amp;p=126227#p126227</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11352&amp;p=126227#p126227"/>
<title type="html"><![CDATA[PWM a incjalizacja wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11352&amp;p=126227#p126227"><![CDATA[
Witam. Chcę zaobserwować przebieg Fast-PWM analizatorem logicznym Saleae (chiński) no i wszystko jest ok dopóki nie włączę funkcji do inicjalizacji wyświetlacza wtedy analizator nic nie pokazuje. Sam hd44780 działa bez problemu. Wiem że sygnał PWM jest generowany ponieważ częstotliwość i wypełnienie zgadza się gdy podepnę multimetr.<br />ustawienia PWM:<br />[syntax=c]//------------------------------- TIMER 1 ---------------------------------<br />TCCR1A |= (1&lt;&lt;COM1A1); //Clear on compare match<br />TCCR1A |= (1&lt;&lt;WGM11); //Fast PWM 10-bit ...<br />TCCR1B |= (1&lt;&lt;WGM12) | (1&lt;&lt;WGM13);<br />TCCR1B |= (1&lt;&lt;CS11) | (1&lt;&lt;CS10); //prescaler 64<br />OCR1A = 179;<br />ICR1 = 2499;[/syntax]<br /><br />a tutaj standardowa inicjalizacja lcd hd44780:<br />[syntax=c]void LcdInit(void)<br />{<br />LCD_DATA_DIR = 0xFF;<br />LCD_RS_DIR |= LCD_RS;<br />LCD_E_DIR |= LCD_E;<br />#if USE_RW == 1<br />LCD_RW_DIR |= LCD_RW;<br />#endif<br />LCD_K_DIR |= LCD_K;<br /><br />LCD_RS_PORT &amp;= ~LCD_RS;<br />LCD_E_PORT &amp;= ~LCD_E;<br />#if USE_RW == 1<br />LCD_RW_PORT &amp;= ~LCD_RW;<br />#endif<br />LCD_K_PORT |= LCD_K;<br /><br />_delay_ms(15); //ustabilizowanie napięcia<br /><br /><br />LCD_E_PORT |= LCD_E;<br />_delay_us(1);<br />LCD_DATA_PORT = 0x30;<br />LCD_E_PORT &amp;= ~LCD_E;<br />_delay_ms(5);<br /><br />LCD_E_PORT |= LCD_E;<br />_delay_us(1);<br />LCD_DATA_PORT = 0x30;<br />LCD_E_PORT &amp;= ~LCD_E;<br />_delay_us(120);<br /><br />LCD_E_PORT |= LCD_E;<br />_delay_us(1);<br />LCD_DATA_PORT = 0x30;<br />LCD_E_PORT &amp;= ~LCD_E;<br />_delay_ms(1);<br /><br />LcdWriteCommand(0x3F); //8-bitowy, 2-wierszowy, rozmiar 5x7<br />LcdWriteCommand(0x06); //inkrementacja kursora po zapisie znaku<br />LcdDisplayOn();<br />LcdCls();<br /><br />}[/syntax]<br /><br />Dodatkowo mam problem z samym serwomechanizmem, a mianowicie podaję sygnał sterujący o częstotliwości 50Hz, wypełnienie 7.5% a serwo zamiast lądować w pozycji środkowej przesuwa się  maksymalnie w prawo i zatrzymuje na wewnętrznej blokadzie powodując zwarcie. Serwo to redox s90 zasilane z osobnego źródła 5V. Kiedyś już nim sterowałem i działało ok dodam jeszcze że drugie takie samo zachowuje się identycznie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4052">#99</a> — 11 kwi 2015, o 18:47</p><hr />
]]></content>
</entry>
</feed>