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(); } } }
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; }
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))); } }
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))); } }
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(); }
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); } }