www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Vprašanje za poznavalce C-ja
Pojdi na stran Prejšnja  1, 2, 3 ... 13, 14, 15, 16  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Mbili
Član
Član



Pridružen-a: Tor 03 Jan 2012 20:14
Prispevkov: 34
Aktiv.: 0.23
Kraj: Ljubljana

PrispevekObjavljeno: Sre Okt 30, 2013 7:39 pm    Naslov sporočila:   Odgovori s citatom

Poskusi

C = -A & B;
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2751
Aktiv.: 12.39
Kraj: Trzic

PrispevekObjavljeno: Sre Okt 30, 2013 7:44 pm    Naslov sporočila:   Odgovori s citatom

Množenje z MUL (assembler Cortex-M3) načeloma vzame 1 cikel. Od kod je compiler 32 ciklov pridelal?

@Mbili: sem imel tudi jaz tole 'v paci' Smile

_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 19.74

PrispevekObjavljeno: Sre Okt 30, 2013 8:16 pm    Naslov sporočila:   Odgovori s citatom

Mogoče bi celo šlo z aritmetičnimi triki, vendar dvomim, da bo kaj hitreje od ene primerjave...
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
siljo
Član
Član



Pridružen-a: Tor 28 Okt 2003 8:08
Prispevkov: 1035
Aktiv.: 4.66
Kraj: Ribn'ca

PrispevekObjavljeno: Sre Okt 30, 2013 8:35 pm    Naslov sporočila:   Odgovori s citatom

Mbili je napisal/a:
Poskusi

C = -A & B;



tole bi moralo delati!
če je A = 1 je potem -A=FF in če daš & z B je to to....

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Sre Okt 30, 2013 10:51 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Pon Apr 28, 2014 5:05 pm    Naslov sporočila:   Odgovori s citatom

Vem kaj pomeni &spremenljivka ali *spremenljivka, ne vem pa, kaj pomeni

Koda:
*(volatile uint8_t*) spremenljivka = x;


Lahko kdo prosim razloži?

Hvala Smile

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 19.74

PrispevekObjavljeno: Pon Apr 28, 2014 10:15 pm    Naslov sporočila:   Odgovori s citatom

Cast operator.
"spremenljivka" najprej postane kazalec na tip "volatile uint8_t", nato se pa na lokacijo, kamor kaže, vpiše vrednost x.

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Ned Avg 03, 2014 9:24 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 19.74

PrispevekObjavljeno: Ned Avg 03, 2014 10:11 pm    Naslov sporočila:   Odgovori s citatom

func2 imaš definiran kot tip uint32_t, vračaš pa vrednost -15
Mogoče je to problem?

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3158
Aktiv.: 14.23
Kraj: Postojna

PrispevekObjavljeno: Pon Avg 04, 2014 10:19 am    Naslov sporočila:   Odgovori s citatom

ERROR (0) in ERR_OK (0) sta enaki vrednosti, torej pogoj v funcl() ni izpolnjen.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Sre Avg 06, 2014 12:39 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sigi
Član
Član



Pridružen-a: Čet 31 Jul 2014 11:42
Prispevkov: 199
Aktiv.: 1.69
Kraj: Kamnik

PrispevekObjavljeno: Sre Avg 06, 2014 12:58 pm    Naslov sporočila:   Odgovori s citatom

Živijo,

Delam na Cortex M0 in rabim sinus(), brez uporabe float aritmetike.
Čas izvajanja ni kritičen, ker funkcijo kličem le ob inicijalizaciji tabele ob zagonu.
Želim se le izogniti float knjižnici (flash size, nabije skoraj 10k za float)

Na netu sem našel tole:
Koda:

//! A sine approximation via  a fourth-order cosine approx.
int32_t isin_S4(int32_t x)
{
    int32_t  c, y;
    static const int32_t qN= 13, qA= 12, B=19900, C=3516;

    c= x<<(30-qN);              // Semi-circle info into carry.
    x -= 1<<qN;                 // sine -> cosine calc

    x= x<<(31-qN);              // Mask with PI
    x= x>>(31-qN);              // Note: SIGNED shift! (to qN)
    x= x*x>>(2*qN-14);          // x=x^2 To Q14

    y= B - (x*C>>14);           // B - x^2*C
    y= (1<<qA)-(x*y>>16);       // A - x^2*(B-x^2*C)

    return c>=0 ? y : -y;
}


in dela OK, bi si pa želel malo boljšo aproksimacijo.

Iščem izdelano funkcijo v C-ju (link?), ne matematične teorije.

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Sre Avg 06, 2014 3:06 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sigi
Član
Član



Pridružen-a: Čet 31 Jul 2014 11:42
Prispevkov: 199
Aktiv.: 1.69
Kraj: Kamnik

PrispevekObjavljeno: Sre Avg 06, 2014 5:43 pm    Naslov sporočila:   Odgovori s citatom

Kroko je napisal/a:
Jaz tabelo ponavadi kar napišem.
http://www.daycounter.com/Calculators/Sine-Generator-Calculator.phtml


Hvala za namig, ampak sta dva problema:
-nimam le tabale sinusa, je malo bolj "fancy" (sin + 3harmonik...)
-tabela ni fiksna, ampak se izračuna glede na nastavljive parametre. Tako da jo mora mikrokontroler preračunat.

Saj do sedaj sem s tabelami lepo shajal, tu pa ne gre.

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Čet Avg 07, 2014 3:26 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... 13, 14, 15, 16  Naslednja
Stran 14 od 16

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group