Beispiel #1
0
MbedResponse *NetCentricApp::rotateR(MbedRequest *request) {
    printf("---------------IK BEN HIER___________");
    DigitalOut led1(LED1);
    DigitalOut led2(LED2);
    DigitalOut led3(LED3);
    DigitalOut led4(LED4);
    
    if (request->n > 0) led1 = request->args[0];
    if (request->n > 1) led2 = request->args[1];
    if (request->n > 2) led3 = request->args[2];
    if (request->n > 3) led4 = request->args[3];
    
    MbedResponse *r = new MbedResponse();
    r->requestId = request->id;
    r->commandId = request->commandId;
    r->error = NO_ERROR;
    r->n = 4;
    r->values = new float[4];
    r->values[0] = led1;
    r->values[1] = led2;
    r->values[2] = led3;
    r->values[3] = led4;
    callServo(request->args[0]);

    return r;
}
Beispiel #2
0
// Control the LED's.
MbedResponse *NetCentricApp::ledCommand(MbedRequest *request) {
    DigitalOut led1(LED1);
    DigitalOut led2(LED2);
    DigitalOut led3(LED3);
    DigitalOut led4(LED4);
    
    if (request->n > 0) led1 = request->args[0];
    if (request->n > 1) led2 = request->args[1];
    if (request->n > 2) led3 = request->args[2];
    if (request->n > 3) led4 = request->args[3];
    
    MbedResponse *r = new MbedResponse();
    r->requestId = request->id;
    r->commandId = request->commandId;
    r->error = NO_ERROR;
    r->n = 4;
    r->values = new float[4];
    r->values[0] = led1;
    r->values[1] = led2;
    r->values[2] = led3;
    r->values[3] = led4;
    
    
    
    return r;
}
Beispiel #3
0
int main() {
    MBED_HOSTTEST_TIMEOUT(20);
    MBED_HOSTTEST_SELECT(stdio_auto);
    MBED_HOSTTEST_DESCRIPTION(stdio);
    MBED_HOSTTEST_START("MBED_2");

    DigitalOut led1(LED1);
    DigitalOut led2(LED2);

    int value_int;
    

    notify_start(); // Just to sync with host test supervisor

    const char* PRINT_PATTERN = "MBED: Your value was: %d\r\n";

    while (true) {
        // SCANF PRINTF family
        value_int = 0;
        led1 = 1;
        scanf("%d", &value_int);
        printf(PRINT_PATTERN, value_int);
        led1 = 0;

        // FSCANF, FPRINTF family
        value_int = 0;
        led2 = 1;
        fscanf(stdin, "%d", &value_int);
        fprintf(stdout, PRINT_PATTERN, value_int);
        led2 = 0;
    }
}
Beispiel #4
0
int main(void)
{
	uint8_t retval;
	while (1) {
		init();
		for (retval = 0; retval < 50; retval++) {
			/* wait x ms until inputs are debounced */
			wait_for_timer_tick();
		}
		if (direction == ASK) {
			if (position() == OPEN) direction = DOWN;
			else direction = UP;
		}
		if (!get_key_press(START_BT)) {
			goto unintended_wakeup;
		}
		led1(GREEN);
		start_moving(direction);
		retval = 1;
		while (run_enable && retval) {
			wait_for_timer_tick();
			retval = pwm_ramp_up();
			if (get_key_press(START_BT)) {
				disable();
			}
		}
		while (run_enable) {
			wait_for_timer_tick();
			if (get_key_press(START_BT)) {
				disable();
			}
		}
		retval = 1;
		while (retval) {
			wait_for_timer_tick();
			retval = pwm_ramp_down();
		}
		stop_moving();
unintended_wakeup:
		led1(OFF);
		deinit();
		sleep();
	}
	/* never reached */
	return 0;
}
Beispiel #5
0
/*
 * A task class to blink the led1
 */
