Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 11:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 10 lip 2018, o 12:13 
Offline
Nowy

Dołączył(a): 04 gru 2017
Posty: 2
Pomógł: 0

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
częstotliwość odbierana = 12 - VFO.
Po dołożeniu jednej linijki programu z tym obliczeniem, BASCOM po kompilacji wywala bląd: Program will overwrite bootloader [12 too long]
Rozumiem z tego komunikatu, że program jest za duży. Czy da się to jakoś poprawić ? Sygnał częstotliwości jest dzielony przez 32.


Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 12 lip 2018, o 06:53 przez Adyx, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2018, o 22:23 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Można by spróbować coś uprościć np. zamiast
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

użyć przesunięcia
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2018, o 10:20 
Offline
Nowy

Dołączył(a): 04 gru 2017
Posty: 2
Pomógł: 0

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 "65536=2^16".
y=2^n
x * y =x*2^n => x << n.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO