int main(void) { SystemInit(); SystemCoreClockUpdate(); led_init(); init_interupt(); init_pwm(pwm_pin_num, pwm_channel, period, 0); init_coil(); init_timer(); init_ADC(); init_timer(); #ifdef DEBUG_WEIGHT int a; for (a = 0; a < COUNT; a++) { temp[a] = 0; } #endif printf("Weight Meassure. clibration: %d \n Press Button 1 to calibrate \n", calibrate); delay_ms(5000); if (button_pressed_1) { calibrate = true; button_pressed_1 = false; printf("Device will be calibrated \n"); } else { printf("Stock calibration will be used bei Temperatur:%g \n",calibration_temp); calibrate = false; } while (1) { measure_button(); //Funktion zum Start der Messung delay_ms(5); catapult_button(); check_temperatur(MAX_TEMP); delay_ms(2000); // printf("%g\n",compute_temperatur()); } return 0; }
MRESULT EXPENTRY main_proc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) { if( msg == WM_CREATE ) { PCREATESTRUCT pcreate; pcreate = ( CREATESTRUCT * ) mp2; Draw_area.xRight = pcreate->x + pcreate->cx; Draw_area.yTop = pcreate->y + pcreate->cy; Draw_area.yBottom = pcreate->y; Draw_area.xLeft = pcreate->x; // WinQueryWindowRect( hwnd, &Draw_area ); } else if( msg == WM_COMMAND || ( msg == WM_CONTROL && SHORT2FROMMP( mp1 ) != BN_PAINT ) ) { switch( SHORT1FROMMP( mp1 ) ) { case IDM_EXIT: new_display(); WinPostMsg( hwnd, WM_QUIT, 0L, 0L ); return( NULL ); case IDM_ROTATE_LEFT: new_display(); add_wrap( THREE_D_HORZ_ANGLE, -15, 0, 360 ); break; case IDM_ROTATE_RIGHT: new_display(); add_wrap( THREE_D_HORZ_ANGLE, 15, 0, 360 ); break; case IDM_ROTATE_UP: new_display(); add_range( THREE_D_VERT_ANGLE, 5, -90, 90 ); break; case IDM_ROTATE_DOWN: new_display(); add_range( THREE_D_VERT_ANGLE, -5, -90, 90 ); break; case IDM_MOVE_IN: new_display(); add_range(THREE_D_ZOOM, 10, 5, 200 ); break; case IDM_MOVE_OUT: new_display(); add_range( THREE_D_ZOOM, -10, 5, 200 ); break; case IDM_MORE_PERSPECTIVE: new_display(); add_range( THREE_D_PERSPECTIVE, 10, 5, 200 ); break; case IDM_LESS_PERSPECTIVE: new_display(); add_range( THREE_D_PERSPECTIVE, -10, 5, 200 ); break; case IDM_MORE_CONTRAST: new_display(); add_range( THREE_D_CONTRAST, 10, 0, 100 ); break; case IDM_LESS_CONTRAST: new_display(); add_range( THREE_D_CONTRAST, -10, 0, 100 ); break; case IDM_MORE_BRIGHTNESS: new_display(); add_range( THREE_D_BRIGHTNESS, 10, 0, 100 ); break; case IDM_LESS_BRIGHTNESS: new_display(); add_range( THREE_D_BRIGHTNESS, -10, 0, 100 ); break; case IDM_LIGHT_HORZ_LEFT: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_HORZ, 1 ); break; case IDM_LIGHT_HORZ_MIDDLE: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_HORZ, 2 ); break; case IDM_LIGHT_HORZ_RIGHT: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_HORZ, 3 ); break; case IDM_LIGHT_VERT_TOP: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_VERT, 1 ); break; case IDM_LIGHT_VERT_MIDDLE: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_VERT, 2 ); break; case IDM_LIGHT_VERT_BOTTOM: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_VERT, 3 ); break; case IDM_LIGHT_DEPTH_FRONT: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_DEPTH, 1 ); break; case IDM_LIGHT_DEPTH_MIDDLE: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_DEPTH, 2 ); break; case IDM_LIGHT_DEPTH_BACK: new_display(); three_d_set( hThree_d, THREE_D_LIGHT_DEPTH, 3 ); break; default: ; } WinInvalidateRect( hwnd, &Draw_area, SHORT1FROMMP( mp1 ) >= IDM_FIRST_REQUIRING_CLEAR ); } else if( msg == WM_DESTROY ) { WinPostMsg( hwnd, WM_QUIT, 0L, 0L ); return( 0 ); } else if( msg == WM_PAINT ) { draw_stuff( hwnd ); if( Auto_run ) { if( Auto_run == 5 ) { WinPostMsg( hwnd, WM_QUIT, 0L, 0L ); } else { long count; int will_be_one; will_be_one = 1; for(count = 0; count < 1000000; ++ count ) will_be_one ^= 1; Auto_run += will_be_one; WinPostMsg( hwnd, WM_COMMAND, MPFROMSHORT( IDM_ROTATE_LEFT ), 0L ); } } return( 0 ); } else if( msg == WM_SIZE ) { WinQueryWindowRect( hwnd, &Draw_area ); Draw_area.yTop -= Button_height; WinInvalidateRect( hwnd, NULL, TRUE ); return( 0 ); } else if( msg == WM_MEASUREITEM ) { return( (MRESULT) measure_button( hwnd, mp1, mp2 ) ); } else if( msg == WM_CONTROL && SHORT2FROMMP( mp1 ) == BN_PAINT ) { draw_button( mp1, mp2 ); return( (MRESULT) TRUE ); } return( (MRESULT) WinDefWindowProc( hwnd, msg, mp1, mp2 ) ); }
LRESULT CALLBACK main_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { WORD cmd; switch( msg ) { case WM_CREATE: { GetClientRect( hwnd, &Draw_area ); make_buttons( hwnd ); break; } case WM_COMMAND: cmd = LOWORD( wparam ); switch( LOWORD( cmd ) ) { case IDM_EXIT: PostQuitMessage( 0 ); return( FALSE ); case IDM_ROTATE_LEFT: add_wrap( THREE_D_HORZ_ANGLE, -15, 0, 360 ); break; case IDM_ROTATE_RIGHT: add_wrap( THREE_D_HORZ_ANGLE, 15, 0, 360 ); break; case IDM_ROTATE_UP: add_range( THREE_D_VERT_ANGLE, 5, -90, 90 ); break; case IDM_ROTATE_DOWN: add_range( THREE_D_VERT_ANGLE, -5, -90, 90 ); break; case IDM_MOVE_IN: add_range(THREE_D_ZOOM, 10, 5, 200 ); break; case IDM_MOVE_OUT: add_range( THREE_D_ZOOM, -10, 5, 200 ); break; case IDM_MORE_PERSPECTIVE: add_range( THREE_D_PERSPECTIVE, 10, 5, 200 ); break; case IDM_LESS_PERSPECTIVE: add_range( THREE_D_PERSPECTIVE, -10, 5, 200 ); break; case IDM_MORE_CONTRAST: add_range( THREE_D_CONTRAST, 10, 0, 100 ); break; case IDM_LESS_CONTRAST: add_range( THREE_D_CONTRAST, -10, 0, 100 ); break; case IDM_MORE_BRIGHTNESS: add_range( THREE_D_BRIGHTNESS, 10, 0, 100 ); break; case IDM_LESS_BRIGHTNESS: add_range( THREE_D_BRIGHTNESS, -10, 0, 100 ); break; case IDM_LIGHT_HORZ_LEFT: three_d_set( hThree_d, THREE_D_LIGHT_HORZ, 1 ); break; case IDM_LIGHT_HORZ_MIDDLE: three_d_set( hThree_d, THREE_D_LIGHT_HORZ, 2 ); break; case IDM_LIGHT_HORZ_RIGHT: three_d_set( hThree_d, THREE_D_LIGHT_HORZ, 3 ); break; case IDM_LIGHT_VERT_TOP: three_d_set( hThree_d, THREE_D_LIGHT_VERT, 1 ); break; case IDM_LIGHT_VERT_MIDDLE: three_d_set( hThree_d, THREE_D_LIGHT_VERT, 2 ); break; case IDM_LIGHT_VERT_BOTTOM: three_d_set( hThree_d, THREE_D_LIGHT_VERT, 3 ); break; case IDM_LIGHT_DEPTH_FRONT: three_d_set( hThree_d, THREE_D_LIGHT_DEPTH, 1 ); break; case IDM_LIGHT_DEPTH_MIDDLE: three_d_set( hThree_d, THREE_D_LIGHT_DEPTH, 2 ); break; case IDM_LIGHT_DEPTH_BACK: three_d_set( hThree_d, THREE_D_LIGHT_DEPTH, 3 ); break; default: ; } InvalidateRect( hwnd, &Draw_area, cmd >= IDM_FIRST_REQUIRING_CLEAR ); break; case WM_DESTROY: PostQuitMessage( 0 ); return( FALSE ); case WM_PAINT: draw_stuff( hwnd ); if( Auto_run ) { if( Auto_run == 5 ) { PostQuitMessage( 0 ); } else { long count; int will_be_one; will_be_one = 1; for(count = 0; count < 1000000; ++ count ) will_be_one ^= 1; Auto_run += will_be_one; PostMessage( hwnd, WM_COMMAND, GET_WM_COMMAND_MPS( IDM_ROTATE_LEFT, 0, 0 ) ); } } return( FALSE ); case WM_SIZE: if( wparam != SIZEICONIC ) { int old_left = Draw_area.left; GetClientRect( hwnd, &Draw_area ); Draw_area.left = old_left; InvalidateRect( hwnd, NULL, TRUE ); return( FALSE ); } break; case WM_MEASUREITEM: measure_button( hwnd, wparam, _lparam_pointer( lparam ) ); return( TRUE ); case WM_DRAWITEM: draw_button( wparam, _lparam_pointer( lparam ) ); return( TRUE ); } return( DefWindowProc( hwnd, msg, wparam, lparam ) ); }