Exemple #1
0
int main(void)
{
  achar0 = 0;
  switch1();
  if(achar0 != 9)
    failures++;

  switch1();
  if(achar0 != 0)
    failures++;

  achar0++;

  switch1();
  if(achar0 != 18)
    failures++;

  for(achar1=0; achar1<10;achar1++){
    switch2();
    if(achar0 != (9-achar1))
      failures++;

  }

  success=failures;
  done();
  printf("failures: %d\n",failures);

  return failures;
}
main()
{
    switch1(2, 100);
    switch2(4, 100);

    return (0);
}
Exemple #3
0
int
    sc_main(int argc, char *argv[])
{
    sc_signal<pkt> pkt_in0;
    sc_signal<pkt> pkt_in1;
    sc_signal<pkt> pkt_in2;
    sc_signal<pkt> pkt_in3;
    sc_signal<pkt> pkt_out0;
    sc_signal<pkt> pkt_out1;
    sc_signal<pkt> pkt_out2;
    sc_signal<pkt> pkt_out3;

    sc_signal<sc_int<4> > id0, id1, id2, id3;

    sc_signal<bool> switch_cntrl;

    sc_clock clock1("CLOCK1", 75, SC_NS, 0.5, 0.0, SC_NS);
    sc_clock clock2("CLOCK2", 30, SC_NS, 0.5, 10.0, SC_NS);

    // Module instiatiations follow
    // Note that modules can be connected by hooking up ports 
    // to signals by name or by using a positional notation

    sender sender0("SENDER0");
    // hooking up signals to ports by name
    sender0.pkt_out(pkt_in0);
    sender0.source_id(id0);
    sender0.CLK(clock1);

    sender sender1("SENDER1");
    // hooking up signals to ports by position
    sender1(pkt_in1, id1, clock1);

    sender sender2("SENDER2");
    // hooking up signals to ports by name
    sender2.pkt_out(pkt_in2);
    sender2.source_id(id2);
    sender2.CLK(clock1);

    sender sender3("SENDER3");
    // hooking up signals to ports by position
    sender3( pkt_in3, id3, clock1 );

    switch_clk switch_clk1("SWITCH_CLK");
    // hooking up signals to ports by name
    switch_clk1.switch_cntrl(switch_cntrl);
    switch_clk1.CLK(clock2);

    mcast_pkt_switch switch1("SWITCH");
    // hooking up signals to ports by name
    switch1.switch_cntrl(switch_cntrl);
    switch1.in0(pkt_in0);
    switch1.in1(pkt_in1);
    switch1.in2(pkt_in2);
    switch1.in3(pkt_in3);
    switch1.out0(pkt_out0);
    switch1.out1(pkt_out1);
    switch1.out2(pkt_out2);
    switch1.out3(pkt_out3);

    receiver receiver0("RECEIVER0");
    // hooking up signals to ports by name  
    receiver0.pkt_in(pkt_out0);
    receiver0.sink_id(id0);

    receiver receiver1("RECEIVER1");
    // hooking up signals to ports by position
    receiver1( pkt_out1, id1 );

    receiver receiver2("RECEIVER2");
    // hooking up signals to ports by name
    receiver2.pkt_in(pkt_out2);
    receiver2.sink_id(id2);

    receiver receiver3("RECEIVER3");
    // hooking up signals to ports by position
    receiver3( pkt_out3, id3 );

    sc_start(0, SC_NS);

#if !defined(__SUNPRO_CC)
    id0.write(0); 
    id1.write(1);
    id2.write(2);
    id3.write(3);
#else
    // you cannot do that with SC5.0
    // since it doesn't support member templates
    id0.write(sc_int<4>(0));
    id0.write(sc_int<4>(1));
    id0.write(sc_int<4>(2));
    id0.write(sc_int<4>(3));
#endif
    sc_start();
    return 0;

}
Exemple #4
0
int main(void) {
    SYSTEMConfigPerformance(10000000);
    enableInterrupts(); //This function is necessary to use interrupts.
    
    initTimer2();
    initTimer3();
    switch1();
    initPWM();
    
    initADC();
    initLCD();
    
    state = IDLE_1;
    
    volatile float printbuffer = 0; //maybe change to float
   // double voltPOT = 0;
    char str[16];
    
    while(1){
//           clearLCD();
//           snprintf(str, sizeof(str), "%0.2f", (float)potVoltage/1023.0*5.0);
//           printStringLCD(str);
//           moveCursorLCD(0,0);
       switch(state){
           voltage = potVoltage*1.0;
            case IDLE_1:
                setLeftForward(1);
                setRightForward(1);
                setLeftWheelSpeed(0);
                setRightWheelSpeed(0);
                break;
           case D_IDLE_1:
                delayUs(100);
                state = FORWARD;
                break;
            case FORWARD:
                CalculatedSpeed();
                AD1CON1bits.SAMP = 1;
                break;
            case D_FORWARD:
                delayUs(100);
                state = IDLE_2;
                break;
            case IDLE_2:
                setLeftWheelSpeed(0);
                setRightWheelSpeed(0);
                break;
            case D_IDLE_2:
                delayUs(100);
                state = BACKWARD;
                break;
            case BACKWARD:
                setLeftForward(0);
                setRightForward(0);
                CalculatedSpeed();
                AD1CON1bits.SAMP = 1;
                break; 
            case D_BACKWARD:
                delayUs(100);
                state = IDLE_1;
                break;
        }
    }
    return 0;
}
int main()
{
	Source src(100);
	Pipe pipe1(80);
	Valve valve1(on);

	Tank tank1(60);
	Switch switch1(&tank1,300);
	Switch switch2(&tank1, 50);

	Pipe pipe2(80);
	Sink sink1(30);
	Pipe pipe3(40);
	Valve valve2(on);

	Tank tank2(80);
	Switch switch3(&tank2, 250);
	Switch switch4(&tank2, 50);

	Sink sink2(20);

	while( !kbhit() )
	{
		src>=pipe1;
		pipe1>=valve1;
		valve1>=tank1;
		Tee(tank1,pipe2,pipe3);
		pipe2>=sink1;
		pipe3>=valve2;
		valve2>=tank2;
		tank2>=sink2;

		src.Tick();
		pipe1.Tick();
		valve1.Tick();
		tank1.Tick();
		switch1.Tick();
		switch2.Tick();
		pipe2.Tick();
		sink1.Tick();
		pipe3.Tick();
		valve2.Tick();
		tank2.Tick();
		switch3.Tick();
		switch4.Tick();
		sink2.Tick();
		if(valve1.Status()==on&& switch1.Status()==on)
			valve1.Status()=off;
		if (valve1.Status()==off && switch2.Status()==off)
			valve1.Status()=on;
		if(valve2.Status()==on && switch3.Status()==on)
			valve2.Status()=off;
		if(valve2.Status()==off && switch4.Status()==off)
			valve2.Status()=on;
		cout<<" Src=" <<setw(2)<<src.Flow();
		cout<<" p1="<<setw(2)<<pipe1.Flow();

		if(valve1.Status()==off)
			cout<<" v1=off";
		else
			cout<<" v1=on";

		cout<<" T1="<<setw(3)<<tank1.Contents();
		cout<<" p2="<<setw(2)<<pipe2.Flow();
		cout<<" Sink1= "<<setw(2)<<sink1.Flow();
		cout<<" p3="<<setw(2)<<pipe3.Flow();
		if(valve2.Status()==off)
			cout<<" v2=off";
		else
		cout<<" v2=on";
		cout<<" T2= "<<setw(3)<<tank2.Contents();
		cout<<" sink2= "<<setw(2)<<sink2.Flow();
		cout<<"\n";
	}
		return 0;
}