-
lazyprogramer
- Posts: 85
- Joined: Mon Sep 27, 2010 5:26 pm
Post
by lazyprogramer » Tue Nov 02, 2010 9:12 pm
How can I read the DS temperature?
I know there are 2 sensors in the screens but what is the code for reading the temperature?
I found this in libnds/include/nds/arm7 touch:
Code: Select all
uint32 touchReadTemperature(int * t1, int * t2);
But what does it give me? What information?
-
Xenon
- Posts: 7
- Joined: Tue Jul 20, 2010 2:55 pm
Post
by Xenon » Fri Nov 05, 2010 4:08 am
like this:
Code: Select all
int t1,t2;
u32 temp=touchReadTemperature(&t1, &t2);
printf("%.2f\n",(double)temp/0x1000);
Of course in actual code you need to transfer temp to ARM9 using fifo or IPC.
-
lazyprogramer
- Posts: 85
- Joined: Mon Sep 27, 2010 5:26 pm
Post
by lazyprogramer » Sat Nov 06, 2010 2:21 pm
Of course in actual code you need to transfer temp to ARM9 using fifo or IPC.
What did you mean? Can you explain me what I have to do if I want to include this code
Code: Select all
int t1,t2;
u32 temp=touchReadTemperature(&t1, &t2);
printf("%.2f\n",(double)temp/0x1000);
in my script?
-
lazyprogramer
- Posts: 85
- Joined: Mon Sep 27, 2010 5:26 pm
Post
by lazyprogramer » Sun Nov 07, 2010 1:37 pm
thank you very much zermorus
But just one last question:
When I start your example on DS I get an endless list of nubers:
739 844 112842
...
And they change very fast... Is this the temperature? And how can I make it in °C and looks better?
Please help
-
zeromus
- Posts: 212
- Joined: Wed Mar 31, 2010 6:05 pm
Post
by zeromus » Sun Nov 07, 2010 10:53 pm
The temperature is fixed point 20.12 degrees celsius. If you can't figure out why there is an endless list of changing numbers then you've got the wrong hobby.
-
lazyprogramer
- Posts: 85
- Joined: Mon Sep 27, 2010 5:26 pm
Post
by lazyprogramer » Mon Nov 08, 2010 8:14 pm
The temperature is fixed point 20.12 degrees celsius.
??
What did you mean with that?
And what does these numbers mean? They're are not given in degrees celsius/fahrenheit or Reaumur!
739 844 112842
-
elhobbs
- Posts: 358
- Joined: Thu Jul 02, 2009 1:19 pm
Post
by elhobbs » Mon Nov 08, 2010 9:22 pm
I will give you a hint...
Code: Select all
int t1,t2;
u32 temp=touchReadTemperature(&t1, &t2);
then, look up "fixed point arithmetic"
-
lazyprogramer
- Posts: 85
- Joined: Mon Sep 27, 2010 5:26 pm
Post
by lazyprogramer » Tue Nov 09, 2010 6:51 pm
The temperature is given in detail, but what are these numbers in degrees celsius? I mean
how can get these numbers in °C???
-
elhobbs
- Posts: 358
- Joined: Thu Jul 02, 2009 1:19 pm
Post
by elhobbs » Wed Nov 10, 2010 12:02 am
Get ready here comes the baby spoon... temp is the temperature in degrees celcius in 20.12 fixed point - divide the number by 4096 (2 to the 12th power) to convert it to an integer.
Seriously though, asking for help and putting in no effort on your part is really annoying.
Who is online
Users browsing this forum: No registered users and 3 guests