How do you use the Timer VP?
Norvin
Posts: 4
I'm trying to use the Timer VP to put a time stamp on my code then send it via UART back to the terminal window.· However if i use the code as shown in the Help menu example i get the following error.
Error: No match was found for method"append(stamp.core.Timer)
··· public static void main()
····· {
······· StringBuffer telemetry=new StringBuffer(128);
······· Uart out=new Uart(Uart.dirTransmit,CPU.pin8,Uart.invert,
································ Uart.speed57600,Uart.stop1);
······· int [noparse]/noparse d= new int[noparse][[/noparse]5];
······· int average;
········Timer t = new Timer();
······· t.mark();
······· while (true)
········· {
··········· t.mark();
··········· for (int i=0;i<4;i++)
············· {
··············· d[noparse][[/noparse]4-i]=d[noparse][[/noparse]4-(i+1)];
············· }
··········· average=((d[noparse][[/noparse]0]/4)+(d[noparse][[/noparse]1]/4)+(d[noparse][[/noparse]2]/4)+(d[noparse][[/noparse]3]/4));
··········· d[noparse][[/noparse]0]=CPU.pulseIn(32767, CPU.pin1, true);
··········· telemetry.clear();
··········· telemetry.append(average)
···················· .append(",")
···················· .append(d[noparse][[/noparse]0])
···················· .append(",")
···················· .append(t)
···················· .append("\r");
··········· out.sendString(telemetry.toString());
········· }
····· }
· }
Error: No match was found for method"append(stamp.core.Timer)
··· public static void main()
····· {
······· StringBuffer telemetry=new StringBuffer(128);
······· Uart out=new Uart(Uart.dirTransmit,CPU.pin8,Uart.invert,
································ Uart.speed57600,Uart.stop1);
······· int [noparse]/noparse d= new int[noparse][[/noparse]5];
······· int average;
········Timer t = new Timer();
······· t.mark();
······· while (true)
········· {
··········· t.mark();
··········· for (int i=0;i<4;i++)
············· {
··············· d[noparse][[/noparse]4-i]=d[noparse][[/noparse]4-(i+1)];
············· }
··········· average=((d[noparse][[/noparse]0]/4)+(d[noparse][[/noparse]1]/4)+(d[noparse][[/noparse]2]/4)+(d[noparse][[/noparse]3]/4));
··········· d[noparse][[/noparse]0]=CPU.pulseIn(32767, CPU.pin1, true);
··········· telemetry.clear();
··········· telemetry.append(average)
···················· .append(",")
···················· .append(d[noparse][[/noparse]0])
···················· .append(",")
···················· .append(t)
···················· .append("\r");
··········· out.sendString(telemetry.toString());
········· }
····· }
· }
Comments
your use of t to create a timestamp is not correct.
Here is another way of doing what you want.
··· public static void main()
····· {
······· char[noparse]/noparse·telemetry=new char[noparse][[/noparse]128];
······· Uart out=new Uart(Uart.dirTransmit,CPU.pin8,Uart.invert,
································ Uart.speed57600,Uart.stop1);
······· int [noparse]/noparse d= new int[noparse][[/noparse]5];
······· int average;
········ScaledTimer16 t = new ScaledTimer16(1,100); //timeunit = 100*10uS
········t.mark(); //start with 'time' 0
······· while (true)
········· {
··········· int passedTime = t.passedTime(); //number of timeunits passed
························································· //since last call to mark()
··········· for (int i=0;i<4;i++)
············· {
··············· d[noparse][[/noparse]4-i]=d[noparse][[/noparse]4-(i+1)];
············· }
··········· average=((d[noparse][[/noparse]0]/4)+(d[noparse][[/noparse]1]/4)+(d[noparse][[/noparse]2]/4)+(d[noparse][[/noparse]3]/4));
··········· d[noparse][[/noparse]0]=CPU.pulseIn(32767, CPU.pin1, true);
··········· int k = Format.bprintf(telemetry,0,"%u,",average);
··········· k = Format.bprintf(telemetry,k,"%u,",d[noparse][[/noparse]0]);
··········· k = Format.bprintf(telemetry,k,"%u\r\n",passedTime);
··········· telemetry[noparse][[/noparse]k] = 0; //make telemetry an asciiz string
··········· Format.printf(telemetry); //print telemetry to JIDE window
··········· i=0;
··········· while ((k = telemetry[noparse][[/noparse]i]) != 0) { //output telemetry to Uart
············· out.sendByte(k);
············· i++;
············}
········· }
····· }
· }
You will find the ScaledTimer16 class here
http://groups.yahoo.com/group/javelinstamp/files/Javelin%20Stamp%20IDE/lib/stamp/core/
You will find the Format class here:
http://groups.yahoo.com/group/javelinstamp/files/Javelin%20Stamp%20IDE/lib/stamp/util/text/
See the Format documentation for info on the format specifier %u and others.
regards peter
Post Edited (Peter Verkaik) : 11/22/2004 9:21:09 PM GMT