Shop OBEX P1 Docs P2 Docs Learn Events
How do you use the Timer VP? — Parallax Forums

How do you use the Timer VP?

NorvinNorvin Posts: 4
edited 2004-11-23 03:48 in General Discussion
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());
········· }
····· }
· }

Comments

  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2004-11-22 21:18
    Apparently StringBuffer has no method append(). Secondly,

    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
  • NorvinNorvin Posts: 4
    edited 2004-11-23 03:48
    Thanx for the help and insite. I see what i was missing now.
Sign In or Register to comment.