Exemplo n.º 1
0
main()
{
  int i;
  
  unsigned char frame_basic0[10]  = {0xEA,0x28,0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0};
  
  unsigned char frame_basic1[10]  = {0xEB,0x28,0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0};
  
  unsigned char frame_basic2[10]  = {0xEC,0x28,0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0};
                                        
  unsigned char frame_basic3[10]  = {0xED,0x28,0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0};                                 

  unsigned char frame_extended[13] = {0x88,0xA6,0xB0,0x12,0x30,0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0};
	


  unsigned char r_val;
	

  init_can("Basic","normal");  

  
  enable_irq_sff();
  

  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();
  release_receive_buffer();

  printf("interrupt register 0x%X \n",interrupt_register);

  while(1)
    {
      
      if ((interrupt_register & receive_interrupt) == 0)
        {
          kill_time(4000000);
          printf("No data!\n");
        }
      else
        {
          read_receive_buffer_basic();
          release_receive_buffer();
        }
    }
  
}
Exemplo n.º 2
0
static int test_proc_show(struct seq_file *seq, void *v)
{
	unsigned int *ptr_var = seq->private;
	kill_time();
	seq_printf(seq, "%u\n", *ptr_var);
	return 0;
}
Exemplo n.º 3
0
void write_frame_extended(unsigned char write_field[])
{	
	int i = 0;
	//printf("************************************\n");
  	printf("******* write frame extended *******\n");
	//printf("************************************\n");
			
	for (i=0; i<13; i++)
	{
		*((unsigned char *)(CANADDR+0x0010+i)) = write_field[i];
		kill_time(10);
		printf( "write data %i:  0x%X , 0x%X \n",i,write_field[i],*((unsigned char *)(CANADDR+0x0010+i)));
	}
	
}
Exemplo n.º 4
0
void write_frame_basic(unsigned char write_field[])
{	
	int i = 0;
	printf("************************************\n");
  	printf("******** write frame basic *********\n");
	printf("************************************\n");
			
	for (i=0; i<10; i++)
	{
		*((unsigned char *)(0xfffc000A+i)) = write_field[i];
		kill_time(10);
		printf( "write data: %i , 0x%X , 0x%X \n",i,write_field[i],*((unsigned char *)(0xfffc000A+i)));
	}
	
}
Exemplo n.º 5
0
void self_reception_test()
{	
	unsigned char r_val;
	
	printf( "Switch on Reset Mode\n"); 
	control_register = 0x01;
	printf( "control 0x%X \n\n",control_register);	
	
	// witch to extended mode
	clock_divider_register = 0x80;
	printf( "clock_divider 0x%X \n\n",clock_divider_register);

	// set bus timing	
  	//bus_timing_0_register = 0xBF;
	bus_timing_0_register = 0x80;
	
        bus_timing_1_register = 0x34;
	
	// set acceptance and mask register
	acceptance_code_0 = 0xA6;
	printf( "acceptance 0 0x%X \n",acceptance_code_0);
	
	acceptance_code_1 = 0xB0;
	printf( "acceptance 1 0x%X \n",acceptance_code_1);
	
	acceptance_code_2 = 0x12;
	printf( "acceptance 2 0x%X \n",acceptance_code_2);
	
	acceptance_code_3 = 0x30;
	printf( "acceptance 3 0x%X \n\n",acceptance_code_3);
	
	acceptance_mask_0 = 0x00;
	printf( "acceptance mask 0x%X \n",acceptance_mask_0);
	
	acceptance_mask_1 = 0x00;
	printf( "acceptance mask 0x%X \n",acceptance_mask_1);
	
	acceptance_mask_2 = 0x00;
	printf( "acceptance mask 0x%X \n",acceptance_mask_2);
	
	acceptance_mask_3 = 0x00;
	printf( "acceptance mask 0x%X \n\n",acceptance_mask_3);
	 
	// Setting the "self test mode"	
	control_register = 0x05;
	printf( "control 0x%X \n\n",control_register);	
	
	kill_time(50);
	// Switch-off reset mode       
	control_register = 0X04;
	printf( "control_register 0x%X \n\n",control_register);
	
	kill_time(150);
	
	// Send frame
	tx_frame_information_eff = 0x88;
	
	printf( "Set identifier - 0xA6 0xB0 0x12 0x30\n");
	tx_identifier_1_eff = 0xA6;
	//printf( "identifier 0: 0x%X \n",tx_identifier_1_eff);
	
	tx_identifier_2_eff = 0xB0;
	//printf( "identifier 1: 0x%X \n",tx_identifier_2_eff);
	
	tx_identifier_3_eff = 0x12;
	//printf( "identifier 2: 0x%X \n",tx_identifier_3_eff);
	
	tx_identifier_4_eff = 0x30;
	//printf( "identifier 3: 0x%X \n\n",tx_identifier_4_eff);
	
	printf( "Set data - 0x12 0x34 0x56 0x78 0x9A 0xBC 0xDE 0xF0\n");
	tx_data_1_eff = 0x12;
	//printf( "data byte 1: 0x%X \n",tx_data_1_eff);
	
	tx_data_2_eff = 0x34;
	//printf( "data byte 2: 0x%X \n",tx_data_2_eff);
		
	tx_data_3_eff = 0x56;
	//printf( "data byte 3: 0x%X \n",tx_data_3_eff);
	
	tx_data_4_eff = 0x78;
	//printf( "data byte 4: 0x%X \n",tx_data_4_eff);
	
	tx_data_5_eff = 0x9A;
	//printf( "data byte 5: 0x%X \n",tx_data_5_eff);
	
	tx_data_6_eff = 0xBC;
	//printf( "data byte 6: 0x%X \n",tx_data_6_eff);
	
	tx_data_7_eff = 0xDE;
	//printf( "data byte 7: 0x%X \n",tx_data_7_eff);
	
	tx_data_8_eff = 0xF0;
	//printf( "data byte 8: 0x%X \n\n",tx_data_8_eff);
	
	
	// Enable ints
	interrupt_enable_register = 0xFF;
	kill_time(50);
	//tx_request_command();
	self_reception_request(); 
	
	
	//tx_request_command();
	printf( "Finnished \n");
	
	printf( "control_register 0x%X \n\n",control_register);
	
	//kill_time(10000);
	
	printf( "interrupt_register 0x%X \n\n",interrupt_register);
	
	printf( "control_register 0x%X \n\n",control_register);
	
	//read_receive_buffer_extended();
}
Exemplo n.º 6
0
void init_can(char * mode, char * self_test)
{
	unsigned char r_val;
	
	if (mode == "Basic")
	{
                //printf("************************************\n");
	  	printf("********** Basic Can Mode **********\n");
		//printf("************************************\n");
	  	
		printf( "Switch on Reset Mode\n"); 
	  	r_val = control_register | reset_mode_on;
		control_register = r_val;
	  	//printf( "control_register: 0x%X \n\n",control_register);	
	
		//printf( "Set clock divider register to basic can mode\n");
	        r_val = clock_divider_register & basic_mode | 0x07;
		clock_divider_register = r_val;
		//printf( "clock_divider_register: 0x%X \n\n",clock_divider_register);
	  	
		//printf( "Output control register \n");
	  	//output_control_register = 0x01;
	  	//printf( "output control register : 0x%X \n\n",output_control_register);
	
		//printf( "Set bus timing register 0\n");
	  	//printf( "Sync Jump Width = 2  Baudrate Prescaler = 1\n");	
  	  	bus_timing_0_register = 0x83;
	  	//printf( "bus timing register 0: 0x%X \n\n",bus_timing_0_register);

		//printf( "Set bus timing register 1\n");
		//printf( "SAM = 0 ---> Single Sampling\n");
	        bus_timing_1_register = 0x25;
		//printf( "bus timing register 1: 0x%X \n\n",bus_timing_1_register);
	
		//printf( "Set acceptance code register\n"); 
	        acceptance_code_register = 0x88;
	 	//printf( "acceptance code register: 0x%X \n\n",acceptance_code_register);
	
		//printf( "Set acceptance mask register\n"); 
	        acceptance_mask_register = 0xFF;
	 	//printf( "acceptance mask register: 0x%X \n\n",acceptance_mask_register);
	
	
	  	kill_time(50);
		
		printf( "Switch off reset mode\n");
	        r_val = control_register & reset_mode_off;
		control_register = r_val;
		//printf( "control_register 0x%X \n\n",control_register);
		
 	    	kill_time(50);
		
	}
	else if (mode == "Extended")
	{
		printf("************************************\n");
	  	printf("******** Extended Can Mode *********\n");
		printf("************************************\n");
		
		printf( "Switch on Reset Mode\n"); 
	  	r_val = control_register | reset_mode_on;
		control_register = r_val;
	  	printf( "control_register: 0x%X \n\n",control_register);	
	        
		
 	    	kill_time(50);
		
		
		printf( "Set clock divider register to extended can mode\n");
	        r_val = clock_divider_register | extended_mode | 0x07;
		clock_divider_register = r_val;
		printf( "clock_divider_register: 0x%X \n\n",clock_divider_register);
	  	
		kill_time(50);

		//printf( "Output control register \n");
	  	//output_control_register = 0x01;
	  	//printf( "output control register: 0x%X \n\n",output_control_register);

		printf( "Set bus timing register 0\n");
	  	printf( "Sync Jump Width = 2  Baudrate Prescaler = 1\n");	
  	  	bus_timing_0_register = 0xA8;
	  	printf( "bus timing register 0: 0x%X \n\n",bus_timing_0_register);
	
		printf( "Set bus timing register 1\n");
		printf( "SAM = 0 ---> Single Sampling\n");
	        bus_timing_1_register = 0x34;
		printf( "bus timing register 1: 0x%X \n\n",bus_timing_1_register);
	
		printf( "Set acceptance code register\n"); 
	        acceptance_code_0 = 0xA6;
	 	printf( "acceptance code register 0: 0x%X \n",acceptance_code_0);
	
	        acceptance_code_1 = 0xB0;
	 	printf( "acceptance code register 1: 0x%X \n",acceptance_code_1);
	
	        acceptance_code_2 = 0x12;
	 	printf( "acceptance code register 2: 0x%X \n",acceptance_code_2);
	
	        acceptance_code_3 = 0x30;
	 	printf( "acceptance code register 3: 0x%X \n\n",acceptance_code_3);
	
		
		printf( "Set acceptance mask register\n"); 
	        acceptance_mask_0 = 0x00;
	 	printf( "acceptance mask register: 0x%X \n",acceptance_mask_0);
	
	        acceptance_mask_1 = 0x00;
	 	printf( "acceptance mask register: 0x%X \n",acceptance_mask_1);
	
	        acceptance_mask_2 = 0x00;
	 	printf( "acceptance mask register: 0x%X \n",acceptance_mask_2);
	
	        acceptance_mask_3 = 0x00;
	 	printf( "acceptance mask register: 0x%X \n\n",acceptance_mask_3);
		
	  	if (self_test == "self_test")
		{
			self_testing_mode();
		}
		
		printf( "Switch off reset mode\n");
	        r_val = control_register & reset_mode_off;
		control_register = r_val;
		printf( "control_register 0x%X \n\n",control_register);
	
		kill_time(50);
	}
	

}