Ok so wie es aussieht funktioniert die CAN Initialisierung.
Jetzt bin ich gerade dabei eine Botschaft auf den CAN Bus zu senden.
Das habe ich bis jetzt nicht zum laufen gebracht.
Das Programm bleibt bei "warten bis Sendung ausgelöst" stehen.
Es kann auch sein das die Initialisierung doch nicht richtig ist. Wie
gesagt den SJA1000 habe ich zusammen mit einem ATMEL Controller
am laufen. Klappt wunderbar.
/*----CAN Botschaft
senden------------------------------------------------*/
void TForm1::canmessage_write(struct message *ptransmit)
{
unsigned int id_1,id_2,id_3;
unsigned int id_1_hilf,id_2_hilf,id_3_hilf;
unsigned int trdscr_wert;
unsigned int i;
id_3=(ptransmit->id)&0x0f;
id_2=((ptransmit->id)/16)&0x0f;
id_1=((ptransmit->id)/256)&0x0f;
id_1_hilf=id_1*32;
id_2_hilf=id_2*2;
id_3_hilf=id_3/8;
trdscr_wert=(id_1_hilf)|(id_2_hilf)|(id_3_hilf);
canreg_write(10,trdscr_wert);
id_3=(ptransmit->dlc)&0x0f;
id_2=(ptransmit->rtr)*16;
id_1=((ptransmit->id)&0x0f)*32;
trdscr_wert =(id_3)|(id_2)|(id_1);
canreg_write(11,trdscr_wert);
for (i=0;i<=7;i++)
{
canreg_write (12+i,ptransmit->byte[i]);
}
canreg_write (1,0x01); //Sendung auslösen
do
{
}
while (((canreg_read(2))&0x08)==0); //warten bis Sendung fertig
}