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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-07-31T21:47:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3701&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-31T21:47:19+01:00</updated>
<published>2013-07-31T21:47:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=44029#p44029</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=44029#p44029"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=44029#p44029"><![CDATA[
No fakt już na pierwszym schemacie widać. Jak widzisz miałem nosa że coś będzie w sprzęcie. Więc zwykle w takich pytaniach warto od razu zaczynać od schematu. Najważniejsze że działa, teraz już będzie z górki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> to też w końcu jakieś doświadczenie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 lip 2013, o 21:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomavka]]></name></author>
<updated>2013-07-31T21:38:47+01:00</updated>
<published>2013-07-31T21:38:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=44028#p44028</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=44028#p44028"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=44028#p44028"><![CDATA[
Wszystko gra, naturalnie problem to zły pin , toż to OCO znajduje się na PB3  a nie na PB2.<br /><br />Pozdrawiam Tomasz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1434">tomavka</a> — 31 lip 2013, o 21:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomavka]]></name></author>
<updated>2013-07-31T17:29:09+01:00</updated>
<published>2013-07-31T17:29:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43994#p43994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43994#p43994"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43994#p43994"><![CDATA[
Transystor jak na schemacie niżęj,<br />Dioda zapala sie na 255ms(przy starcie), wiec czhyba sterowanie ok.<br />Pewnie jakis bablo w programie, niestety na ową chwilę nie potrafie go wypapac, jak tylko ruszy , dam znać co było.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1434/0a23b8c2c1046bed496dcc771b4366ad.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1434/0a23b8c2c1046bed496dcc771b4366ad.jpg" alt="Obrazek" /></a><br /><br />Pzdr Tomasz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1434">tomavka</a> — 31 lip 2013, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-30T20:52:40+01:00</updated>
<published>2013-07-30T20:52:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43923#p43923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43923#p43923"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43923#p43923"><![CDATA[
zmień tranzystory T1 i T2 na tylko jeden i to PNP, do jego bazy od pinu procka daj rezystor 2,2K i sprawdź<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 lip 2013, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomavka]]></name></author>
<updated>2013-07-30T20:45:33+01:00</updated>
<published>2013-07-30T20:45:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43921#p43921</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43921#p43921"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43921#p43921"><![CDATA[
Witam, kod dodałem, niestety bez rezultatu.<br />Poniżej schemat podłączeń.<br /><a href="http://forum.atnel.pl/_obrazki/o/1434/6a91aca30a0e54599accf4f2459e6f49.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1434/6a91aca30a0e54599accf4f2459e6f49.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1434">tomavka</a> — 30 lip 2013, o 20:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-30T15:35:33+01:00</updated>
<published>2013-07-30T15:35:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43894#p43894</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43894#p43894"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43894#p43894"><![CDATA[
<div class="quotetitle">tomavka napisał(a):</div><div class="quotecontent"><br />Wspaniale<br /></div><br /><br />Po pierwsze zobacz jakie pytanie zadałeś:<br /><br /><div class="quotetitle">tomavka napisał(a):</div><div class="quotecontent"><br />Czy ktoś z was próbował odpalić pilota na atmega32[zegar 16MHz]?<br /></div><br /><br />Więc zmień nieco swoje podejście ... i postaraj się zadawać bardziej przejrzyste pytania to po pierwsze. Po drugie może pokaż jak podłączyłeś to elektronicznie - fragment schematu ? hmm ?<br /><br />jeszcze jedno - przed PIERWSZYM warunkiem IF() w przerwaniu dodaj tą linię jeszcze <br /><br />[syntax=c]keys = PINB;[/syntax]<br /><br />ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 lip 2013, o 15:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomavka]]></name></author>
<updated>2013-07-30T10:25:57+01:00</updated>
<published>2013-07-30T10:25:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43877#p43877</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43877#p43877"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43877#p43877"><![CDATA[
Wspaniale.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1434">tomavka</a> — 30 lip 2013, o 10:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-30T07:16:57+01:00</updated>
<published>2013-07-30T07:16:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43870#p43870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43870#p43870"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43870#p43870"><![CDATA[
<div class="quotetitle">tomavka napisał(a):</div><div class="quotecontent"><br />Czy ktoś z was próbował odpalić pilota na atmega32[zegar 16MHz]?(wiem że to troche przerost, ale taki mam akurat sprzęt pod ręką)<br /></div><br /><br />Ja, nie tylko próbowałem ale najpierw opracowałem to na tym procku bo jest on w zestawie ATB standardowo a na nim wykonuję wszystkie ćwiczenia do książek. Gdy już wszystko działało to dopiero wtedy przeportowałem go na mniejszy procek jak ATtiny2313.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 lip 2013, o 07:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomavka]]></name></author>
<updated>2013-07-29T23:07:57+01:00</updated>
<published>2013-07-29T23:07:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43869#p43869</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43869#p43869"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43869#p43869"><![CDATA[
pięknie się kompiluje, nie ma błędów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1434">tomavka</a> — 29 lip 2013, o 23:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Juffre]]></name></author>
<updated>2013-07-29T22:57:07+01:00</updated>
<published>2013-07-29T22:57:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43868#p43868</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43868#p43868"/>
<title type="html"><![CDATA[Re: 16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43868#p43868"><![CDATA[
Ja przerobilem kod z attiny na atmega8. Pilot dziala wysmienicie. Masz jakies errory, czy warningi przy kompilacji?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=473">Juffre</a> — 29 lip 2013, o 22:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomavka]]></name></author>
<updated>2013-07-29T22:49:56+01:00</updated>
<published>2013-07-29T22:49:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43867#p43867</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43867#p43867"/>
<title type="html"><![CDATA[16_Pilot_IR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3701&amp;p=43867#p43867"><![CDATA[
Witam,<br /><br />Czy ktoś z was próbował odpalić pilota na atmega32[zegar 16MHz]?(wiem że to troche przerost, ale taki mam akurat sprzęt pod ręką).<br />Postanowiłem zmodyfikować co nieco oryginalny kod, niestety rezultat mizerny podczeriweń działa ale tylk przez 0.5s[po podaniu zasialnia] zgodnie z zapisem <br /><br />[syntax=c]LED_ON;<br />_delay_ms(500);<br /><br />, przyciski działąją , za pomocą dodaktu jak niżej, po wciśnienciu przycisku zapla mi się taki dodatkowy indykator w postaci diody.<br /><br />ISR(INT0_vect)<br />{<br />DDRA=0xff;        //***************************************************************<br />PORTA=0x00;      //*TEST CZY ZAPLANA SIE PRZYKLADOWA DIODA PO WCISNIENCIU KLAWISZA*<br />                         //***************************************************************<br /><br />Cały kod poniżej,jeśli udało się komuś uruchomić pilocika na atmega32 i chciałby się tym podzialić(z czym były trudności ect.), zapraszam do dyskusji.<br />A może ktoś z was widzi rażący błąd? :)Za wszelkie sugestie dziękuję.:<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/sleep.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />// Tutaj definiujemy jaki adres będzie emitował pilot IR<br />#define _ADDRESS_RC5 0// TV = 0<br /><br />// przydzielamy dowolne kody (command) do klawiszy 1-5<br />#define _CMD1_RC5 16<br />#define _CMD2_RC5 2<br />#define _CMD3_RC5 3<br />#define _CMD4_RC5 17<br />#define _CMD5_RC5 5<br /><br />// definicje dla obsługi diody LED<br />#define LED_PORT PORTB<br />#define LED_PIN PINB<br />#define LED_DDR DDRB<br />#define LED_PIN_NR 2<br />#define LED (1&lt;&lt;LED_PIN_NR)<br /><br />#define LED_OFF PORTB |= LED<br />#define LED_ON PORTB &amp;= ~LED<br /><br /><br />// definicje klawiszy<br />#define K_PORT PORTB<br />#define K_PIN PINB<br />#define K_DDR DDRB<br /><br />#define KEY1 (1&lt;&lt;PB1)<br />#define KEY2 (1&lt;&lt;PB3)<br />#define KEY3 (1&lt;&lt;PB4)<br />#define KEY4 (1&lt;&lt;PB5)<br />#define KEY5 (1&lt;&lt;PB6)<br /><br />#define KEYS_MASK (KEY1|KEY2|KEY3|KEY4|KEY5)<br /><br />uint8_t address;<br />uint8_t command;<br /><br />/**************** MAIN **********************/<br />int main(void) {<br /><br />// ****** DIODA LED i IR<br />// ustawienie PORTB.2 (OC0A) jako wyjście<br />LED_DDR |= (LED);<br />LED_PORT|=(LED);<br /><br />// ******* KLAWISZE<br />// ustawienie PORTD.2 , 3 , 4 i 5 jako wyjścia<br />K_DDR |= (KEY1|KEY2|KEY3|KEY4|KEY5);<br />// ustawienie stanu niskiego<br />K_PORT &amp;= ~(KEY1|KEY2|KEY3|KEY4|KEY5);<br /><br />// kontrolne zapalenia diody LED na 255ms po włączeniu zasilania (włożeniu baterii do pilota)<br />LED_ON;<br />_delay_ms(500);<br />LED_OFF;<br /><br />//OSCCAL = 0x66;<br /><br />// **************************************************************************************<br />// TIMER0<br />// - używany do generowania fali nośnej dla IR<br />// załadowanie OCR0A wartością do generowania nośnej ok 36kHz = 110<br />OCR0=220; //bo 16MHz // w oryginale OCR0A =  110;<br />// ustawienie Timer0 w tryb = 2 - CTC - CompareA<br />TCCR0 |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0 |= (1&lt;&lt;CS00);// preskaler = 1<br />//****************************************************************************************<br /><br />// Timer1 - służy do odmierzania opóźnień (z dokładnością wielokrotności 1us)<br />// jego preskaler ustawiany jest na 8 podczas załączania<br />// używana jest wtedy jeo flaga OCF0A<br />// nie korzystamy z przerwań<br />// ustawiamy Timer1 w tryb = 4 - CTC<br />TCCR1B |= (1&lt;&lt;WGM12);<br /><br />// wyłączenie komparatora analogowego<br />// konieczne ze względu na maksymalne obniżenie poboru prądu<br />ACSR |= (1&lt;&lt;ACD);<br /><br />// Turn off WDT<br />WDTCR  = 0x00;<br /><br />// ustawienie trybu POWER-DOWN<br />MCUCR |= (1&lt;&lt;SM1);<br /><br />// ustawienie pinu PORTD.2 (INT0) jako wejście<br />DDRD &amp;= ~(1&lt;&lt;PD2);<br />// podciągnięcie do 1<br />PORTD |= (1&lt;&lt;PD2);<br />// zezwolenie na przerwania INT0<br />GICR |= (1&lt;&lt;INT0);<br />// skasowanie flagi wystąpienia przerwania INT0<br />GIFR |= (1&lt;&lt;INTF0);<br /><br />// globalne zezwolenie na przerwania<br />sei();<br /><br />while (1) {<br />// wprowadzenie procesora w tryb POWER-DOWN<br />sleep_mode();<br />}<br />}<br />//------------------------------------------------- RC5 - START<br />// dokładna pętla opóźniająca = wielokrotności 1us<br />// w oparciu o Timer1, taktowanie 8MHz, preskaler = 8<br />void czekaj_us(uint16_t usekundy) {<br />OCR1A = usekundy;<br />TIFR |= (1&lt;&lt;OCF1A);<br />TCCR1B |= (1&lt;&lt;CS11);// preskaler 8<br />while ( !( TIFR &amp; (1&lt;&lt;OCF1A) ) ) {};<br />TCCR1B &amp;= ~(1&lt;&lt;CS11);<br />}<br />// przesłanie bitu o wartości 1<br />void send_rc5_one() {<br />czekaj_us(889);<br />TCCR0 |= (1&lt;&lt;COM00);<br />czekaj_us(889);<br />TCCR0 &amp;= ~(1&lt;&lt;COM00);<br />}<br />// przesłanie bitu o wartości 0<br />void send_rc5_zero() {<br />TCCR0 |= (1&lt;&lt;COM00);<br />czekaj_us(889);<br />    TCCR0 &amp;= ~(1&lt;&lt;COM00);<br />czekaj_us(889);<br />}<br /><br />// przesłanie kompletnej ramki RC5<br />void send_rc5(uint8_t adr, uint8_t cmd, uint8_t tog) {<br />uint16_t data = 0;<br />uint8_t i=15;<br /><br />// Musimy uformować ramkę RC5<br />// w tym celu przesuwamy bity do wysłania w lewą stronę<br />data |= ( (1&lt;&lt;15)|(1&lt;&lt;14)|(tog&lt;&lt;13)|(adr&lt;&lt;8)|(cmd&lt;&lt;2) );<br />/* data = 0bssTaaaaaccccccxx<br /> *     ||||adr||cmd |<br /> *   |||<br /> *   ||+-- bit TOGGLE<br /> *||<br /> *++--- 2 bity Startu<br />*/<br /><br />// wysyłamy kolejno 14 bitów<br />// 2-bity startu, 1-bit Toggle, 5-bitów adresu, 6-bitów komendy<br />do {<br />if ( !(data &amp; ( 1 &lt;&lt; i )) ) send_rc5_zero();<br />else send_rc5_one();<br />} while(--i&gt;1);<br />}<br />//------------------------------------------------- RC5 - END<br /><br /><br />//*************** PRZERWANIE INT0 ***************************<br />ISR(INT0_vect)<br />{<br />DDRA=0xff;       //***************************************************************<br />PORTA=0x00;      //*TEST CZY ZAPLANA SIE PRZYKLADOWA DIODA PO WCISNIENCIU KLAWISZA*<br /> //***************************************************************<br /><br /><br />uint8_t keys = PINB;<br />static uint8_t toggle_bit;<br /><br />// tylko na czas przerwania INT0 - przestawiony zostaje<br />// kierunek portów klawiszy. Zostają ustawione jako wejścia<br />// natomiast pin PORTD.2 (INT0) jako wyjście ze stanem niskim<br />// dzięki temu działa obsługa klawiszy<br /><br />// ustawienie PORTD.2 , 3 , 4 i 5 jako wejścia<br />K_DDR &amp;= ~(KEY1|KEY2|KEY3|KEY4|KEY5);<br />// podciągnięcie wejść do 1<br />K_PORT |= (KEY1|KEY2|KEY3|KEY4|KEY5);<br /><br />// przestawienie PORTD.2 jako wyjście<br />DDRD |= (1&lt;&lt;PD2);<br />// ustawienie stanu niskiego - do obsługi klawiszy<br />PORTD &amp;= ~(1&lt;&lt;PD2);<br /><br />if( (keys &amp; KEYS_MASK) != KEYS_MASK ) {// sprawdzamy czy wciśnięty jakikolwiek klawisz<br />_delay_ms(50);// eliminacja drgań styków<br />keys = PINB;<br />if( (keys &amp; KEYS_MASK) != KEYS_MASK ) {// sprawdzamy czy wciśnięty jakikolwiek klawisz<br /><br />// przed wysłaniem kodu jakiegokolwiek klawisza zmiana<br />// stanu bitu toggle<br />toggle_bit ^= (1&lt;&lt;0);<br /><br />do {<br /><br />if( !(keys &amp; KEY1) ) command = _CMD1_RC5;<br />else<br />if( !(keys &amp; KEY2) ) command = _CMD2_RC5;<br />else<br />if( !(keys &amp; KEY3) ) command = _CMD3_RC5;<br />else<br />if( !(keys &amp; KEY4) ) command = _CMD4_RC5;<br />else<br />if( !(keys &amp; KEY5) ) command = _CMD5_RC5;<br /><br />address = _ADDRESS_RC5;<br />send_rc5(address, command, toggle_bit);<br /><br />_delay_ms(115);// gap<br /><br />keys = PINB;<br /><br />} while ( (keys &amp; KEYS_MASK) != KEYS_MASK );/* powtarzaj gdy wciśnięty */<br />}<br />}<br /><br />// przywracamy ustawienia<br /><br />// ustawienie pinu PORTD.2 (INT0) jako wejście<br />DDRD &amp;= ~(1&lt;&lt;PD2);<br />// podciągnięcie do 1<br />PORTD |= (1&lt;&lt;PD2);<br /><br />// ******* KLAWISZE<br />// ustawienie PORTD.2 , 3 , 4 i 5 jako wyjścia<br />K_DDR |= (KEY1|KEY2|KEY3|KEY4|KEY5);<br />// ustawienie stanu niskiego<br />K_PORT &amp;= ~(KEY1|KEY2|KEY3|KEY4|KEY5);<br /><br />GIFR |= (1&lt;&lt;INTF0);<br /><br />}[/syntax]<br /><br /><span style="color: #FF0000">Kody wklejamy przy pomocy syntax=c - Zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1434">tomavka</a> — 29 lip 2013, o 22:49</p><hr />
]]></content>
</entry>
</feed>