Esempio n. 1
0
File: proto.c Progetto: dtbinh/ev3-c
bool tacho_stop( uint8_t port )
{

	uint8_t lmc[] = { opOUTPUT_STOP, LC0( 0 ), LC0( port ),LC0( 0 ) };
	int n = ev3_tcp_direct( 0, 0, lmc, sizeof( lmc ), DIRECT_COMMAND_NO_REPLY );
	if ( n == EOF ) return ( false );

	return ( false );
}
Esempio n. 2
0
File: proto.c Progetto: dtbinh/ev3-c
bool tacho_start( uint8_t port, uint8_t val )
{

	uint8_t lmc[] = { opOUTPUT_POWER, LC0( 0 ), LC0( port ), LC0( val ), opOUTPUT_START, LC0( 0 ), LC0( port ) };
	int n = ev3_tcp_direct( 0, 0, lmc, sizeof( lmc ), DIRECT_COMMAND_NO_REPLY );
	if ( n == EOF ) return ( false );

	return ( false );
}
Esempio n. 3
0
File: proto.c Progetto: dtbinh/ev3-c
bool sensor_value( uint8_t port, void *buf )
{
	size_t globals = 1;
	uint8_t lmc[] = { opINPUT_READ, LC0( 0 ), LC0( port ), LC0( 0 ), LC0( 0 ), GV0( 0 ) };
	int n = ev3_tcp_direct( 1, 0, lmc, sizeof( lmc ), DIRECT_COMMAND_REPLY );
	if ( n == EOF ) return ( false );

	sleep_msec( 100 );
	return ( ev3_tcp_direct_reply( n, buf, &globals ) == DIRECT_REPLY );
}
Esempio n. 4
0
UBYTE     prg[] =
{ // p2
  // IMAGE header
  PROGRAMHeader(0,1,0),                 //      VersionInfo,NumberOfObjects,GlobalBytes
  VMTHREADHeader(28,0),                 //      OffsetToInstructions,LocalBytes
                                        //
                                        //      VMTHREAD1
                                        //      {
  opUI_WRITE,LC0(PUT_STRING),LCS,           //        UI_WRITE(STRING,"    Make 10 pulses\r\n")
    ' ',' ',' ',' ',                    //
    'M','a','k','e',' ','1','0',' ',    //
    'p','u','l','s','e','s',            //
    '\r','\n',0,                        //
                                        //
  opUI_FLUSH,                           //        UI_FLUSH
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC1(50), //        OUTPUT_SPEED(0,1,50)
  opOUTPUT_SPEED,LC0(0),LC0(1),LC0(0),  //        OUTPUT_SPEED(0,1,0)
Esempio n. 5
0
//****************************************************************************
// Disassembler Listing
//****************************************************************************

UBYTE     prg[] =
{
  /*    0 */  PROGRAMHeader(0.46,2,8),
  /*   16 */  VMTHREADHeader(40,5),      // Object 1  
  /*   28 */  BLOCKHeader(65,1,1),       // Object 2  

  /* Object  1 (VMTHREAD) [40..65] */

  /*   40 */  opMOVE32_32,LC0(0),LV0(0),
  /*   43 */  opCP_EQ32,LC4(100000),LV0(0),LV0(4),
  /*   51 */  opOBJECT_TRIG,LC0(2),
  /*   53 */  opOBJECT_WAIT,LC0(2),
  /*   55 */  opJR_TRUE,LV0(4),LC0(6),
  /*   58 */  opADD32,LV0(0),LC0(1),LV0(0),
  /*   62 */  opJR,LC0(-21),
  /*   64 */  opOBJECT_END,

  /* Object  2 (BLOCK) [65..67] */

  /*   65 */  opNOP,
  /*   66 */  opOBJECT_END,
};

//****************************************************************************

Esempio n. 6
0
UBYTE     prg[] =
{ // p3
  // IMAGE header
  PROGRAMHeader(0,1,0),                 //      VersionInfo,NumberOfObjects,GlobalBytes
  VMTHREADHeader(28,4),                 //      OffsetToInstructions,LocalBytes
                                        //
                                        //      VMTHREAD1
                                        //      {
  opUI_WRITE,LC0(PUT_STRING),LCS,           //        UI_WRITE(STRING,"    Print input changes\r\n")
    ' ',' ',' ',' ',                    //
    'P','r','i','n','t',' ',            //
    'i','n','p','u','t',' ',            //
    'c','h','a','n','g','e','s',        //
    '\r','\n',0,                        //
  opUI_FLUSH,                           //        UI_FLUSH
                                        //
  opINPUT_READ,LC0(0),LC0(0),LC0(0),    //        INPUT_READ(0,0,0,0,LV0)
    LC0(0),LV0(0),              	      //
                                        //        do
                                        //        {
                                        //          do
                                        //          {
  opINPUT_READ,LC0(0),LC0(0),LC0(0),    //            INPUT_READ(0,0,0,0,LV1)
    LC0(0),LV0(1),              	      //
                                        //          }
  opJR_EQ8,LV0(0),LV0(1),LC0(-10),      //          while (LV0 == LV1)
                                        //
  opMOVE8_8,LV0(1),LV0(0),              //          LV0  =  LV1
					                              //
  opUI_WRITE,LC0(VALUE8),LV0(1),        //          UI_WRITE(VALUE8,LV1)
  opUI_WRITE,LC0(PUT_STRING),LCS,'\r',  //          UI_WRITE(PUT_STRING,"\r\n")
Esempio n. 7
0
//                             \                `----------------------'
//                              \
//                               (VMTHREAD2--WRITE(One)--DELAY(1)--LOOP10)-----)
//                                              ^                      |
//                                              |                      |
//                                              `----------------------'
//
UBYTE     prg[] =                                 //  p12.c
{                                                 //
  PROGRAMHeader(0,2,0),                           //  VersionInfo,NumberOfObjects,GlobalBytes
  VMTHREADHeader(40,5),                           //  OffsetToInstructions,LocalBytes
  VMTHREADHeader(106,5),                          //  OffsetToInstructions,LocalBytes
                                                  //
                                                  //  VMTHREAD1
                                                  //  {
  opUI_WRITE,LC0(PUT_STRING),LCS,' ',' ',' ',' ','P', //    UI_WRITE(STRING,"    Parallel programming\r\n");
    'a','r','a','l','l','e','l',' ','p','r','o',  //
    'g','r','a','m','m','i','n','g','\r','\n',0,  //
  opUI_FLUSH,                                     //    UI_FLUSH  
  opOBJECT_START,LC0(2),                          //    START_OBJECT(2)
                                                  //
  opMOVE8_8,LC0(10),LV0(4),                       //    LV4 = 10                                                  
                                                  //    do
                                                  //    {
  opUI_WRITE,LC0(PUT_STRING),LCS,' ',' ',' ',' ','O', //      UI_WRITE(STRING,"    One\r\n");
    'n','e','\r','\n',0,                          //
  opUI_FLUSH,                                     //      UI_FLUSH  
  opTIMER_WAIT,LC2(1000),LV0(0),                  //      DELAY(1)   
  opTIMER_READY,LV0(0),                           //   
                                                  //    }
  opSUB8,LV0(4),LC0(1),LV0(4),                    //    while(--LV4)
Esempio n. 8
0
UBYTE     prg[] =
{ // p0
  // IMAGE header
  PROGRAMHeader(0,1,0),                 //      VersionInfo,NumberOfObjects,GlobalBytes
  VMTHREADHeader(0,0),                  //      OffsetToInstructions,LocalBytes
                                        //
                                        //      VMTHREAD1
                                        //      {
  opUI_WRITE,LC0(PUT_STRING),LCS,           //        UI_WRITE(STRING,"    Do nops\r\n")
    ' ',' ',' ',' ',                    //
    'D','o',' ','n','o','p','s',        //
    '\r','\n',0,                        //
  opUI_FLUSH,                           //        UI_FLUSH
                                        //        do
                                        //        {
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
  opNOP,                                //          nop
                                        //        }
  opJR,LC0(-12),                        //        while (TRUE)
                                        //
  opOBJECT_END                          //      }
};
Esempio n. 9
0
UBYTE     prg[] =
{ // p9
  // IMAGE header
  PROGRAMHeader(0,1,2),                 //      VersionInfo,NumberOfObjects,GlobalBytes
  VMTHREADHeader(28,0),                 //      OffsetToInstructions,LocalBytes
                                        //
                                        //      VMTHREAD1
                                        //      {
  opUI_WRITE,LC0(PUT_STRING),LCS,           //        UI_WRITE(STRING,"    DATA8 multiply\r\n")
    ' ',' ',' ',' ',                    //
    'D','A','T','A','8',' ',            //
    'm','u','l','t','i','p','l','y',    //
    '\r','\n',0,                        //
  opUI_FLUSH,                           //        UI_FLUSH
                                        //        do
                                        //        {
    opMOVE8_8,LC0(3),GV0(0),            //          GV0  =  3
    opMOVE8_8,LC0(7),GV0(1),            //          GV1  =  7
                                        //
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
    opMUL8,GV0(0),GV0(1),GV0(0),        //          GV0  =  GV0 * GV1
                                        //        }
    opJR,LC1(-43),                      //        while (TRUE)
Esempio n. 10
0
/*! \page programexample1 Line Follower
 *
 *  Example program
 *
 *  <hr size="1"/>
 *  \verbatim */

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