PIC trigonomeetria asmis
#1
Õhtast!
Kas keegi on näinud assembleris trigonomeetriafunktsione, eriti just arccos f-ni? Float arvudele. Netist otsides on saadaval 8-bitine funktsioon aga pean tegelema 32-bitiste float-arvudega.
1 kraadise täpsusega vastus oleks täiesti piisav (tuulemõõtja jaoks - tuule suuna arvutamiseks).
Vasta
#2
Esiteks tee valemid polünoomideks
Teiseks leia polünoomi täpsus.

Veebis on päris mitu kalkulaatorit polünoomide leidmiseks etteantud täpsusklassi ulatuses.
Lisaks. Kas sul on vaja kraadi ? Kas seda kuvatakse või tehakse edasisi tehteid ?

Polünoome on hea lihtne arvutada, ainult korrutamine ja liitmine. On ka optimiseeritud valemeid.

Samas, kui täpsus on kraad siis võiks ka lookup tabeli teha. Ja üldse, saada pic kukele, 32 bitine ARM on sama kallis ja sama lihtsa footprindiga.
Vasta
#3
Mul on vaja kraadi näitamiseks. Tegin asja Taylori ritta arendamisega. Tõesti lihtne: vaid korrutada ja liita vaja. Kahjuks ei saanud (eelnevates arvutustes) kuidagi float kujust lahti - juurikad jne olid sees. Vaatame, mis täpsus sellest ka tuleb.
Vasta
#4
(24-12-2010, 03:23 PM)KaruTEC Kirjutas: Ja üldse, saada pic kukele, 32 bitine ARM on sama kallis ja sama lihtsa footprindiga.
Sekundeerin.

ARM-i assembler peaks ka päris viisakas olema - loodetavasti Felch'ile meeldib Eukleidese algoritmi näide.
(23-12-2010, 09:58 PM)felch Kirjutas: Õhtast!
Kas keegi on näinud assembleris trigonomeetriafunktsione, eriti just arccos f-ni?
Kas ei peaks olema atan2 ?
Vasta
#5
Algo näide meeldib ! Üritan uuest aastast dinosauruste moodi progemisest loobuda ja proovin C keelt selgeks saada. Kes teab head tutoriali lollile.... ?
Atan2...ee...nagu ei peaks olema aga kontrollin üle.
Vasta
#6
Tutorial sind ei päästa. Aga soovitan üht eestikeelset raamatut, autoriks oli T.Luszckowski (parandage spellingut Smile TTÜ arvutiinstituudist.
Lisaks tuleb lugeda veel Richie ja Kerrigani (C keele autorid) raamatut.

Thats about it. Hiljem tutvud ARMi spetsiifikaga.
Vasta
#7
(25-12-2010, 10:57 PM)KaruTEC Kirjutas: Thats about it. Hiljem tutvud ARMi spetsiifikaga.
Ma ei ole küll eriline spetsialist, aga minu arvates tasuks kohe tutvuda ARM spetsiifikaga, C keele süviti tundmist pole väga vajagi.
Esiteks kui PIC kasutab 35 ASM käsku siis ei ole mõtet kõiki PC omasid ära õppida alguses ja siis alles neist õiged välja valida.

ARM (spetsiifilisemalt näiteks Cortex-M seeria) progremiseks on spets libraryd (CMSIS jt.), neid tasuks uurida. Ja valitud prose arhitektuuri natuke. See puhta C-hulk, mida seal vaja on on suhteliselt iseenesestmõistetav isegi keelt oskamata, selleks ei ole tarvis tervet PC C-d ära õppida.
Vasta
#8
Vaidlen vastu - et ilusat C-d kirjutada peab "juuri" tundma. Ma olen näinud igatsorti jubedaid spagette, nn. torumehe tööd. Kui selline kood toimib siis on tore. Aga kui tekib mõni bugi, siis võib "torumehel" sein ette tulla. Samamoodi nagu programmeerijal, kes ei oska eriti matemaatikat (ei vihja siinkohal Felchile) võib palju jantimist olla mingi krdi võrrandiga, mis oleks võimalik matemaatiliselt 10x lihtsamaks taandada - tüüpiline case on siinused ja koosinused, mille asemel saab tihtipeale Pythagorasega hakkama ja isegi ruutjuurt pole tarvis.
Analoogia liikluseeskirjadega - kõik peavad tundma, vahet pole kas sõidad mikrobussi või oopel agooniaga.
Vasta
#9
soovitaksin alustada C-s mõne konkreetse tööga, hea kui kellegi asjatundja toel. Raamatute näited on valdavalt PC-le rajatud ja erinevad mikrokontrollerite rakendustest, samuti on uuemad raamatud kas ainult C++ või siis pudru Cst ja C++st. ASMilt tulnu võiks piirduda esialgu tavalise Cga, kuna sarnasus on suur ( makroassembleris on võimalik kirjutada koodi mis esmapilgul sarnaneb vägagi Cga) , C++ koodi ülesehitus aga võib olla oluliselt erinev. Ka ülalpool soovitatud Luczkowski raamat pole apsakast vaba, nimelt kannab teos nime "Baasteadmised programmeerimiskeelest C++" aga räägib ainult puhtast C-st. K&R raamat on hea, kuid C keelt on vahepeal mitu korda reformitud. Täna tuleks lähtuda C1999 standardist ( C++ puhul C++2003).
Vasta
#10
(26-12-2010, 12:32 AM)KaruTEC Kirjutas: Vaidlen vastu - et ilusat C-d kirjutada peab "juuri" tundma.

Olen nõus, aga nende juurte tundmiseni võib jõuda mitut moodi. Üks variant on C spekk pähe õppida. Teine variant on hakata kohe midagi tegema. Esimene projekt ei tule kõige kenam kood, aga kui juba pusid niipalju, et tööle saad on rõõm suur ja midagi õpitud ka. Aja jooksul loed juurde kuidas asjad tegelikult käivad (tegemise kõrvalt). Selline "hands on" lähenemine õppimisel on minu arvates 100 korda huvitavam kui kogu teooria enne omandada - vähestel on niipalju püsivust, et enne aasta aega midagi õppida kui sellest käegakatsutavat rakendust nägema hakkab.

Olen nõus Raivoga et alustada konkreetsest projektist raamatute toel oleks hea variant. Võib näiteks osta miski starterkiti, kus koodinäited kaasas ja neist end läbi töötada.
Vasta


Alamfoorumi hüpe:


Kasutaja, kes vaatavad seda teemat: 5 külali(st)ne