void main(void){ init_general();// Set general runtime configuration bits init_gpio_pins(); // Set all I/O pins to low outputs init_oscillator(0);// Initialize oscillator configuration bits init_timer2();// Initialize timer2 (millis) init_adc(NULL); // Initialize ADC module init_termination(NOT_TERMINATING); init_adcs();// Initialize all of the ADC's init_can(); // Initialize CAN canAnalogMillis = canDiagMillis = 0; ADCCON3bits.GSWTRG = 1; // Initial ADC Conversion? STI();// Enable interrupts while(1){ update_analog_channels(); strain_calc(); if(millis - canAnalogMillis >= CAN_ANALOG_INTV){ CANAnalogChannels(); canAnalogMillis = millis; } if(millis - canDiagMillis >= CAN_DIAG_INTV){ CANdiag(); canDiagMillis = millis; } sample_temp(); // Sample internal and external temperature sensors } }
int main(void){ init_general();// Set general runtime configuration bits init_gpio_pins();// Set all I/O pins to low outputs init_oscillator(0);// Initialize oscillator configuration bits init_timer2();// Initialize timer2 (millis) int i; while(1){ for(i = 0;i<1000000;i++); PIC_LED_LAT = 1; for(i = 0;i<1000000;i++); PIC_LED_LAT = 0; } return 0; }
/* slave information interface */ void init_sii(ecat_slave *esv) { int pdoe_idx = 0; memset(&esv->categories,0,sizeof(struct __sii_categories__)); init_si_info(&esv->categories.sii); init_strings(&esv->categories.strings, &esv->categories.strings_hdr); init_fmmu(&esv->categories.fmmu, &esv->categories.fmmu_hdr); init_syncm(esv, &esv->categories.syncm0, 0 ,&esv->categories.syncm_hdr0); init_syncm(esv, &esv->categories.syncm1, 1 ,&esv->categories.syncm_hdr1); init_general(esv, &esv->categories.general, &esv->categories.general_hdr); init_end_hdr(&esv->categories.endhdr); // pdos esv->categories.rxpdo_hdr.type = CAT_TYPE_RXPDO; esv->categories.rxpdo_hdr.size = sizeof(esv->categories.rxpdo)/2; esv->categories.rxpdo.entries = 2; esv->categories.rxpdo.flags = 0; esv->categories.rxpdo.name_idx = RXPDO_CAT_NAME_IDX + 1; esv->categories.rxpdo.synchronization = 0; esv->categories.rxpdo.syncm = 0; esv->categories.rxpdo.pdo_index = 0x1600; init_pdo(&esv->categories.rxpdo.pdo[0], 0x1600, 0X02, RX_PDO1_NAME_IDX + 1, 0, 8, 0); esv->pdoe_sizes[pdoe_idx++] = 8; init_pdo(&esv->categories.rxpdo.pdo[1], 0x1600, 0X01, RX_PDO2_NAME_IDX + 1, 0, 32, 0); esv->pdoe_sizes[pdoe_idx++] = 32; esv->categories.txpdo_hdr.type = CAT_TYPE_TXPDO; esv->categories.txpdo.entries = 2; esv->categories.txpdo.flags = 0; esv->categories.txpdo.name_idx = TXPDO_CAT_NAME_IDX +1; esv->categories.txpdo.synchronization = 0; esv->categories.txpdo.syncm = 1; esv->categories.txpdo.pdo_index = 0x1a00; esv->categories.txpdo_hdr.size = sizeof(esv->categories.txpdo)/2; init_pdo(&esv->categories.txpdo.pdo[0], 0x1a00, 0X02, TX_PDO1_NAME_IDX + 1, 0, 32, 0); esv->pdoe_sizes[pdoe_idx++] = 32; init_pdo(&esv->categories.txpdo.pdo[1], 0x1a00, 0X01, TX_PDO2_NAME_IDX + 1, 0, 16, 0); esv->pdoe_sizes[pdoe_idx++] = 16; }
MRN_API mrn_bool last_insert_grn_id_init(UDF_INIT *init, UDF_ARGS *args, char *message) { return init_general(init, args, message, "last_insert_grn_id"); }