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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-02-25T15:00:29+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=22896&amp;mode</id>
<entry>
<author><name><![CDATA[Kaz K]]></name></author>
<updated>2020-02-25T15:00:29+01:00</updated>
<published>2020-02-25T15:00:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225047#p225047</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225047#p225047"/>
<title type="html"><![CDATA[Re: Sterowanie PWM powiązane z wyjściem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225047#p225047"><![CDATA[
Dziękuję Kolegom za wpis powalczę wieczorem po powrocie z roboty. <br />Programik zagmatwany bo przeszedł tyle prób że  hoho  <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" />  <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /> <br />Kol. TomekTomek55<br />Lcd mam tylko do testu co się dzieje w programie, więc nie przejmowałem się pozostawaniem cyfr na wyświetlaczu, docelowo nie będzie potrzebne. <br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20460">Kaz K</a> — 25 lut 2020, o 15:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2020-02-25T00:04:46+01:00</updated>
<published>2020-02-25T00:04:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225038#p225038</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225038#p225038"/>
<title type="html"><![CDATA[Re: Sterowanie PWM powiązane z wyjściem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225038#p225038"><![CDATA[
A tutaj do testów dla ATmega32 z 11059200Hz, przycisk jako spełnienie warunku lub nie  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> , dioda LED1 jako wyjście.  <br />Kiedyś takie ćwiczenie popełniłem, więc wklejam, może się przyda. <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br />#define LED1 (1&lt;&lt;PC6)<br />#define PORT_LED1 PORTC<br />#define DDR_LED1 DDRC<br />#define LED1_ON PORT_LED1 &amp;= ~LED1<br />#define LED1_OFF PORT_LED1 |= LED1<br /><br />#define PORT_KEY1 PORTB<br />#define PIN_KEY1 PINB<br />#define KEY1 (1&lt;&lt;PB0)<br /><br />volatile uint16_t Timer1;<br /><br />void led_init(void);<br />void switch_init(void);<br />void timer_10ms_init(void);<br />void pwm_init(void);<br />uint8_t press(void);<br />void show_pwm_value(uint8_t value);<br /><br /><br />int main( void ) {<br /><br />led_init();<br />switch_init();<br />timer_10ms_init();<br />pwm_init();<br />lcd_init();<br /><br />lcd_cls();<br />lcd_LED(1);<br /><br />sei();<br /><br />while(1) {<br /><br />static uint8_t pwm_run=0;<br /><br />if( press() ) pwm_run ^= 1;<br /><br />if(!Timer1) {<br />Timer1 = 10;<br /><br />if( pwm_run ) {<br />LED1_ON;<br />if(255 != OCR0) OCR0++;<br />} else {<br />if(0 == OCR0) LED1_OFF;<br />else OCR0--;<br />}<br /><br />show_pwm_value(OCR0);<br />}<br />}<br />}<br /><br />ISR(TIMER2_COMP_vect) {<br /><br />uint16_t n;<br />n = Timer1;<br />if (n) Timer1 = --n;<br />}<br /><br />void led_init(void) {<br /><br />DDR_LED1 |= LED1;<br />LED1_OFF;<br />}<br /><br />void switch_init(void) {<br /><br />PORT_KEY1 |= KEY1;<br />}<br /><br />uint8_t press(void) {<br /><br />uint8_t wynik = 0;<br />static uint16_t key_lock1 = 0;<br />uint8_t stan = PIN_KEY1;<br /><br />if( !key_lock1 &amp;&amp; !(stan &amp; KEY1 ) ) {<br />key_lock1 = 50000;<br />wynik = 1;<br />}<br />else if( key_lock1 &amp;&amp; (stan &amp; KEY1) ) key_lock1++;<br /><br />return wynik;<br />}<br /><br />void timer_10ms_init(void) {<br /><br />TCCR2 |= (1&lt;&lt;WGM21);<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);<br />OCR2 = F_CPU / 1024UL / 100UL;<br />TIMSK |= (1&lt;&lt;OCIE2);<br />}<br /><br />void pwm_init(void) {<br /><br />DDRB |= (1&lt;&lt;PB3);<br />TCCR0 |= (1&lt;&lt;WGM01)|(1&lt;&lt;WGM00);<br />TCCR0 |= (1&lt;&lt;COM00) | (1&lt;&lt;COM01);<br />TCCR0 |= (1&lt;&lt;CS00);<br />OCR0=0;<br />}<br /><br />void show_pwm_value(uint8_t value) {<br /><br />lcd_locate(1,0);<br />lcd_str(&quot;value =    &quot;);<br />lcd_locate(1,8);<br />lcd_int(value);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 25 lut 2020, o 00:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomekTomek55]]></name></author>
<updated>2020-02-24T23:27:55+01:00</updated>
<published>2020-02-24T23:27:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225036#p225036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225036#p225036"/>
<title type="html"><![CDATA[Re: Sterowanie PWM powiązane z wyjściem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225036#p225036"><![CDATA[
[syntax=c]if !Timer4){  // timer programowy co 1 sek<br />      Timer4 = 100;<br /><br />      if ((przeliczz &gt;= przelicz5z) &amp;&amp; (przeliczz &lt;= przelicz5w) &amp;&amp; (ram_cfg.z5&lt;1) ){     //jesli spelniony warunek<br />          if (ocra&lt; 255){ocra++;}<br />     }else{ //gdy ie spelniony<br />          if (ocra&gt;0){ocra--;}<br />     }<br /><br /> if (ocra &gt; 0){WYJ5_ON;} else {WYJ5_OFF;}<br /><br />OCR1A= OCR1B=ocra;<br /><br /><br />lcd_locate(3,5);<br />lcd_str(&quot; &quot;);<br />lcd_int (ocra);<br /><br />}// timer programowy co 1 sek[/syntax]<br /><br /><br />Trochę zamotałeś ten programik. Pisałem bez sprawdzania wiec możne jakaś składnia będzie żle i ten LCD sobie dopracuj bo bez kasowania jak liczba zajmuje miej pozycji niż poprzednia to ci śmieci zostaną na LCD. np 100 a potem 99 do da 990 chyba.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4629">TomekTomek55</a> — 24 lut 2020, o 23:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Kaz K]]></name></author>
<updated>2020-02-23T21:53:43+01:00</updated>
<published>2020-02-23T21:53:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225015#p225015</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225015#p225015"/>
<title type="html"><![CDATA[Sterowanie PWM powiązane z wyjściem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22896&amp;p=225015#p225015"><![CDATA[
Witam. <br />Ktoś pomoże jak napisać taką funkcję - jeśli spełniony jest warunek ma załaczyć wyj5  i uruchomić pwm sprzętowy (zmiana co 1 sek z timera4 - to mi działa) po osiągnięciu &quot;255&quot; pwm ma zostać zatrzymany. Jesli natomiast warunek przestanie być aktualny  pwm powinien osiągnąć &quot;0&quot; i dopiero wtedy odłaczyc wyj5. Korzystam jak widać z pwm sprzetowego timera1. Sam pwm działa prawidłowo ale moj kulawy algorytm  działa w kólko albo nie działa wcale. <br />Czy jest to możliwe do osiągnięcia w ten sposób ewentualnie proszę o podpowiedź jak zrealizować.<br /><br /><br />[syntax=c]********* timer programowy co 1 sek<br />if !Timer4)<br />             {Timer4 = 100;<br />li++;<br />if(li&gt;1)<br />{li=0;}<br /><br />if((li==1) &amp;&amp; (o==0) )<br />        {ocra++;}<br />f((li==1) &amp;&amp; (o==1))<br />{ ocra--;}<br /><br />****************program wykonywany w petli - waunek<br /> <br />if ((przeliczz &gt;= przelicz5z) &amp;&amp; (przeliczz &lt;= przelicz5w) &amp;&amp; (ram_cfg.z5&lt;1)   )     //jesli spelniony warunek<br />{WYJ5_ON;<br />           if (o==0) <br />               { OCR1A=ocra;<br />        OCR1B=ocra;<br />                           lcd_locate(3,5);<br />                   lcd_int (ocra);<br />        if (ocra &gt;= 255)<br />        {ocra=255;<br />                  o=1;<br />               }<br />}<br />}<br />else<br />if (o==1) )<br />   {     OCR1A=ocra;<br />       OCR1B=ocra;}<br />        lcd_locate(3,5);<br />lcd_int (ocra);<br />  if (ocra&lt;1)<br />    {ocra=0;<br />       o=0;<br />WYJ5_OFF;}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20460">Kaz K</a> — 23 lut 2020, o 21:53</p><hr />
]]></content>
</entry>
</feed>