
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > > Die c-control 1 unterstützt keinen can bus > > Die c-control 2 kann das serienmässig > > > > weitere infos dazu > > http://www.cc2net.de > > > > wenn jemand schon einen can bus mit der cc1 hinbekommen hat > > lass ich mich gerne eines besseren belehren > > > > Michael > > > > > > > > > > > hallo > > > ich habe einen eintrag über canbus gelesen und möchte ich fragen ob jemand das weiter und für andere anwendungen geschrieben hat . ich bin kein experte und deswegen benötige ich einen rat . ich möchte mit einen m-unit und canbus controler die komunikation zwischen verschidnen steuergeäten auslesen und auf den pc dokumentieren. > > > > > > micha > > > ich habe vor langer zeit gelesen dass jemand die komunikation zwischen zwei cc1 auf basis von canbus geschrieben hat und deswegen frage ich dass Hallo Ich habe zwei M-Units und verschidene Rechner mit einander verkoppelt Vileicht sollte man die neue M-Unit benutzen da wesentlich schneller (32 MHZ) Eingesetzt habe ich ein SJA 1000 von Philips die module laufen auf 500 mb die Schaltung habe ich aus einem Elektor Projekt entwickelt Das Programm hat nur ein Problem ID unter 300 werden nich richtig übermittelt sonst keine Fehler define A byte define D byte define E byte define Z byte define H byte define T byte define Q byte define L byte define M byte define X byte define QQ byte define SR byte define DFL byte define REG byte define RTR byte define IDH byte define IDL byte define ID word define KH word define KL word define DD byteport[1] define AD byteport[2] define ALE port[ 9] define CS port[10] define RD port[11] define WR port[12] #START BEEP 100,25,10 BEEP 100,25,10 PRINT "CAN-BUS SENDER" DD=0 : ALE=0 : CS=1 : RD=1 : WR=1 GOSUB INITIALE BEEP 400,25,10 'ID 400 'BYTE 0: start: 'D0 VIDEO 0 0=Rückfahr 1=Frei 0 Kanal=0 'D1 VIDEO 1 2=Frei 3=Extern 0 'D2 Monitor 3 0 0=CPU Navi 1=CPU 3 1 M3=3 'D3 Monitor 3 1 2=CPU 1(2) 3=OSD 1 'D4 Osd 0 0=Lokalmod 1=Mixedmod 0 OSD=0 'D5 osd 1 2=Automod 3=Osd aus 0 'D6 Monitor 2 0=CPU 1(2) 1 M2=1 'D7 Monitor 1 0=CPU 1(2) 1 M1=1 #LOOP1 ID=400 : DFL=1 ' 128 64 32 16 8 4 3 1 REG=12+0 : D=&B11001100 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11101100 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11101101 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11101110 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11101111 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11000000 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11000100 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11001000 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 REG=12+0 : D=&B11001100 : GOSUB C_WR : GOSUB SENDEN : PAUSE 100 BEEP 200,25,10 GOTO LOOP1 #SENDEN REG=&H02 : GOSUB C_RD : Q=D AND 4 'PRINT "D=";D ;" Q=";Q IF Q=0 THEN GOTO SENDEN REG=&H0A : D=ID/8 : GOSUB C_WR REG=&H0B : D=(ID-8*(ID/8))*32+DFL : GOSUB C_WR REG=&H01 : D=&H0D : GOSUB C_WR 'D=&H0D Traransmission request 1100 REG=&H02 : GOSUB C_RD : SR=D RETURN ' ' #EMFANGEN REG=&H02 : GOSUB C_RD : SR=D PRINT "STATUS=";SR Q=SR AND 2 : IF Q=2 THEN GOTO CLR_OVERRUN '(2) Q=SR AND 1 : IF Q=0 THEN GOTO EMFANGEN REG=&H14 : GOSUB C_RD : IDH=D*8 REG=&H15 : GOSUB C_RD : IDL=D/32 ID=IDH+IDL IF ID=300 THEN BEEP 100,25,10 ELSE BEEP 500,25,10 PRINT "ID=";ID;" " PRINT "WRTE "; FOR L=0 TO 7 REG=&H16+L : GOSUB C_RD PRINT D" "; NEXT L IF ID=300 THEN GOSUB RRB REG=&H01 : D=&H0C : GOSUB C_WR RETURN ' #RRB REG=&H16+6 : GOSUB C_RD : REG=8 : GOSUB SET REG=&H16+7 : GOSUB C_RD : REG=9 : GOSUB SET RETURN ' #CLR_OVERRUN REG=&H01 : D=8 : GOSUB C_WR GOTO EMFANGEN END #INITIALE REG=&H00 : D=&H01 : GOSUB C_WR REG=&H00 : D=&H01 : GOSUB C_WR #W_R REG=&H00 : GOSUB C_RD : Q=D AND 1 : IF Q<>1 THEN GOTO W_R PRINT "RESET OK" 'Übertragung auf 500 REG=&H1F : D=&H43 : GOSUB C_WR REG=&H04 : D=&H00 : GOSUB C_WR REG=&H05 : D=&HFF : GOSUB C_WR REG=&H06 : D=&H00 : GOSUB C_WR 'BT0 REG=&H07 : D=&H1C : GOSUB C_WR 'BT1 REG=&H08 : D=&H1A : GOSUB C_WR REG=&H01 : D=&H0E : GOSUB C_WR REG=&H00 : D=&H00 : GOSUB C_WR #W_I REG=&H00 : GOSUB C_RD : Q=D AND 1 : IF Q>0 THEN GOTO W_I PRINT "INITIALE OK" RETURN #SCAN DEACT DD : D=0 AD=16*REG + 15 D=DD AD=15 RETURN #SET DD=D AD=16*REG + 15 DD=D AD=15 RETURN #C_WR ALE=1 : CS=1 : RD=1 : WR=1 DD=REG ALE=0 PAUSE 1 CS=0 DD=D WR=0 WR=1 CS=1 ALE=1 RETURN #C_RD ALE=1 : CS=1 : RD=1 : WR=1 DD=REG ALE=0 CS=0 RD=0 DEACT DD D=DD RD=1 CS=1 ALE=1 RETURN |
| Antwort schreiben |