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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-11-25T21:43:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=21605&amp;mode</id>
<entry>
<author><name><![CDATA[Tded]]></name></author>
<updated>2018-11-25T21:43:51+01:00</updated>
<published>2018-11-25T21:43:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=214053#p214053</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=214053#p214053"/>
<title type="html"><![CDATA[Re: Timer0/64, Atmega328p nie działa T0/1 działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=214053#p214053"><![CDATA[
Nie jestem pewien, ale chyba optymalizacja kodu wywaliła mi &quot; while(przerwanie_Timer0 == 0); &quot; wystarczyło dopisać by ta pętla robiła cokolwiek, u mnie zapalała diodkę i nagle wszystko zadziałało...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11086">Tded</a> — 25 lis 2018, o 21:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2018-11-25T15:33:04+01:00</updated>
<published>2018-11-25T15:33:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=214044#p214044</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=214044#p214044"/>
<title type="html"><![CDATA[Re: Timer0/64, Atmega328p nie działa T0/1 działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=214044#p214044"><![CDATA[
Nie wydaje mi się by samo przestawienie preskalera w sposób bezpośredni powodowało zawieszenie programu na pętli.<br />Proponował bym potestowanie z przeniesieniem zapalania diody w niższe partie programu wtedy małymi kroczkami prześledzisz do którego dokładnie miejsca program dochodzi i staje. Takie debugowanie z użyciem jednej diody - procedura przedstawiona przez Mirka w poradniku <a href="https://www.youtube.com/watch?v=yVFf22JxuEs"  class="postlink">Debugowanie programu dla POCZĄTKUJACYCH</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 25 lis 2018, o 15:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tded]]></name></author>
<updated>2018-11-23T17:45:10+01:00</updated>
<published>2018-11-23T17:45:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=213976#p213976</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=213976#p213976"/>
<title type="html"><![CDATA[Timer0/64, Atmega328p nie działa T0/1 działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21605&amp;p=213976#p213976"><![CDATA[
Witam, <br /><br />mam problem z Timerem0 i ustawieniem go na prescaler 64 i w zwyż, na prescalerze 1 działa dobrze...<br /><br />[syntax=c]ISR (TIMER0_COMPA_vect) {<br />przerwanie_Timer0 = 1;<br />}<br /><br />void oscyloskop(void){<br />ssd1306_Init(SSD1306_SWITCHCAPVCC, REFRESH_MIN);<br />uint8_t adc = 0;<br /><br />TCCR0B &amp;= ~(1&lt;&lt;WGM02); TCCR0A |= (1 &lt;&lt; WGM01);TCCR0A &amp;= ~(1&lt;&lt;WGM00);// Set the Timer Mode to CTC<br />TCCR0B |= (1&lt;&lt;CS00) | (1&lt;&lt;CS02); TCCR0B &amp;= ~(1&lt;&lt;CS01);<br />TIMSK0 |= (1 &lt;&lt; OCIE0A);                     // Aktywacja przerwania Przepełnienie Timer0<br />OCR0A = 6;                 // Wartosc do przepelnienia<br /><br />sei();<br /><br /><br />adc_init();<br />ssd1306_clear();<br /><br />while(1){<br />ssd1306_clear();<br />PORTB |= (1 &lt;&lt; LED);<br />for(uint8_t x=0; x&lt;SSD1306_WIDTH; x++){<br />while(przerwanie_Timer0 == 0);<br />przerwanie_Timer0 = 0;<br />adc = (uint8_t)(adc_read(0) / 16);<br />ssd1306_setPixel(x,adc,1);<br />}<br />PORTB &amp;= ~(1 &lt;&lt; LED);<br />ssd1306_display();<br />_delay_ms(5);<br />}<br /><br />}[/syntax]<br /><br />ten kod nie działa, zatrzymuje się na while(przerwanie_Timer0 == 0); i tyle, widzę bo dioda led jest ustawiana przed i świeci cały czas...<br /><br />[syntax=c]void oscyloskop(void){<br />uint8_t adc = 0;<br /><br />TCCR0A |= (1 &lt;&lt; WGM01);// Set the Timer Mode to CTC<br />TCCR0B = (1&lt;&lt;CS00); //Start Timera0 - prescaler 1<br />OCR0A = 240;                 // Wartosc do przepelnienia<br />TIMSK0 |= (1 &lt;&lt; OCIE0A);                     // Aktywacja przerwania Przepełnienie Timer0<br /><br />sei();[/syntax]<br /><br />Za to na tej konfiguracji działa dobrze.<br /><br />Skończyły mi się pomysły, proszę o pomoc, pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11086">Tded</a> — 23 lis 2018, o 17:45</p><hr />
]]></content>
</entry>
</feed>