void tskBlink(CThread *p_thread, xHandle p_param) {
	CPin led1(LED_PIN_1);					// declare led1 on P0.19
	led1.output();					// set led1 as output pin.
	while( p_thread->isAlive() ) {	// check task alive
		led1.toggle();				// toggle the led1
		sleep(100);
	}
}
Beispiel #6
0
void led(int i)
{
//if(i>99){_delay_ms(111);return;}
long int k;
for(k=0;k<255;k++){
led1(i/10);_delay_us(800);
led2(i%10);_delay_us(800);}
}
Beispiel #7
0
void tskLED1(CThread *p_thread, xHandle p_params) {
    CPin led1(LED_PIN_0);
    led1.output();
    while( p_thread->isAlive() ) {
        if ( m_semButton.wait() ) {	// wait for the semaphore
            led1.toggle();
        }
    }
}
Beispiel #8
0
void leds_state(int leds)
{
	led1( ( leds & (1<<0) ) && (1<<0)  );
	led2( ( leds & (1<<1) ) && (1<<1)  );
	led3( ( leds & (1<<2) ) && (1<<2)  );
	led4( ( leds & (1<<3) ) && (1<<3)  );
	led5( ( leds & (1<<4) ) && (1<<4)  );
	led6( ( leds & (1<<5) ) && (1<<5)  );
}
Beispiel #9
0
int main(void)
{
	//Hier wird alles initialisiert, dh Grundeinstellungen festgelegt
	
	init_Motor();				//Motor einstellen
	init_system_tick();			//System Tick einstellen
	init_drehzahlsensor();		//Drehzahlsensor einstellen
	init_leds();				//LEDs einstellen
	init_hupe();				//Hupe einstellen
	sei();						//Alle Interrupts einschalten
    
	
	while(1)		//Alles innerhalb der while Schleife wird immer wieder wiederholt
    {	
		
		if (~PINB & 0x01)			//Wenn der invertierte Wert des ersten Bits in PINB 1 ist, dann (also wenn der Button gedrückt wird)
		{
			led1(AN);				//Mach die LEDs 1 und 3 an
			led3(AN);
			m_r(255,0);				//Und die Motoren mit Vollgas (255) in 2 Richtungen
			m_l(255,1);
			_delay_ms(500);			//Warte 500 ms
			led1(AUS);				//LEDs 1 und 3 aus, LEDs 2 und 4 an
			led3(AUS);
			led2(AN);
			led4(AN);
			m_r(255,1);				//Richtungen ändern
			m_l(255,0);
			_delay_ms(500);			//und wieder 500ms in die andere Richtung
			m_r(0,0);				//Motoren aus
			m_l(0,0);
			led2(AUS);				//Leds aus
			led4(AUS);
			hupe(AN);				//Hupe an
			_delay_ms(1000);		//1 s warten
			hupe(AUS);				//Hupe aus
			_delay_ms(300);			//300ms warten
			hupe(AN);				//Hupe an
			_delay_ms(500);			//warte 500 ms
			hupe(AUS);				//Hupe aus
		}							//wieder nach oben
	}
}
Beispiel #10
0
int main(void) {
  DDRB  |= _BV(PB6) | _BV(PB7);  // LED outputs
  PORTB |= _BV(PB7) | _BV(PB6);

  DDRB  |= _BV(PB2);  // Enable Motors output
  DDRC  |= _BV(PC1);  // Enable LASER outout 

  stop(); // This pulls the motor driver reset
  
  wdt_enable(WDTO_4S);
  
  muartInit();
  mprintf(PSTR("#Power up!\n"));

  // Ensure that the motor drivers are properly initialized by holding them in reset while the power stabilizes.
  for (char i=0;i<10;i++) {
    _delay_ms(100);
  }
  run();
  
  mprintf(PSTR("#Motor drivers and laser armed!\n"));

  led1(0);
  led2(0);

  char frame = 0;
  while(1) {
    if (!(frame & 15)) {
      mprintf(PSTR("OK\n"));
    }

    if (frame & 8) {
      led1(!(frame & 1));  
    } else {
      led2(!(frame & 1));
    }
    
    _delay_ms(50);
    wdt_reset();
    frame++;
  }	
}
static void appTaskLED1Led(void *pdata) {
  DigitalOut led1(LED1);
	
  /* Start the OS ticker -- must be done in the highest priority task */
  SysTick_Config(SystemCoreClock / OS_TICKS_PER_SEC);
  
  /* Task main loop */
  while (true) {
    led1 = !led1;
    OSTimeDlyHMSM(0,0,0,500);
  }
}
Beispiel #12
0
void animation(void)
{
	volatile int i;
	for(i = 50;i<ANIMATION_MAX;i+=15)
	{
		led1(ON);
		delay_ms(i);
		led2(ON);
		delay_ms(i);
		led3(ON);
		delay_ms(i);
		led4(ON);
		delay_ms(i);
		
		led1(OFF);
		delay_ms(i);
		led2(OFF);
		delay_ms(i);
		led3(OFF);
		delay_ms(i);
		led4(OFF);
		delay_ms(i);
	}
}
Beispiel #13
0
void test_spdt()
{
	//创建所需元器件
	ngdc dc("dc1", 5);
	ngspdt spdt("spdt", ngspdt::status_throw1);
	ngresistor r1("1", 5);
	ngresistor r2("2", 5);
	ngled led1("led1");
	ngled led2("led2");
	ngground gnd;

	//创建接线,连接各元器件
	ngline l1(dc.pos, spdt.pole);
	ngline l2(spdt.throw1, r1.p1);
	ngline l3(spdt.throw2, r2.p1);
	ngline l4(r1.p2, led1.pos);
	ngline l5(r2.p2, led2.pos);
	ngline l6(led1.neg, dc.neg);
	ngline l7(led2.neg, dc.neg);
	ngline l0(dc.neg, gnd.ground);

	//创建电路图,添加元器件、接线到电路图
	schema sch;
	sch.AddDevices(&dc, &spdt, &r1, &r2, &led1, &led2, &gnd, 0);
	sch.AddLines(&l1, &l2, &l3, &l4, &l5, &l6, &l7, &l0, 0);

	//创建仿真对象,添加电路图,并开始暂态仿真
	circuit cir(&sch);
	cir.Tran("1t", "1m", 0);
	do 
	{
		Sleep(200);
		char ch = getchar();
		switch (ch)
		{
		case 'a':
			cir.SwitchOver(&spdt);
			Sleep(200);
			break;
		case 'q':
			cir.Halt();
		default:
			break;
		};
	} while (cir.IsRunning()); //主程序线程,类似windows UI消息循环
}
Beispiel #14
0
int main(void)
{
	// led pins c6,7 d13,6
	gpio::PinOutput led1(gpio::C, 7);
	// key pin E2-5
	gpio::PinInput irpin(gpio::E, 3);
	irpin_ptr = &irpin;
	serial << "hehelo\n";
	ir_decoder.SetDecodeCB(signalMatched);

	Setup();
	//LCDSetBounds(0,0,LCD_WIDTH-1,LCD_HEIGHT-1);
	//LCDClear();
	while(true)
	{
		led1 = irpin;
	}
}
Beispiel #15
0
	virtual void run() {
		CPinINT irq1(P13);
		CPinINT irq2(P14);

		CPin led1(LED1);
		CPin led2(LED2);

		irq1.begin();
		irq2.begin();

		while(1) {
			if ( irq1.wait(0) ) {
				led1.invert();
			}

			if ( irq2.wait(0) ) {
				led2.invert();
			}
		}
	}
