Beispiel #1
0
void io_initialize (int standalone)
{
   if (disksim->iosim_info == NULL) {
      iosim_initialize_iosim_info ();
   }

   bus_set_depths();
   // fprintf (outputfile, "Back from bus_set_depths\n");

   StaticAssert (sizeof(ioreq_event) <= DISKSIM_EVENT_SIZE);
   device_initialize();
   bus_initialize();
   controller_initialize();
   iodriver_initialize(standalone);
}
Beispiel #2
0
int main(void)
{
    uint8_t msglen = 0;
    uint8_t msg[BUS_MAXRECVMSGLEN];
    uint16_t sender = 0;
    uint16_t module_id = 0;

    io_initialize();
    clk_initialize();
    scomm_initialize_uart1(&g_serial_phy);

    //register_set_u16(MOD_eReg_ModuleID, 0x0003);
    register_get(MOD_eReg_ModuleID, 0, &module_id);
    bus_configure(&g_bus, module_id);
    bus_initialize(&g_bus, 0);// initialize bus on UART 0

    sei();
    LED_STATUS_OFF;
    LED_ERROR_OFF;
    clk_timer_start(&g_LED_timer, CLOCK_MS_2_TICKS(1000));

    while (1) {
        // check for message and read it
        if (bus_get_message(&g_bus)) {
            bgw_forward_bus_msg(&g_bus, &g_serial_phy);
            if (bus_read_message(&g_bus, &sender, &msglen, msg)) {
                interpret_message(sender, msglen, msg);
            }
        }
        bgw_forward_serial_msg(&g_bus, &g_serial_phy);

        if (clk_timer_is_elapsed(&g_LED_timer)) {
        	// cyclic reset of error LED
            LED_ERROR_OFF;
            LED_STATUS_TOGGLE;
            clk_timer_start(&g_LED_timer, CLOCK_MS_2_TICKS(1000));
        }
    }
    return 0;
}
int main (void)
{
    uint8_t msglen = 0;
    uint8_t msg[BUS_MAXRECVMSGLEN];
    uint16_t module_id = BUS_UNKNOWNADR, sender = 0, val;
    uint16_t new_temp;

    DDRC |= ((1<<PC3) | (1<<PC4));
    PORTC &= ~((1<<PC3) | (1<<PC4));

    clk_initialize();

    //register_set_u16(MOD_eReg_ModuleID, 0x000E);

    // configure a bus node with address X
    register_get(MOD_eReg_ModuleID, 0, &module_id);
    bus_configure(&g_bus, module_id);
    bus_initialize(&g_bus, 0);// initialize bus on UART 0

    spi_master_init_blk();
    zagw_initialize();

    sei();

    register_get(APP_eReg_DesiredTempDay1, 0, &g_target_temp);

    gdisp_initialize();
    gdisp_goto_col_line(0,0);
    gdisp_put_text("aktuell");

    gdisp_goto_col_line(61,0);
    gdisp_put_text("Soll");

    draw_temperatures();
    draw_window_closed();

    gdisp_choose_font(gdisp_font1_x8);
    gdisp_goto_col_line(0,3);
    gdisp_put_text("Addr: ");
    draw_hex16_value(g_bus.sCfg.uOwnNodeAddress);

    clk_timer_start(&g_app_timer, 100);
    while (1) {
        if (bus_get_message(&g_bus)) {
            if (bus_read_message(&g_bus, &sender, &msglen, msg)) {
                interpret_message(&g_bus, msg, msglen, sender);
            }
        }
        if (clk_timer_is_elapsed(&g_app_timer)) {
            clk_timer_start(&g_app_timer,10);
            gdisp_choose_font(gdisp_font1_x8);
            gdisp_goto_col_line(0,3);
            gdisp_put_text("Temp: ");
            if (zagw_receive()) {
                val = zagw_get_bits();
                draw_hex16_value(val);
                new_temp = zagw_get_temperature();
                if (new_temp != g_current_temp) {
                    send_temperature(new_temp);
                }
                g_current_temp = new_temp;
                draw_temperatures();
            } else {
                gdisp_put_text("PERR");
            }
        }
    }
    return 0;
}