Exemple #1
0
//Initialize all the peripherals
void init_peripherals(void)
{
	//Hardware modules:
	init_systick_timer();		//SysTick timer
	init_usart1(2000000);		//USART1 (RS-485 #1)
	init_usart6(2000000);		//USART6 (RS-485 #2)
	init_rs485_outputs();
	init_leds();
	init_switches();
	init_dio();					//All inputs by default
	init_adc1();
	init_spi4();				//Plan
	//init_spi5();				//FLASH
	//init_spi6();				//Expansion
	init_i2c1();
	init_imu();
	init_adva_fc_pins();
	init_pwr_out();

	//Software:
	init_master_slave_comm();

	//All RGB LEDs OFF
	LEDR(0); LEDG(0); LEDB(0);

	//Default analog input states:
	set_default_analog();
}
Exemple #2
0
/*
 * Main application routine. 
 *
 * Nut/OS automatically calls this entry after initialization.
 */
int main(void)
{
    uint8_t my_mac[] = MY_MAC;

    /*
     * Initialize digital I/O.
     */
    init_dio();

#ifdef DEV_ETHER
    /*
     * Register Realtek controller at address 8300 hex
     * and interrupt 5.
     */
    NutRegisterDevice(&DEV_ETHER, 0x8300, 5);

    /*
     * Configure lan interface. 
     */
    if (NutDhcpIfConfig(DEV_ETHER_NAME, 0, 60000) && NutDhcpIfConfig("eth0", my_mac, 60000)) {
        /*
         * No DHCP server available. Use hard coded values.
         */
        uint32_t ip_addr = inet_addr(MY_IP);      /* ICCAVR fix. */
        NutNetIfConfig("eth0", my_mac, ip_addr, inet_addr(MY_MASK));
    }

    /*
     * Start another service thread to allow
     * two concurrent connections.
     */
    NutThreadCreate("sback", service_thread, 0, 1384);

    for (;;)
        service();
#endif /* DEV_ETHER */

    return 0;
}
Exemple #3
0
int main(int argc, char *argv[])
{
	int blink[3], flip[2] = {0, 0};
	int do_ao_only = FALSE;
	uint8_t i = 0;

	if (do_ao_only) {
		if (init_dac(0.0, 25.0, FALSE) < 0) {
			printf("Missing Analog AO subdevice\n");
			return -1;
		}
		while (TRUE) {
			set_dac_volts(1, ((double) sine_wave[i])*0.007);
			set_dac_volts(0, ((double) sine_wave[255 - i++])*0.007);
			usleep(10);
			//			printf("%d\n", i);
		}
	} else {

		if (init_daq(0.0, 25.0, FALSE) < 0) {
			printf("Missing Analog subdevice(s)\n");
			return -1;
		}
		if (init_dio() < 0) {
			printf("Missing Digital subdevice(s)\n");
			return -1;
		}
		set_dio_output(0);
		set_dio_output(1);
		set_dio_input(6);
		set_dio_input(7);
		put_dio_bit(0, 1);
		put_dio_bit(1, 1);
		blink[2] = 0;

		while (1) {

			get_data_sample();
			if (blink[2]++ >= 100) {
				printf("         \r");
				printf(" %2.3fV %2.3fV %2.3fV %2.3fV %2.3fV %2.3fV %2.3fV %u %u %u %u %u %u raw %x, %x",
					bmc.pv_voltage, bmc.cc_voltage, bmc.input_voltage, bmc.b1_voltage, bmc.b2_voltage, bmc.system_voltage, bmc.logic_voltage,
					bmc.datain.D0, bmc.datain.D1, bmc.datain.D2, bmc.datain.D3, bmc.datain.D6, bmc.datain.D7, bmc.adc_sample[0], bmc.adc_sample[1]);
				//        usleep(4990);
				blink[2] = 0;

				if ((bmc.datain.D0 == 0)) {
					if (((blink[0]++) % 150) == 0) {
						flip[0] = !flip[0];
					}
					printf(" Flip led 0 %x ", flip[0]);
					bmc.dataout.D0 = flip[0];
					set_dac_volts(0, bmc.cc_voltage);
				} else {
					set_dac_volts(0, 0.666);
					bmc.dataout.D0 = 0;
				}
				if ((bmc.datain.D1 == 0)) {
					if (((blink[1]++) % 150) == 0) {
						flip[1] = !flip[1];
					}
					printf(" Flip led 1 %x ", flip[1]);
					set_dac_volts(1, 0.333);
					bmc.dataout.D1 = flip[1];
				} else {
					set_dac_volts(1, 1.666);
					bmc.dataout.D1 = 0;
				}
			}
		}
	}
	return 0;
}