Beispiel #16
0
void GPSSensorUBX::DoSerialAGPS(void) {
	// Light 
	PwmOut led1(LED1);
	PwmOut led2(LED2);
	led1.write(1.0);
	led2.write(1.0);
	bool gotSomething = false;
	while(1) {
		char c;		
		if(debug_read(&c)) {
			DBG("got %c",c);
			gps.putc(c);
			gotSomething = true;
		} else if(gotSomething) {
			break;
		}
	}
	DBG("out");
	led1.write(0.0);
	led2.write(0.0);
}
Beispiel #17
0
void vATaskFunction( void *pvParameters )
{
	Serial *usb=(Serial*)pvParameters;
	Led led1(LED1);

	portTickType lastTickTime;
	lastTickTime = xTaskGetTickCount ();


    for( ;; )
    {
    	led1.on();
		vTaskDelayUntil (&lastTickTime, 100);	/* wait until lastTickTime + 100ms */
		led1.off();

		usb->printf("** [A] TICK: %d\r\n",(int)lastTickTime);

		vTaskDelayUntil (&lastTickTime, 400);  /* wait until lastTickTime + 400ms */


    }
 }
Beispiel #18
0
static void appTaskLeds(void *pdata) {
  DigitalOut led1(LED1);
  DigitalOut led2(LED2);
  DigitalOut led3(LED3);
  DigitalOut led4(LED4);

  /* Task main loop */
  while (true) {
    if (led1Flashing) {
      led1 = !led1;
    }
    if (led2Flashing) {
      led2 = !led2;
    }
    if (led3Flashing) {
      led3 = !led3;
    }
    if (led4Flashing) {
      led4 = !led4;
    }
    OSTimeDlyHMSM(0,0,0,500);
  }
}
Beispiel #19
0
int main (void)
{

	ioport_set_pin_dir(IO_1,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_2,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_3,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_4,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_5,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_6,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_7,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_8,IOPORT_DIR_INPUT);
	init_octopus();
 	animation();
	 
	//Activate button interrupt
	pmic_init();
	pmic_set_scheduling(PMIC_SCH_ROUND_ROBIN);
	PORTC.INTCTRL = 0x03;
	PORTC.INT0MASK = (1<<3);
	PORTC.PIN3CTRL |= (1<<1);
	cpu_irq_enable();
	
	
	//Activate ZCD signal interruption 
	 cpu_irq_disable();
	 PORTD.INTCTRL = 0x03;
	 PORTD.INT0MASK = (1<<5);
	 PORTD.PIN5CTRL |= 0x01;
	 cpu_irq_enable();
	 
	//Activate RTC
	rtc_init();
	 
// 	pwm_ini(SERVO_0);
// 	pwm_update(SERVO_0,0);
// 	delay_ms(1000);
// 	pwm_update(SERVO_0,500);
// 	delay_ms(1000);
// 	pwm_update(SERVO_0,1000);
	 
	char aux;
	char aux2;
	for(;;)
	{
		printf("hello");
		if(bluetooth_is_rx_complete())
		{
			scanf("%1c",&aux);
			switch (aux)
			{
				case 'C':
					scanf("%1c",&aux);
					if (aux=='1')
					{
						led1(ON);
						ioport_set_pin_level(IO_1,ON);
					}
					else
					{
						led1(OFF);
						ioport_set_pin_level(IO_1,OFF);
					}
				break;
				case 'T':
					scanf("%1c",&aux);
					if (aux=='1')
					{
						led2(ON);
						ioport_set_pin_level(IO_2,ON);
					}
					else
					{
						led2(OFF);
						ioport_set_pin_level(IO_2,OFF);
					}
				break;
				case 'D':
					scanf("%i",&dimmer);
					RTC.COMP=dimmer;
										
				break;
				case 'O':
					scanf("%1c",&aux);
					scanf("%1c",&aux);
					scanf("%1c",&aux2);
					if(aux == '1')
					{
						if(aux2=='1')
						{
							led3(ON);
							ioport_set_pin_level(IO_3,ON);
						}
						else
						{
							led3(OFF);
							ioport_set_pin_level(IO_3,OFF);
						}
					}
					else
					{
						if(aux2=='1')
						{
							led4(ON);
							ioport_set_pin_level(IO_4,ON);
						}
						else
						{
							led4(OFF);
							ioport_set_pin_level(IO_4,OFF);
						}
					}
				break;
				
			}
		}
		
	}
}
Beispiel #20
0
//
// Main Routine
//
int main(void) {
#ifdef DEBUG
	CSerial ser;		// declare a UART object
	ser.enable();
	CDebug dbg(ser);	// Debug stream use the UART object
	dbg.start();
#endif

	//
	// SoftDevice
	//
	bleDevice ble;
	ble.attachEvent(onBleEvent);
	ble.enable();	// enable BLE SoftDevice task

	// GAP
	ble.m_gap.settings(DEVICE_NAME);	// set Device Name on GAP

	bleServiceUriBeacon beacon(ble);	// add uri beacon service

	switch ( beacon.get().tx_power_mode ) {
	case TX_POWER_MODE_LOWSET:
		ble.m_gap.tx_power(BLE_TX_m8dBm);
		break;
	case TX_POWER_MODE_LOW:
		ble.m_gap.tx_power(BLE_TX_m4dBm);
		break;
	case TX_POWER_MODE_MEDIUM:
		ble.m_gap.tx_power(BLE_TX_0dBm);
		break;
	case TX_POWER_MODE_HIGH:
		ble.m_gap.tx_power(BLE_TX_4dBm);
		break;
	}

	bleConnParams conn(ble);

	advertising_init(beacon_mode);

	//
	// Optional: Enable tickless technology
	//
#ifndef DEBUG
	CPowerSave::tickless(true);
#endif

	//
	//
	//
	CPin led0(LED_PIN_0);
	led0.output();

	CPin led1(LED_PIN_1);
	led1.output();

	CPin btn(BUTTON_PIN_0);
	btn.input();

	//
	// Enter main loop.
	//
	while (1) {
		//
		// check button
		//
		if ( btn==LOW ) {

			led1 = LED_ON;

			// stop advertising
			ble.m_advertising.stop();

			// change beacon mode
			if ( beacon_mode==beacon_mode_config ) {
				beacon_mode = beacon_mode_normal;
			} else {
				beacon_mode = beacon_mode_config;
			}

			// update mode and re-start the advertising
			advertising_init(beacon_mode);

			// waiting for btn released
			while(btn==LOW);

			led1 = LED_OFF;
		}

		//
		// LED Status
		//
		if ( beacon_mode==beacon_mode_config  ) {
			//
			// Negotiate the "connection parameters update" in main-loop
			//
			conn.negotiate();

			led0 = LED_ON;
			sleep(50);
			led0 = LED_OFF;
			sleep(150);

		} else {
			led0 = LED_ON;
			sleep(5);
			led0 = LED_OFF;
			sleep(beacon.get().beacon_period-5);
		}
	}
}
Beispiel #21
0
int main (void)
{

	ioport_set_pin_dir(IO_1,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_2,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_3,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(IO_4,IOPORT_DIR_OUTPUT);
	init_octopus();
 	initial_animation();
	 
	pwm_ini(SERVO_0);
	pwm_update(SERVO_0,0);
	delay_ms(1000);
	pwm_update(SERVO_0,500);
	delay_ms(1000);
	pwm_update(SERVO_0,1000);
	 
	char aux;
	char aux2;
	int dimmer=0;
	for(;;)
	{
		if(bluetooth_is_rx_complete())
		{
			scanf("%1c",&aux);
			switch (aux)
			{
				case 'C':
					scanf("%1c",&aux);
					if (aux=='1')
					{
						led1(ON);
						ioport_set_pin_level(IO_1,ON);
					}
					else
					{
						led1(OFF);
						ioport_set_pin_level(IO_1,OFF);
					}
				break;
				case 'T':
					scanf("%1c",&aux);
					if (aux=='1')
					{
						led2(ON);
						ioport_set_pin_level(IO_2,ON);
					}
					else
					{
						led2(OFF);
						ioport_set_pin_level(IO_2,OFF);
					}
				break;
				case 'D':
					scanf("%i",&dimmer);
				break;
				case 'O':
					scanf("%1c",&aux);
					scanf("%1c",&aux);
					scanf("%1c",&aux2);
					if(aux == '1')
					{
						if(aux2=='1')
						{
							led3(ON);
							ioport_set_pin_level(IO_3,ON);
						}
						else
						{
							led3(OFF);
							ioport_set_pin_level(IO_3,OFF);
						}
					}
					else
					{
						if(aux2=='1')
						{
							led4(ON);
							ioport_set_pin_level(IO_4,ON);
						}
						else
						{
							led4(OFF);
							ioport_set_pin_level(IO_4,OFF);
						}
					}
				break;
				
			}
		}

	dimmer=dimmer*10;	
	pwm_update(SERVO_0,dimmer);	
		
	}
}
Beispiel #22
0
int main(void) {
  int i;
  int reading1;
  int reading2;
  int address;
  int test_array[100];

  for(i=0;i<100;i++) {
    motor(0,i);  //spin the left motor forward
    motor(1,i);  //spin the right motor forward
  }

  i=0;
  while(i>-100) {
    motor(0,i);  //spin the left motor backwards
    motor(1,i);  //spin the right motor backwards
    i--;
  }

  i=50;
  set_servo(0,i);  //set servo motor 0 to move to 50 degrees
  set_servo(3,i);  //set servo motor 3 to move to 50 degrees

  delay_milliseconds(100);  //pause 100 milliseconds
  delay_seconds(1);  //pause 1 second

  lcd_clear();
  lcd_cursor(0,0);
  printf ("Test1\n"); //the LCD will be 8x2 (8chars x 2lines)
  printf ("Test2\n");

  reading1 = analog(0);  //get a reading from analog pin 0
  reading2 = analog(5);  //get a reading from analog pin 5
  reading1 = digital(0);  //get a reading from digital pin 0
  reading2 = digital(1);  //get a reading from digital pin 1

  if (reading1 > 100) {
    printf ("%d\n", reading1);
  }

  reading1 = accelerometer(0);  //read x-axis
  reading2 = accelerometer(1);  //read y-axis
  reading1 = accelerometer(2);  //read z-axis

  reading1 = battery_voltage();  //battery voltage

  reading1 = read_serial_port();  //get a byte from the serial port
  write_serial_port(reading1);  //send a byte on the serial port

  led1(1);  //turn on on-board led1
  led1(0);  //turn off on-board led1

  reading1 = read_ir();  //get a reading from the IR receiver

  reset();  //reset the board

  write_eeprom(address, reading1);  //write a value to the non-volatile eeprom (these values will be stored across resets)
  reading1 = read_eeprom(address);  //get a reading from the non-volatile eeprom

  reading1 = button(); //read the state of the on-board button

  return 0;
}