//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(); }
/* * 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; }
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; }