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



Teraz jest 19 kwi 2024, o 12:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 3 gru 2016, o 20:51 
Offline
Nowy

Dołączył(a): 03 gru 2016
Posty: 6
Pomógł: 0

W moim nowym programie sterujacym falownikiem chce umiescic wieksza niz zwykle tablice sinus a, wiec pomyslalem ze powinienem ja wygenerowac tym razem przy pomocy funkcji sin ( ma miec 180 punktow). Natrafilem jednak na dziwny problem;
na poczatku pliku main oczywiscie informacja dla preprocesora: #include <math.h>
nastepnie w funkcji main przed while(1):

[// przygotowanie wielkiej tablicy sinusa

for ( idx = 0 ; idx < 180 ; idx++ ) {
sin_pom = sin ( idx * M_PI / 180 );
sin_baza180 [ idx ] = (uint16_t) sin_pom;
}=c][/syntax]

Po skompilowaniu otrzymuje blad: Id returned 1 exit status, dopiero gdy w argumencie funkcji sin podstawiam wartosc doslowna np M_PI albo 0 program kompiluje sie normalnie. Nie rozumiem dlaczego tak sie dzieje, bardzo prosze o podpowiedz...
Srodowisko Eclipse LUNA/ windows 8.1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2016, o 03:13 
Offline
Nowy

Dołączył(a): 15 sie 2014
Posty: 5
Pomógł: 0

Cześć,
Czy pomyślałeś co z wartością sin_pom zrobi rzutowanie na uint16_t ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2016, o 12:28 
Offline
Użytkownik

Dołączył(a): 25 lip 2015
Posty: 140
Zbananowany użytkownik

Pomógł: 18

Dodaj w opcjach linkera -lm.

Więcej tutaj:
AVR Libc Reference Manual Modules: <math.h>: Mathematics
AVR Libc Reference Manual FAQ: I get "undefined reference to..." for functions like "sin()



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2016, o 13:08 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

To co napisali koledzy powyżej to oczywiście słuszne uwagi, ja spytam jednak o coś innego.

Czy masz jakiś ważny powód, aby umieścić tę tablicę w pamięci RAM?
Pamięci FLASH jest zwykle więcej, a wartości sinusa są przecież stałe.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2016, o 22:02 
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

Przykład:
Tablica wartości funkcji utworzona preprocesorem

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2016, o 10:28 
Offline
Nowy

Dołączył(a): 03 gru 2016
Posty: 6
Pomógł: 0

dziekuje bardzo, zaraz zabiore sie do pracy...



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO