Kuu tõusu- ja loojangu ajad
#21
(17-04-2012, 10:36 PM)A.R. Kirjutas: Kõigest sellest tehti ka DISASM ja see oli kivis 102c - 9c54 paigutatud.
Natuke üle 8000 Sad
Ehk siis ligi 35 kB ehk üle poole mälu mahust! Seda on siniste tulede jaoks tiba palju. Kontroller peab ka akva juhtimisega tegelema...
Vasta
#22
(18-04-2012, 09:44 AM)felch Kirjutas: Ehk siis ligi 35 kB ehk üle poole mälu mahust! Seda on siniste tulede jaoks tiba palju.
Kontroller peab ka akva juhtimisega tegelema...
Eks see Sinu lõppeesmärk on siiani suur arusaamatus.

Aga kui ära ei mahu, siis võib ju võtta kohe palju protsessoreid nt kaks.
Ajavad omavahel üle netijuttu. (Local neti.)
Seal datasheedis oli ka üks 128-ne kivi.
(See pidi nüüd siis nali olema. Natuke magedavõitu.)

Need sin ja cos ja arctan olid seal lõpus veel eraldi ruumi võtmas.
Samas, transleerus kiiresti.

Aga nende PIC-idega oli üks veider lugu. Juba vanast ajast jäi silma.
Kui teha tabel global muutujana, siis ära ei mahu.
Kui sama asi panna tükati mitme local programmi sisse, siis on kõik korras.
Aga local on ju stekis ja visatakse iga kord minema.
Kus ta siis kõik need tabelid ära mahutab ja laadimiseks võtab?
Mingi aadressi probleem?
Vasta
#23
(18-04-2012, 10:53 AM)A.R. Kirjutas: Aga nende PIC-idega oli üks veider lugu. Juba vanast ajast jäi silma.
Kui teha tabel global muutujana, siis ära ei mahu.
Kui sama asi panna tükati mitme local programmi sisse, siis on kõik korras.
Aga local on ju stekis ja visatakse iga kord minema.
Kus ta siis kõik need tabelid ära mahutab ja laadimiseks võtab?
Mingi aadressi probleem?

PIC-il on aadressiruum lehekülgedena ja see lehe keeramine on eraldi tegevus. Kompilaator üritab seda peita, aga ikkagi tuleb sellest veidraid piiranguid ja arusaamatuid veateateid. Lehe suurus sõltub pici perekonnast:
Kood:
Core Size   Page Size
12-bit           512
14-bit           2048
16-bit           8192
Siin on pikem jutt. Aga felc vana asmiässana võib sellest ilmselt pikalt vesta Smile
Vasta
#24
Wiki ütleb, et arctan saab arvutada lihtsa rittaarenduse järgi: http://en.wikipedia.org/wiki/Inverse_tri..._functions
Kes ütleks, mitu kohta on vaja arvutada antud Kuu tõusu/loojangu proge jaoks?
Vasta
#25
Vastan üldises vormis Smile

Kui meil minimaalne "kuuaeg" on nt 12 tundi ja me tahame täpsust 5 minutit siis see tähendab 5/(12*60) ehk 1/144, kui arctan jookseb vahemikus 0..1 siis järelikult vaja arctani täpsust ca 2.5 korda rohkem ehk ca 1/400 ehk siis 0.0025 ehk siis 4 kohta peale koma on paras ja rohkem pole tarvis.

Nii 12 tundi kui arctani vahemik 0..1 on lambist, kuid poindi peaks selgeks tegema.
Vasta
#26
Programmi tekstile lisatud sek arvestus,
atan kohti mõjutatud ATK väärtusega.

Järeldus: 4 kohta peale koma piisav minuti täpsuseks.

__________________________________
Tallinn Tallin 59° 26 N, 24° 45 E"
59.43 24.75
Y 2012 M 4 D 15 H -3 '' arvestatud suveaeg.

ATK 1000000000
MOONRISE AT 4:14 S 9.77241847
MOONSET AT 13:58 S 14.2368016
ATK 1000000
MOONRISE AT 4:14 S 9.75386166
MOONSET AT 13:58 S 14.2483363
ATK 10000
MOONRISE AT 4:14 S 7.6979559
MOONSET AT 13:58 S 12.9721378
ATK 1000
MOONRISE AT 4:13 S 40.2190289
MOONSET AT 13:58 S 16.4427364
ATK 100
MOONRISE AT 4:10 S 50.4264959
MOONSET AT 13:58 S 28.2024313
ATK 10
MOONRISE AT 3:44 S 56.0859963
MOONSET AT 14:26 S 7.52969845

Sarnane tehe tehtud kõigi kolme atan() - funktsiooniga
415 ''A7=ATN(N7/D7)/R1
tn100=ATN(N7/D7)

atn1=N7/D7
tn1=ATN(atn1)
tn1oi=tn1*ATK
tn1o=INT(tn1oi)
tn1o1=tn1o/ATK
A7=tn1o1/R1
PRINT " ";tn100;" ATAN1 arg";atn1;" ATAN ";tn1;" ATK ";ATK;" * ";tn1oi;" / ";tn1o1;
__________________
Loodan et sai kõik õigesti.
Vasta
#27
Ma kasutasin oma kontrolleris kuufaasi arvutamiseks algoritmi siit. Kella-aegade arvitamine ei tundunud mõistlik (sest see sõltub sinu geograafilistest koordinaatidest). Kuupaistmise kella-ajad lihtsalt sisestan käsitsi.
Vasta
#28
Hakkasin moonup.bas'i koodi asmi ringi kirjutama ja tekkis küsimus. Nimelt on seal (rida 775) tehted:
D1=Int(D)
F=D-D1-0.5
D on kuupäev. Iga kuupäeva puhul peaks F=0,5 !? Päevi ei arvestata? Või kas Int(päev) saab olla muud kui päev ise???
Vasta
#29
(13-05-2012, 08:44 PM)felch Kirjutas: Hakkasin moonup.bas'i koodi asmi ringi kirjutama ja tekkis küsimus. Nimelt on seal (rida 775) tehted:
D1=Int(D)
F=D-D1-0.5
D on kuupäev. Iga kuupäeva puhul peaks F=0,5 !? Päevi ei arvestata? Või kas Int(päev) saab olla muud kui päev ise???
See on BASIC ja seal pole arvutüüpe. (vist?)
Kui huvitab
aasta 2012.7
kuu 4.8
päev 12.3
siis on seal tulemus midagi muud kui 2012, 4, 12
Seega see INT seal ka ei päästa.
Loogika järgi peaks seal arvutatama üks arv - ajaline kaugus mingist hetkest.




Vasta
#30
Ah et kuupäev on ka murdarv? Mida su masin näitab nt. tänase päeva kohta?
Hetkel jääb mulje, et päevi ei arvestata - saan ju RTC kivi kalendrilt alati täisarvud!
Vasta


Alamfoorumi hüpe:


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