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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-07-17T19:14:02+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24286&amp;mode</id>
<entry>
<author><name><![CDATA[avatar12345]]></name></author>
<updated>2022-07-17T19:14:02+01:00</updated>
<published>2022-07-17T19:14:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235844#p235844</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235844#p235844"/>
<title type="html"><![CDATA[Re: vector INT0, brak migania diodą led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235844#p235844"><![CDATA[
[syntax=c]//#define F_CPU 1000000L<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br /><br /><br />int main(void){<br /><br /><br />uint8_t binary_pattern&#91;&#93; = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10};<br /> <br />DDRB = 0xff;<br />PORTB = 0x00;<br />DDRD |= (1&lt;&lt;PD2);<br /><br />//PORTD |= 0x04;<br />OCR0A = 0x70;<br />TCCR0A = 0x02;<br />TIFR |= 0x01;<br />TIMSK = 0x01;<br />TCCR0B = 0x05;<br />sei();<br /><br />  while(1){<br />     <br />      for(uint8_t i=0; i &lt; 10; i++){<br />        <br />PORTB = binary_pattern&#91;i&#93;;<br />  _delay_ms(1000);<br /><br />}<br /><br />}<br /> <br /><br /><br />}<br />ISR(TIMER0_COMPA_vect)<br />{<br />    static char toggle = 0;<br />    <br />    // toggle the LED on each interrupt    <br />    if (toggle) {<br />        toggle = 0;<br />        PORTD &amp;= ~(1 &lt;&lt; PD2);<br />    }<br />    else {<br />        toggle = 1;<br />        PORTD |=  (1 &lt;&lt; PD2);<br />    }<br />}[/syntax]<br />Temat rozwiązany<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21828">avatar12345</a> — 17 lip 2022, o 19:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avatar12345]]></name></author>
<updated>2022-07-17T17:49:34+01:00</updated>
<published>2022-07-17T17:49:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235843#p235843</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235843#p235843"/>
<title type="html"><![CDATA[Re: vector INT0, brak migania diodą led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235843#p235843"><![CDATA[
Hej,<br />Jak wpiszę tak:<br />DDRB |= 0xff;<br />PORTB |= 0x00;<br />Wyświetlacz nie działa<br />Jak wpiszę tak:<br />DDRB = 0xff;<br />PORTB = 0x00<br />Wyświetlacz  działa<br /><br />Wiele poradników przeczytalem i wiele filmików obejrzałem odnośnie c i avr i nikt nie powiedział, zebym nie stosował 'return 0' jak jest pętla.<br />Wzrowałem się na pańskim odcinku o przerwaniach na youtubie, na 1 odcinku, pisał pan na tablicy. Inny wektor pan zastosował, bo inny chip. U mnie nie działa, a w tym przykładzie u pana zadziałało?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />[syntax=c//#define F_CPU 1000000L<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />void Miganie(void){<br />volatile unsigned int del = 100000;<br />while(del--);<br />}<br /><br />int main(void){<br /><br /><br />uint8_t binary_pattern[] = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10};<br /> <br />DDRB = 0xff;<br />PORTB = 0x00;<br />DDRD |= 0x04;<br />PORTD |= 0x04;<br />  <br /> <br /> sei();<br />  while(1){<br />     <br />      for(uint8_t i=0; i &lt; 10; i++){<br />        <br />PORTB = binary_pattern[i];<br />Miganie();<br /><br />}<br /><br />}<br /> <br /><br /><br />}<br /> <br />ISR(INT0_vect)<br />{  <br />   static uint8_t i;<br />       <br />       i++;<br />       if(i&gt;99){<br />       i=0;<br />       <br />   PORTD ^= (1&lt;&lt;PD2);<br />       }<br />   <br />  <br />   /*<br />    GIMSK |= ((1&lt;&lt;INT0)|(1&lt;&lt;INT0));<br />    <br />    MCUCR |= ((1&lt;&lt;ISC01)|(0&lt;&lt;ISC00));<br />    TCNT0 |= ((1&lt;&lt;CS02)|(0&lt;&lt;CS01)|(1&lt;&lt;CS00));<br />    TIMSK |= (1&lt;&lt;OCIE1A);<br />    TCCR0A |= ((1&lt;&lt;COM0A1)|(1&lt;&lt;COM0A0));<br />    */<br />   <br />}<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />][/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 42 minutach ]</span></strong><br /><br />muszę też stwierdzić, że posiada pan w sobie żarty iście z piekła rodem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21828">avatar12345</a> — 17 lip 2022, o 17:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2022-07-17T16:53:08+01:00</updated>
<published>2022-07-17T16:53:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235842#p235842</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235842#p235842"/>
<title type="html"><![CDATA[Re: vector INT0, brak migania diodą led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235842#p235842"><![CDATA[
pętla while(1) {} w przerwaniu ?????? To tak jakbyś sobie założył pętlę na szyję a drugą część sznura przywiązał do wysokiej gałęzi i skoczył w dół a później się dziwił dlaczego ci oczy na wierzch wychodzą i jakoś tak duszno się robi ....<br /><br />sorki ale ten kod w ogóle nie ma prawa działać - przynajmniej to co w pętli głównej<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />poza tym co to za jakieś ustawianie portów, pinów - niestety masakra <br /><div class="quotetitle">avatar12345 napisał(a):</div><div class="quotecontent"><br />DDRB = 0xff;<br />PORTB = 0x00;<br />DDRD = 0x04;<br />PORTD = 0x04;<br /></div><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">avatar12345 napisał(a):</div><div class="quotecontent"><br />unsigned char binary_pattern[]<br /></div><br />w avr gcc masz do tego prosty typ uint8_t a nie jakieś tam kocie unsigned char<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />pomijam już fakt że nigdzie nie ma inicjalizacji dla przerwania INT0<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br /><div class="quotetitle">avatar12345 napisał(a):</div><div class="quotecontent"><br />cli();<br /></div><br />jeśli nigdzie wcześniej w kodzie nie dawałeś sei() to pisanie cli() jest kolejnym nieporozumieniem i w ogóle niepotrzebne<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br /><div class="quotetitle">avatar12345 napisał(a):</div><div class="quotecontent"><br />for(int i=0; i &lt; 10; i++){<br /></div><br /><br />w takiej pętli stosuje się typ uint8_t jeśli zmienna iteracyjna ma zliczać tylko w tak małym zakresie 0-9<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br /><div class="quotetitle">avatar12345 napisał(a):</div><div class="quotecontent"><br />void Miganie(){<br />        _delay_ms(1000);<br />}<br /></div><br /><br />jaki sens ma ta funkcja skoro to żadne miganie tylko zwykły delaj - kompletnie niepotrzebna funkcja<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br /><div class="quotetitle">avatar12345 napisał(a):</div><div class="quotecontent"><br />return 0;<br /></div><br /><br />jak masz pętlę główną while to <strong><span style="color: #FF0000">return 0;</span></strong> nigdy nie jest potrzebne<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 6 minutach ]</span></strong><br /><br />Ja bym polecił tobie naprawdę zacząć od książki<br /><br /><!-- m --><a class="postlink" href="https://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >https://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />ona jest stworzona właśnie dla początkujących i nigdy nie pisałbyś w ten sposób programów dzięki niej - polecam - poważnie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 17 lip 2022, o 16:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avatar12345]]></name></author>
<updated>2022-07-17T15:00:58+01:00</updated>
<published>2022-07-17T15:00:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235841#p235841</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235841#p235841"/>
<title type="html"><![CDATA[vector INT0, brak migania diodą led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24286&amp;p=235841#p235841"><![CDATA[
Witam wszystkich forumowiczów,<br />Zbudowałem mały projekt na płytce stykowej, gdzie użyłem wyświetlacz 7 segmentowy(anoda), dioda led i chip attiny2313.<br />Założenie było takie, aby dioda led, migała z daną częstotliwością w tym samym czasie co wyswietlacz.<br />Wyświetlacz pokazuje cyfry w pętli od 0 do 9 z częstotliwością do 1 sek. Dioda natomiast nie miga, a jest w stanie wysokim - świeci.<br />Wyświetlacz jest podpięty do całego portu PORTB, dioda natomiast do pinu PD2, gdzie jest również przerwanie INT0.<br />Próbowałem różnych opcji, gdzie np kabelek od PD2 wpiąłem do PB0 i wtedy dioda migała, ale robiła dwa mignięcia na cały przebieg cyfr to jest od 0....9. I tak w kółko. Wówczas  code w ISR nie był brany pod uwagę.<br /><br />Oto code:<br /><br />[syntax=c]//#define F_CPU 1000000L<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />void Miganie(){<br />_delay_ms(1000);<br />}<br /><br />int main(void){<br /><br />cli();<br />unsigned char binary_pattern&#91;&#93; = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10};<br /> <br />DDRB = 0xff;<br />PORTB = 0x00;<br />DDRD = 0x04;<br />PORTD = 0x04;<br />  <br /> <br /> sei();<br />  while(1){<br />     <br />      for(int i=0; i &lt; 10; i++){<br />        <br />PORTB = binary_pattern&#91;i&#93;;<br />Miganie();<br /><br />}<br /><br />}<br /> <br /><br />return 0;<br />}<br /> <br />ISR(INT0_vect)<br />{  <br />   //static uint8_t i=0;<br />   while(1){<br />   PORTD ^= (1&lt;&lt;PD2);<br />   _delay_ms(500);<br />   }<br />  <br />   /*<br />    GIMSK |= ((1&lt;&lt;INT0)|(1&lt;&lt;INT0));<br />    <br />    MCUCR |= ((1&lt;&lt;ISC01)|(0&lt;&lt;ISC00));<br />    TCNT0 |= ((1&lt;&lt;CS02)|(0&lt;&lt;CS01)|(1&lt;&lt;CS00));<br />    TIMSK |= (1&lt;&lt;OCIE1A);<br />    TCCR0A |= ((1&lt;&lt;COM0A1)|(1&lt;&lt;COM0A0));<br />    */<br />   <br />}<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />&#93;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21828">avatar12345</a> — 17 lip 2022, o 15:00</p><hr />
]]></content>
</entry>
</feed>