Re: CAN Speed nicht ausreichend? Kategorie: CAN-Bus (von André H. - 7.09.2012 10:51) | ||
Als Antwort auf CAN Speed nicht ausreichend? von Newbie - 4.09.2012 8:33 | ||
| ||
Hallo Mike, > Wenn ich nun versuche, mehrere in einem Kanal zuzuweisen, um Kanäle zu sparen, dann blinken nicht > mehr alle Unisono - es gehen Frames verloren.: > > > can.init(4,0x7F8,0x000); //Letzte 8 Bites egal. Somit 0x300-0x307 im selben Postfach Was sind bitte "Bites"? Meinst Du Bits? Wenn ja, stimmt Deine Maske nicht. Du hast nur die unteren 3 Bit ausgenommen. Für 8Bit wäre die Maske 0x700. > can.expect(0,0x305); // Erwarte auf Kanal 0, letzten 8 Bites egal, da Global Mask entsprechend. Ohne es getestet zu haben, aber Du solltest eher 0x300 statt 0x305 schreiben. > loop > { > wait can.rxd(0); //Neue Daten? > { adress=can.getID(0); //Welche Adresse? > can.get(0,temp); //Daten auslesen, Eingangskanal leeren > if adress==0x300 > stports.togLED(0x01); > if adress==0x301 > stports.togLED(0x02); > if adress==0x304 > stports.togLED(0x03); > if adress==0x305 > stports.togLED(0x04); > if adress==0x307 > stports.togLED(0x05); > > }//if zu > > }//Loop zu > } > Gewöhne Dir bitte das Einrücken bei Klammern an. Das macht das Kennzeichnen mit "//xy zu" unnötig und sorgt bei grö�eren Programmen für mehr �bersichtlichkeit. Au�erdem, warum machst Du nach dem wait eine geschweifte Klammer auf? Unten hast Du diese mit "//if zu" gekennzeichnet. Welches "If"? Zum Debuggen solltest Du Dir "adress" (da fehlt ein e, oder address in Englisch") ausgeben. z.B. über RS232. Dann siehst Du, ob etwas emfangen wird, und mit welcher Adresse. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |