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); }
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; }
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; }