Zykluszeiten einhalten Kategorie: CAN-Bus (von Tobias - 28.01.2009 14:40) | ||
| ||
Hallo, habe eine Frage zum Zyklischen Senden über CAN. Ich muss eine Zykluszeit von ca. 20ms einhalten, weil die Botschaft von einem Gateway geroutet wird. Nur wei� ich nicht, wie ich diese einhalten kann, weil das Senden zwischen 3-6ms dauert, auch manchmal über 10 ms und ich so keine Wartezeit mit sleep generieren kann. Vielen Dank schonmal im Vorraus für eure Hilfe. Gru� Tobias hier noch ein Testprogramm mit statischen Werten, das eine Durchlaufzeit von 3-5ms hat. Oder mach ich da einen grundlegenden Fehler? //Globale Variablen byte v[7]; int bz; thread senden { if can.ready(1) { can.send(1, 0x100, v, 8); sleep 16; } } thread main { can.init(4, 0x07FF, 0x0000); lcdext.init(); while 1 { lcdext.zahl(bz); lcdext.clear(); v[1]=bz; v[4]=0x20; v[5]=0x4e; bz=bz +1; if bz > 15 bz=0; run senden; } } | ||
Antwort schreiben Antworten: Re: Zykluszeiten einhalten (von reneforster - 28.01.2009 19:16) Re: Zykluszeiten einhalten (von Tobias - 29.01.2009 11:07) |