Example #1
0
struct car *
make_ford() {
  struct ford * f = (struct ford *) malloc( sizeof( struct ford ));
  car_init( &f->base );
  f->base.change_gears = ford_change_gears;
  f->ford_serial_number = next_ford_serial_number++;
}  
Example #2
0
 int main(void){
    sys_init();	 //配置系统时钟72M(包括clock, PLL and Flash configuration)
	delay_init();//初始化延时
	uart1_init(72,9600);
	uart2_init(36,9600);//时钟为最高时钟的一半
//	uart3_init(36,9600);//时钟为最高时钟的一半
	led_init();
	car_init();
	jtag_set(2);//禁止JTAG,释放PB3,PA15
	Steering_Init();
	uart_printf("ok\r\n");
	hwbz_init();
	power_init();
	while(1){
		cmd_handle();
	};

	return 0;
 }
Example #3
0
void main(){
car_init();
while(1){
    sensor_accelerator_read();
  sensor_accelerator_calculate();
  sensor_electromagnet_read();
 angle_control(0);
 // Speed_R=10;Speed_L=10;
  float  OutData[4];

  OutData[0] = angle;
  //OutData[1] =  angle_accZ;
  OutData[2] = 3 ;
  OutData[3] = 4;
  //vcan_sendware((uint8_t *)OutData,sizeof(OutData));
 print_fraction(angle);

}


}
Example #4
0
void  main1(void)
{
  
 OLED_Init();
  OLED_Fill(0x00);//黑屏
  car_init();
  
  OLED_P8x16Str(5,0,"test");
  
  
  
  //setup();
  //sd_read();
  
  while(1){
  sensor_accelerator_read();
  sensor_accelerator_calculate();
  char buffer [100] ;
  float  OutData[1];
   // OutData[0]=angle;
 // vcan_sendware((char *)OutData,sizeof(OutData));
  sprintf(buffer,"%d",(int)angle);
  //OLED_P8x16Str(5,0,"    ");

  //OLED_P8x16Str(6,0,buffer);
 //motor_left_pid(1);
 //motor_right_pid(0);
  angle_control(20);
  //sensor_electromagnet_read();
  
  //printf("%lld\n",electromagnet_L6);
  
  }

 
}
Example #5
0
File: main.c Project: PatzHum/rpg
int main(){

    //setup log file
    fpLog = fopen("log.txt", "w");
    if(fpLog == NULL){
        printf("Failed to open log file\n");
    }
    //seed random
    srand(time(NULL));

    //set up frame limiting
    clock_t s_cycle, e_cycle;
    s_cycle = clock();  //get amount of time to init game

    fprintf(fpLog, "Initializing...\n");    //log
    allegro_init_install(); //allegro inits

    Game game;
    game_init(&game);   //initialize game struct

    TMX_map map;
    load_map(&game, &map);  //load first map

    Sprite player, car;
    player_init(&game, &player, &map);   //initialize player struct
    car_init(&game, &car, &map, 32, 32, 5); //initialize car struct

    gen_npcs(&game, &map);  //generate and initialize npcs

    e_cycle = clock();
    //get length of initialization
    fprintf(fpLog, "Initialization done in %f seconds.\n",
            (double)(e_cycle - s_cycle) / 1000);

    //show instructions on how to play
    display_instructions(&game);

    //set active sprite
    game.active_sprite = &player;

    fprintf(fpLog, "Beginning main loop.\n");
    while(game.running){
        //to limit frames we have a set refresh rate
        //to maintain this refresh rate we subtract the
        //time elapsed over the entire cycle
        //to do this we get the time at the start of the cycle
        //and the end to get the difference
        s_cycle = clock();
        //exit sequence
        exit_sequence(&game);

        //check if we enter the car
        enter_car(&game, &player, &car, &map);

        //toggle debugging
        if(key[KEY_F1] && !game.debug_cd){
            game.debug = !game.debug;
            printf(game.debug ? "DEBUGGING ENABLED\n" : "DEBUGGING DISABLED\n");
            game.debug_cd = 10;
        }else{
            game.debug_cd -= game.debug_cd ? 1 : 0;
        }
        //resets game
        if(key[KEY_F5]){
            game_init(&game);
            load_map(&game, &map);
            player_init(&game, &player, &map);   //initialize player struct
            car_init(&game, &car, &map, 32, 32, 5);
            gen_npcs(&game, &map);
        }

        //toggle music
        if(key[KEY_M]){
            game.music ? stop_sample(game.bgMusic) :
                         play_sample(game.bgMusic, 255, 128, 1000, 1);
        }

        //clear buffer
        clear_to_color(game.buffer, makecol(0, 0, 0));

        //show map
        masked_blit(map.map, game.buffer, game.cam_x, game.cam_y,
                    0, 0, game.screen_w, game.screen_h);

        //pan camera
        pan_camera(&game);

        //do mouse click
        mouse_click(&game, game.active_sprite);
        npc_sequence(&game, &map);

        //display the player if we're not in the car
        if (!game.in_car){
            sprite_sequence(&game, &player, &map, !game.in_car);
            if (key[KEY_SPACE] && !player.bullet_cd){
                sprite_shoot(&game, &player);
                player.bullet_cd = 10;
            }else{
                player.bullet_cd -= player.bullet_cd ? 1 : 0;
            }
        }else{
            free(player.bullets);
            player.bullets = NULL;
            player.bullet_count = 0;
        }

        //show car
        sprite_sequence(&game, &car, &map, game.in_car);

        //display all overlays
        blit_overlays(&game);

        //show hud
        show_hud(&game, &player);

        //display buffer to screen
        stretch_blit(game.buffer, screen, 0, 0, game.buffer->w,
                     game.buffer->h, 0, 0, game.screen_w * STRETCH_FACTOR,
                     game.screen_h * STRETCH_FACTOR);

        //countdown timer
        game_tick(&game, &map);

        e_cycle = clock();

        /*maintain consistent framerate by calculating delay of
        processing, using max because we don't want negative rest*/
        printf("\rIteration took %f%20s", (double)
                (e_cycle - s_cycle), " ");
        rest(max(game.delay - (double) (e_cycle - s_cycle), 0));
    }

    fprintf(fpLog, "Running exit scripts...\n");
    //destroy all bitmaps
    destroy_bitmaps(&game, &player, &map, &car);
    fprintf(fpLog, "Exiting...\n");
    return 0;
}END_OF_MAIN();
Example #6
0
void cmd_handle(void){
	unsigned char cmd;
	unsigned char cmd_param[8];
	int i;

	cmd = uart1_receive();
	uart1_send_char(cmd);
//	uart2_send_char('O');
//	uart3_send_char('K');
	switch(cmd){
	case CMD_FORWARD://前进
		car_forward();
		break;
	case CMD_BACK ://后退
		car_back();
		break;
	case CMD_LEFT://向左移动
		car_left();
		break;
	case CMD_RIGHT://向右移动
		car_right();
		break;
	case CMD_STOP://制动
		car_stop();
		break;
	case CMD_INIT://初始化
		car_init();
		break;
	case CMD_STANDBY://待机
		car_standby();
		break;
	case  CMD_CIRCLE1://转
		car_circle(1);
		break;
	case  CMD_CIRCLE2://反转
		car_circle(0);
		break;
	case CMD_MOTOR_SET://设置参数
		for(i=0;i<8;i++){
			cmd_param[i]=uart1_receive();
		}
		car_set(cmd_param);
		for(i=0;i<8;i++){
			uart1_send_char(cmd_param[i]);
		}
		break;
	case CMD_RESUME://恢复
		car_resume();
		break;
	case CMD_POWER_SET:
		for(i=0;i<2;i++){
			cmd_param[i]=uart1_receive();
		}
		power_set(cmd_param);
		for(i=0;i<2;i++){
			uart1_send_char(cmd_param[i]);
		}
		break;
	case CMD_STEER_SET:
		for(i=0;i<3;i++){
			cmd_param[i]=uart1_receive();
		}
		steering_set(cmd_param);
		for(i=0;i<3;i++){
			uart1_send_char(cmd_param[i]);
		}
		break;
	case CMD_STEER_SHOW:
		steering_show();
		break;
	case CMD_STEER_SET_INIT:
			steering_set_init();
			break;
	case CMD_PLAY_WAV:
			cmd_param[0]=uart1_receive();
			play_wav(cmd_param[0]);
			break;
	default:break;
	}
}