LMS 2012
|
Example program
*/ UBYTE prg[] = // p5.c { // PROGRAMHeader(0,1,0), // 0 VersionInfo,NumberOfObjects,GlobalBytes VMTHREADHeader(0,3), // 12 OffsetToInstructions,LocalBytes // // 24 VMTHREAD1 // { opUI_WRITE,LC0(PUT_STRING),LCS, // UI_WRITE(STRING," LineFollower\r\n") ' ',' ',' ',' ', // 'L','i','n','e','F','o','l', // 'l','o','w','e','r', // '\r','\n',0, // opUI_FLUSH, // UI_FLUSH // opINPUT_READ,LC0(0),LC0(1), // INPUT_READ(0,0,2,LV0) // Read light sensor LC1(2),LC0(1),LV0(0), // opDIV8,LV0(0),LC0(2),LV0(0), // LV0 /= 2 opADD8,LV0(0),LC0(15),LV0(0), // LV0 += 15 // // do // { opINPUT_READ,LC0(0),LC0(1), // INPUT_READ(0,0,2) // Read light sensor LC1(2),LC0(1),LV0(1), // opSUB8,LV0(1),LV0(0),LV0(1), // LV1 -= LV0 opDIV8,LV0(1),LC0(2),LV0(1), // LV1 /= 2 opADD8,LC1(40),LV0(1),LV0(2), // LV2 = 40 + LV1 opSUB8,LC1(40),LV0(1),LV0(3), // LV3 = 40 - LV1 // opOUTPUT_POWER,LC0(0),LC0(1),LV0(3), // OUTPUT_POWER(0,0x1,LV3) // Motor 1 = LV3 opOUTPUT_POWER,LC0(0),LC0(2),LV0(2), // OUTPUT_POWER(0,0x2,LV2) // Motor 2 = LV2 // opOUTPUT_START,LC0(0),LC0(3), // OUTPUT_START(0,0x3) // // } opJR,LC1(-39), // while (TRUE) opOBJECT_END // } }; /*