int main(void) { int i; system_init(); p_init(); led_init(); cdcacm_init(); cdcacm_register_receive_callback(cdcacm_input_callback); usart_init(); led1_on(); led2_on(); led3_on(); led4_on(); led5_on(); for (i = 0; i < 0x800000; i++) __asm__("nop"); led1_off(); led2_off(); led3_off(); led4_off(); led5_off(); while (1) { cdcacm_run(); led_process(); } }
int main(void) { /* setup controller */ sys_init(); /* setup u8g and m2 libraries */ setup(); /* application main loop */ for(;;) { m2_CheckKey(); if ( m2_HandleKey() || led_process() ) { /* picture loop */ u8g_FirstPage(&u8g); do { draw(); m2_CheckKey(); } while( u8g_NextPage(&u8g) ); } } }
// **************** int main(void) { // Setup SysTick Timer to interrupt at 10 msec intervals if (SysTick_Config(SystemCoreClock / 100)) { while (1); // Capture error } led_init(); // Setup GPIO for LED2 led_on(0); // Turn LED2 on //led_on(0); //led_on(1); systick_delay(100); led_off(0); UARTInit(0, 115200); // baud rate setting UARTInit(2, 9600); // baud rate setting, PC UARTSendCRLF(0); UARTSendCRLF(0); UARTSendStringln(0, "UART2 online ..."); drs155m_init(); logger_setEnabled(1); logger_logStringln("logger online ..."); logger_logString("BUILD ID: "); logger_logStringln(VERSION_BUILD_ID); led_off(7); uint16_t loop_count = 0; uint8_t do_start = 0; #define METER_COUNT 4 uint8_t error_count[METER_COUNT] = {0,0,0}; uint8_t current_meter_index = 0; drs155m_t power_meters[METER_COUNT]; power_meters[0].meter_id = "001511420141"; power_meters[1].meter_id = "001511420142"; power_meters[2].meter_id = "001511420143"; power_meters[3].meter_id = "001511420149"; drs155m_t* current_power_meter = &power_meters[0]; uint32_t delay_value = 0; while(1) { /* process logger */ if (console_out_dataAvailable() && UARTTXReady(0)) { uint8_t iCounter; // fill transmit FIFO with 14 bytes for(iCounter = 0; iCounter < 14 && console_out_dataAvailable(); iCounter++) { UARTSendByte(0, console_out_read()); } } led_process(msTicks); s0_process(msTicks); drs155m_process(msTicks); uint32_t triggerValue = s0_triggered(0); if (triggerValue) { logger_logString("s0_0:"); logger_logNumberln(triggerValue); led_signal(1, 30, msTicks); if (do_start) { do_start = 0; } else { do_start = 1; } } if (drs155m_is_ready() && do_start && math_calc_diff(msTicks, delay_value) > 20) { loop_count++; current_meter_index++; if (current_meter_index >= METER_COUNT) { current_meter_index = 0; } current_power_meter = &power_meters[current_meter_index]; drs155m_request_data(current_power_meter); } if (drs155m_is_data_available()) { logger_logStringln("Meter data: "); logger_logNumberln(current_power_meter->voltage); logger_logNumberln(current_power_meter->ampere); logger_logNumberln(current_power_meter->frequency); logger_logNumberln(current_power_meter->active_power); logger_logNumberln(current_power_meter->reactive_power); logger_logNumberln(current_power_meter->total_energy); logger_logString("operation took "); logger_logNumber(drs155m_get_duration()); logger_logStringln(" ticks"); logger_logString("current loop: "); logger_logNumberln(loop_count); logger_logString("error count 0: "); logger_logNumberln(error_count[0]); logger_logString("error count 1: "); logger_logNumberln(error_count[1]); logger_logString("error count 2: "); logger_logNumberln(error_count[2]); logger_logString("error count 3: "); logger_logNumberln(error_count[3]); drs155m_reset(); delay_value = msTicks; } if (drs155m_is_error()) { logger_logStringln("error reading meter data"); error_count[current_meter_index]++; drs155m_reset(); delay_value = msTicks; } triggerValue = s0_triggered(1); if (triggerValue) { logger_logString("s0_1:"); logger_logNumberln(triggerValue); led_signal(2, 30, msTicks); } /* logger echo */ if ( UART0Count != 0 ) { led2_on(); LPC_UART0->IER = IER_THRE | IER_RLS; /* Disable RBR */ int i = 0; for(; i < UART0Count; i++) { logger_logByte(UART0Buffer[i]); } UART0Count = 0; LPC_UART0->IER = IER_THRE | IER_RLS | IER_RBR; /* Re-enable RBR */ led2_off(); } } return 0 ; }
int main(void) { led_init(); #ifdef LED_RGB led_off(LED_CHANNEL_GREEN); led_off(LED_CHANNEL_RED); led_off(LED_CHANNEL_BLUE); #else LED_ON(); #endif spi_init(); OCR0A = 249; // Timer0: 0.008s = 8MHz/256/250 == 125Hz TCCR0B = _BV(CS02); TCCR0A = _BV(WGM01); TIMSK0 = _BV(OCIE0A); TCCR1A = 0; TCCR1B = _BV(CS11) | _BV(WGM12); // Timer1: 1us = 8MHz/8 clock_prescale_set(clock_div_1); MCUSR &= ~(1 << WDRF); // Enable the watchdog uart_init( UART_BAUD_SELECT_DOUBLE_SPEED(UART_BAUD_RATE,F_CPU) ); input_handle_func = analyze_ttydata; display_channel = DISPLAY_USB; #ifdef LED_RGB my_delay_ms(200); led_on(LED_CHANNEL_RED); my_delay_ms(200); led_off(LED_CHANNEL_RED); led_on(LED_CHANNEL_GREEN); my_delay_ms(200); led_off(LED_CHANNEL_GREEN); led_on(LED_CHANNEL_BLUE); my_delay_ms(200); led_off(LED_CHANNEL_BLUE); #else LED_OFF(); #endif sei(); /* start moritz function */ moritz_func("Zr\n"); for(;;) { led_process(ticks); uart_task(); Minute_Task(); rf_asksin_task(); rf_moritz_task(); if (rf_moritz_data_available()) { DC('Z'); uint8_t *rf_data = (uint8_t*) &max_data; for (uint8_t i=0; i<=*rf_data; i++) { DH2( *rf_data++ ); } DNL(); DS("length: "); DU(max_data.length, 2); DNL(); DS("msg count: "); DU(max_data.message_count, 2); DNL(); DS("msg type: "); DU(max_data.message_type, 2); DNL(); } } }