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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-07-12T10:20:04+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=20969&amp;mode</id>
<entry>
<author><name><![CDATA[Adyx]]></name></author>
<updated>2018-07-12T10:20:04+01:00</updated>
<published>2018-07-12T10:20:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209715#p209715</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209715#p209715"/>
<title type="html"><![CDATA[Re: Zamiana programu w ATiny 2313]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209715#p209715"><![CDATA[
Dzięki stokrotne za pomoc, zastąpienie mnożenia shiftem pomogło. Jeśli dobrze zrozumiałem działanie shifta , czyli przesuwam 16 razy bo  &quot;65536=2^16&quot;.<br />y=2^n<br />x * y =x*2^n    =&gt;     x &lt;&lt; n.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18496">Adyx</a> — 12 lip 2018, o 10:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2018-07-11T22:23:14+01:00</updated>
<published>2018-07-11T22:23:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209707#p209707</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209707#p209707"/>
<title type="html"><![CDATA[Re: Zamiana programu w ATiny 2313]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209707#p209707"><![CDATA[
Można by spróbować coś uprościć np. zamiast<br />[syntax=basic4gl]Freq = 65536 * Pomoc[/syntax]<br />użyć przesunięcia<br />[syntax=basic4gl]Freq = Pomoc<br />SHIFT Freq, LEFT, 16[/syntax]<br /><br />Nie używać zmiennej typu single i obliczyć wynik do wyświetlenia wykorzystując operacje na liczbach całkowitych. Co robi się wyświetlając część całkowitą, a resztę z dzielenia poprzedza się odpowiednią liczbą zer.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 11 lip 2018, o 22:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Adyx]]></name></author>
<updated>2018-07-12T06:53:29+01:00</updated>
<published>2018-07-10T12:13:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209642#p209642</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209642#p209642"/>
<title type="html"><![CDATA[Zamiana programu w ATiny 2313]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20969&amp;p=209642#p209642"><![CDATA[
Witam.  Jakiś czas temu zakupiłem miernik częstotliwości na mikrokontrolerze ATTINY 2313. Do miernika dołączony był kod żródłowy w Bascomie. Chciałem wykorzystać ten miernik jako skalę do transcievera  z przemianą częstotliwości. Przemiana polega na odjęciu od częstotliwości BFO (12 MHz) częstotliwość generatora VFO czyli<br />częstotliwość odbierana = 12  - VFO. <br />Po dołożeniu jednej linijki programu z tym obliczeniem, BASCOM po kompilacji wywala bląd: Program will overwrite bootloader [12 too long]<br />Rozumiem z tego komunikatu, że program jest za duży. Czy da się to jakoś poprawić ? Sygnał częstotliwości jest dzielony przez 32.<br /><br /><br />[syntax=basic4gl]$regfile = &quot;attiny2313.dat&quot;<br />Enable Interrupts<br />$crystal = 16000000<br />Config Lcd = 16 * 2                                         'konfiguracja LCD<br />Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2<br />Config Portd = Input<br />Set Portd.5<br />Dim Freq As Long<br />Dim F As Single<br />Dim Pomoc As Byte<br />Dim L As Byte<br />Cursor Off<br />Dim S As String * 4<br />Config Timer1 = Counter , Edge = Rising                     'konfiguracja timerow<br />Enable Timer1<br />Start Timer1<br />Config Timer0 = Timer , Prescale = 1024<br />Enable Timer0<br />Start Timer0<br /><br />On Timer0 Sek<br />On Timer1 Fr<br />Cls<br />Do<br />Loop<br /><br /><br />Fr:<br />Incr Pomoc                                               'jesli przepe³nienie timera1 to zwieksz zmienna pomocnicza<br />Return                                                      'potrzebna do obliczenia czestotliwosci<br /><br /><br />Sek:<br />Incr L<br />If L = 61 Then Gosub Licz                        'jezeli procesor odliczy jedna sekunde to skok do podprogramu licz<br />Return<br /><br />Licz:<br />Stop Timer1<br />L = 0<br />Cls<br /><br />Freq = 65536 * Pomoc<br />Freq = Freq + Timer1<br />Freq = 358 - Freq                                '&lt;--- TO JEST DOŁOŻONY KOD<br />F = Freq * 0.0000325559                    'obliczenie czestotliwosci i korekcja<br />                                                            'wplywu rezonatora i pojemnosci z nim pracujacych<br />                                                             'oraz niedokladnosci odmierzenia 1 sekundy<br />S = Fusing(f , &quot;#.###&quot;)                          'formatowanie wyniku<br />Locate 1 , 4<br />Lcd &quot;Pomiar F&quot;<br />Locate 2 , 4<br />Lcd S ; &quot; MHz&quot;                                      'i wyswietlenie go na wyswietlaczu<br />Pomoc = 0<br />Timer0 = 0                                            'zerowanie timerow i zmiennych pomocniczych<br />Timer1 = 0<br />Start Timer1<br /><br />Return[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18496">Adyx</a> — 10 lip 2018, o 12:13</p><hr />
]]></content>
</entry>
</feed>