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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-26T21:30:37+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=7574&amp;mode</id>
<entry>
<author><name><![CDATA[matrix]]></name></author>
<updated>2014-06-26T21:30:37+01:00</updated>
<published>2014-06-26T21:30:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85842#p85842</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85842#p85842"/>
<title type="html"><![CDATA[Re: bascom przeróbka programu na inny mC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85842#p85842"><![CDATA[
Przerobienie tego to niemalże napisanie softu od nowa.<br />Po pierwsze - nie możesz zadeklarować timera z atrybutem gate. Gate dotyczy przetwornika ADC.<br />Po drugie - aliasów nie napiszesz stosując składnię bascoma8051 w bascomie avr czyli podkładanie przyjaznych nazw w poniższy sposób:<br /><br />[syntax=basic4gl]Gr1 Alias P3.0<br />Gr2 Alias P3.1<br />Gr3 Alias P3.2<br />Gr4 Alias P3.4<br />Gr5 Alias P3.5<br />Jp Alias P3.7[/syntax]<br />Niczego nie da poza tym że kompilator wywali błąd. Musisz zmienić na deklarację typowych portów/pinów jak powiedzmy:<br /><br />[syntax=basic4gl]Gr1 Alias Portd.0<br />Gr2 Alias Portd.1<br />Gr3 Alias Portd.2<br />Gr4 Alias Portd.4<br />Gr5 Alias Portd.5<br />Jp Alias Portd.7[/syntax]<br /><br />Jak to poprawisz pod swojego procka i swoją płytkę to będziemy myśleć dalej<br /><br />Przerwania od Int1 nie napiszesz w ten sposób:<br /><br />[syntax=basic4gl]Set Tcon.2                                                  'przerwanie int1 reagowac bedzie na opadajace zbocze[/syntax]<br />Żeby użyć przerwania od Int1 wcześniej musisz użyć składni:<br /><br />[syntax=basic4gl]Config Int1 = falling   'konfiguracja przerwania int1 reagując na zbocze opadające<br />Enable Interrupts   'zezwolenie globalne na przerwania<br />Enable Int1   'zezwolenie na przerwanie int1<br />On Int1 przerwanie_int1   'jeśli wystąpi przerwanie na int1 to skocz do podprogramu przerwanie_int1[/syntax]<br /><br />Jak już zaznaczyłem wyżej, przeróbka tego to pisanie softu od nowa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=689">matrix</a> — 26 cze 2014, o 21:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-06-26T20:42:29+01:00</updated>
<published>2014-06-26T20:42:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85835#p85835</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85835#p85835"/>
<title type="html"><![CDATA[Re: bascom przeróbka programu na inny mC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85835#p85835"><![CDATA[
Na początek przeczytaj to i popraw posta<br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 26 cze 2014, o 20:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[morgy1234]]></name></author>
<updated>2014-06-26T20:37:25+01:00</updated>
<published>2014-06-26T20:37:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85834#p85834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85834#p85834"/>
<title type="html"><![CDATA[bascom przeróbka programu na inny mC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7574&amp;p=85834#p85834"><![CDATA[
witam prosze o pomoc w przeróbce programu który został napisany na mC at89c2051.<br />Czy przerobi mi ktoś program na attiny2313, ja sam próbowałem ale dopiero się uczę i jestem w fazie migania  diodą, i nie daje rady tego przerobić. <br />inf do programu : <br />kwarc 12mhz zewnętrzny. <br /><br />[syntax]$regfile = &quot;ATtiny2313.dat&quot;<br />$crystal = 12000000[/syntax]<br />te dwie linijki przerobiłem sam  dalej nie wiem co dalej jak coś próbowałem to było mnóstwo błędów. <br />w tych dwóch linijkach są jakieś błędy:<br />[syntax]Config Timer0 = Timer , Gate = Internal , Mode = 1<br />Config Timer1 = Timer , Gate = Internal , Mode = 1[/syntax]<br /> <br />a to cały program:<br />[syntax]$regfile = &quot;ATtiny2313.dat&quot;<br />$crystal = 12000000<br /><br />Config Timer0 = Timer , Gate = Internal , Mode = 1<br />Config Timer1 = Timer , Gate = Internal , Mode = 1<br /><br />Declare Sub Przel_gr1                                       'podrogramy sprawdzenia warunkow zapalenia diod grupy 1 do 5<br />Declare Sub Przel_gr2<br />Declare Sub Przel_gr3<br />Declare Sub Przel_gr4<br />Declare Sub Przel_gr5<br /><br />On Timer0 Zw_licz_czasu                                     'przerwonia obslugi przpelnienia timera0<br />On Timer1 Obs_wysw                                          'przerwanie od timer1 obslugujace wyswietlacz led<br />On Int1 Pomiar                                              'przerowania obslugi pomiaru<br /><br />Dim Nr_gr_led As Byte                                       'okresla numer grupy dio led<br />Dim Gr(5) As Byte                                           'tablica zmiennych sterujacych diodami led<br />Dim Wynik As Word                                           'obliczony wynik predkosci RPM<br />Dim Temp As Word                                            'zmienna pomocnicza do obliczen<br />Dim Zm_pom As Long                                          'zmienna przechowujaca ilosc zliczonych impulsow podczas jednego obrotu<br />Dim Zez_pom As Bit                                          'flaga zezwolenia na pomiar<br />Dim Pom_zak As Bit                                          'flaga informujaca o zakonczeniu pomiaru<br />Dim Licz_czas As Byte                                       'pomocniczy licznik czasu<br />Dim Br_syg As Byte                                          'zmienna licznikowa graku impulsow na wejsciu<br /><br />Gr1 Alias P3.0<br />Gr2 Alias P3.1<br />Gr3 Alias P3.2<br />Gr4 Alias P3.4<br />Gr5 Alias P3.5<br />Jp Alias P3.7<br /><br />Set Jp<br />Set Gr1<br />Set Gr2<br />Set Gr3<br />Set Gr4<br />Set Gr5<br /><br />Nr_gr_led = 1<br />Set Tcon.2                                                  'przerwanie int1 reagowac bedzie na opadajace zbocze<br />Priority Set Int1<br />Priority Reset Timer0<br />Disable Int0<br />Enable Timer0<br />Enable Timer1<br />Enable Int1<br />Counter1 = 61800                                            'wartosc poczatkowa timera1<br />Start Timer1<br />Wynik = 0<br />Set Zez_pom<br />Reset Pom_zak<br />Br_syg = 0<br />Enable Interrupts<br /><br />Do                                                          'petla glowna programu<br />  If Pom_zak = 1 Then                                       'jezeli pomiar zakonczony to<br />    Disable Timer0                                          'zablokuj timer0<br />    Temp = Counter0                                         'odczytaj wartosc timera0<br />    Zm_pom = Zm_pom + Temp                                  'dodaj ja do wartosci zmiennej zm_pom<br />    Temp = 60000000 / Zm_pom                                'oblicz predkosc ze wzoru 60*1MHz/zm_pom<br />    If Jp = 0 Then                                          'jezeli zwora zalozona to podziel<br />      Temp = Temp / 2                                       'wynik przez 2 gdy na obrot przypadaja dwa zaplony<br />    End If<br />    Wynik = Temp                                            'zapiasz wynik do zmiennej wynik<br />    Reset Pom_zak                                           'zeruj flage zezwolenia na obliczenie predkosci<br />    Set Zez_pom                                             'ustaw flage zezwalajaca na pomiar<br />    Zm_pom = 0                                              'wyzeruj zmienne<br />    Licz_czas = 0<br />    Enable Timer0<br />  Else                                                      'w przeciwnym wypadku<br />    If Wynik &gt; 0 And Br_syg = 65 Then                       'jezeli wynik &gt;0 oraz wartosc br_syg=65 to<br />      nop<br />      nop<br />      nop<br />      Decr Wynik                                            'zmniejsz zmienna wyniku<br />    End If<br />  End If<br />Loop                                                        'koniec petli glownej programu<br />End<br /><br />Zw_licz_czasu:                                              'przerwanie przepelnienia timera0<br />  Zm_pom = Zm_pom + 65536                                   'dodaj wartosc 65536 (licznik pracuje jako 16-bitowy)<br />  Incr Licz_czas                                            'zwieksz zmienna licz_czas<br />  If Licz_czas = 10 Then                                    'jezeli wartosc tej zmiennej osiagnie 10 to<br />    Stop Timer0                                             'zatrzymaj timer0<br />    Set Zez_pom                                             'ustaw flage zezwolenia na pomiar<br />    Br_syg = 0                                              'wyzeruj zmienna br_syg<br />  End If<br />Return<br /><br />Pomiar:                                                     'przerwanie od wejscia int1<br />  If Zez_pom = 1 Then                                       'jezeli flaga zezwolenia pomiaru ustawiona to<br />    Counter0 = 0                                            'wyzeruj timer0<br />    Start Timer0                                            'start timer0<br />    Reset Zez_pom                                           'wyzeruj flage zezwolenia na pomiar<br />  Else                                                      'w przeciwnym wypadku<br />    Stop Timer0                                             'zatrzymaj timer0<br />    Set Pom_zak                                             'ustaw flage pomiar zakonczony<br />  End If<br />  Br_syg = 0<br />Return<br /><br />Obs_wysw:                                                   'przerowanie od timer1 obslugujace multipleksowanie wyswietlacza<br />  If Br_syg &lt;&gt; 65 Then                                      'jezeli br_syg&lt;&gt;65 to<br />    Incr Br_syg                                             'zwieksz wartosc zmiennej br_syg<br />  End If<br />  Counter1 = 61800                                          'wartosc poczatkowa timera1<br />  Start Timer1<br />  Set Gr1                                                   'wylacz wszystkie grupy diod led<br />  Set Gr2<br />  Set Gr3<br />  Set Gr4<br />  Set Gr5<br />  Select Case Nr_gr_led                                     ' zaleznosci od numeru grupy diod led wykonaj<br />    Case 1 :<br />      Call Przel_gr1                                        'wywolaj podprogram obslugi grupy1<br />      P1 = Gr(1)                                            'wystaw wartosc zmiennej gr(1) na port P1<br />      Reset Gr1                                             'wlacz grupe 1<br />    Case 2 :                                                'dla grupy 2 itd<br />      Call Przel_gr2<br />      P1 = Gr(2)<br />      Reset Gr2<br />    Case 3 :<br />      Call Przel_gr3<br />      P1 = Gr(3)<br />      Reset Gr3<br />    Case 4 :<br />      Call Przel_gr4<br />      P1 = Gr(4)<br />      Reset Gr4<br />    Case 5 :<br />      Call Przel_gr5<br />      P1 = Gr(5)<br />      Reset Gr5<br />  End Select<br />  Incr Nr_gr_led                                            'zwieksz zmienna okreslajaca numer grupy<br />  If Nr_gr_led = 6 Then                                     'jezeli zmienna = 6 to<br />    Nr_gr_led = 1                                           'zapisz do niej wartosc 1<br />  End If<br />Return<br /><br />Sub Przel_gr1                                               'podprogram sprawdzajacy warunki zalaczenia diod led grupy 1<br />  If Wynik &gt;= 1750 Then                                     'jezeli wynik &gt;= od 1750 RPM to zalacz wszystkie LED calej grupy 1<br />    Gr(1) = 0<br />    Exit Sub                                                'wyjdz z podprogramu<br />  End If<br />  If Wynik &gt;= 1500 Then                                     'jezeli wynik &gt;= od 1500 RPM to zalacz 7 LED calej grupy 1 itd<br />    Gr(1) = 128<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 1250 Then<br />    Gr(1) = 192<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 1000 Then<br />    Gr(1) = 224<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 750 Then<br />    Gr(1) = 240<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 500 Then<br />    Gr(1) = 248<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 250 Then<br />    Gr(1) = 252<br />    Exit Sub<br />  End If<br />  If Wynik &lt; 250 Then<br />    Gr(1) = 254<br />  End If<br />End Sub<br /><br />Sub Przel_gr2                                               'podprogram sprawdzajacy warunki zalaczenia diod led grupy 2<br />  Gr(2) = 255<br />  If Wynik &gt;= 3750 Then<br />    Gr(2) = 0<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 3500 Then<br />    Gr(2) = 128<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 3250 Then<br />    Gr(2) = 192<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 3000 Then<br />    Gr(2) = 224<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 2750 Then<br />    Gr(2) = 240<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 2500 Then<br />    Gr(2) = 248<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 2250 Then<br />    Gr(2) = 252<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 2000 Then<br />    Gr(2) = 254<br />  End If<br />End Sub<br /><br />Sub Przel_gr3                                               'podprogram sprawdzajacy warunki zalaczenia diod led grupy 3<br />  Gr(3) = 255<br />  If Wynik &gt;= 5750 Then<br />    Gr(3) = 0<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 5500 Then<br />    Gr(3) = 128<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 5250 Then<br />    Gr(3) = 192<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 5000 Then<br />    Gr(3) = 224<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 4750 Then<br />    Gr(3) = 240<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 4500 Then<br />    Gr(3) = 248<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 4250 Then<br />    Gr(3) = 252<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 4000 Then<br />    Gr(3) = 254<br />  End If<br />End Sub<br /><br />Sub Przel_gr4                                               'podprogram sprawdzajacy warunki zalaczenia diod led grupy 4<br />  Gr(4) = 255<br />  If Wynik &gt;= 7750 Then<br />    Gr(4) = 0<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 7500 Then<br />    Gr(4) = 128<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 7250 Then<br />    Gr(4) = 192<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 7000 Then<br />    Gr(4) = 224<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 6750 Then<br />    Gr(4) = 240<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 6500 Then<br />    Gr(4) = 248<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 6250 Then<br />    Gr(4) = 252<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 6000 Then<br />    Gr(4) = 254<br />  End If<br />End Sub<br /><br />Sub Przel_gr5                                               'podprogram sprawdzajacy warunki zalaczenia diod led grupy 5<br />  Gr(5) = 255<br />  If Wynik &gt;= 9000 Then<br />    Gr(5) = 224<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 8750 Then<br />    Gr(5) = 240<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 8500 Then<br />    Gr(5) = 248<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 8250 Then<br />    Gr(5) = 252<br />    Exit Sub<br />  End If<br />  If Wynik &gt;= 8000 Then<br />    Gr(5) = 254<br />  End If<br />End Sub[/syntax]<br /> <br /> <a href="http://www4.zippyshare.com/v/26443601/file.html"  class="postlink">http://www4.zippyshare.com/v/26443601/file.html</a><br />tutaj dodaje link do pliku z programem do pobrania w tym pliku są już te 2 pierwsze linijki przerobione <br /><br />prosze o pomoc i wyrozumiałość <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />z góry dziękuje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4937">morgy1234</a> — 26 cze 2014, o 20:37</p><hr />
]]></content>
</entry>
</feed>