Re: Can Kategorie: CC-Pro Unit & Appl.Board (von UlliS - 11.12.2015 9:19) | |
Als Antwort auf Re: Can von Norbert - 11.12.2015 3:24
| |
> > > > > Hi, > > > > > > > > > > Habe mir die C-Control Pro AVR32 nur wegen dem 2.ten CAN-Kanal gekauft. Will man diesen, wie im > > > > > Beispielprogramm CAN-Transmitter.cc,mit CAN_SetChan(1) einschalten, funktioniert es nicht. > > > > > Es gibt zwar inzwischen ein Beta IDE Update 2.40 mit dem dies funktioniert, aber wenn man den > > > > > USB-Stecker von der Unit trennt, mu� man nach jeder Unterbrechung der Spannungsversorgung 3x den > > > > > Startknopf drücken, um das Programm wieder zum Laufen zu bekommen, kurioserweise nur bei diesem > > > > > Programm und nur wenn man den 2.ten CAN-Kanal eingeschaltet hat. Dies ist natürlich sehr schlecht, > > > > > wenn die Unit in eine Applikation eingebaut ist. Das Programm startet einfach nach einem > > > > > Spannungsreset nicht richtig. Könnte man hier noch irdendwie nachbessern? > > > > > > > > > > > > > > > Gruss Norbert > > > > > > > > Kannst du mal ein Demo auf das nötigste reduziert (ca. 25 Zeilen)? > > > > > > > Hallo, > > > > > > Danke erst mal für die schnelle Antwort. > > > Hab mal das betreffende Beispielprogramm aus der Conradsammlung unten angehängt. > > > Sorry wegen der Länge, aber es besteht fast nur aus Kommentar. Wollte nur zeigen, da� es das > > > unverfälschte Original ist, nur da� mit "CAN_SetChan(1)" anstatt "CAN_SetChan(0)" etwa in der > > > Mitte des Programms der 2.te Kanal eingeschaltet wird. Trennt man die Unit dann vom Usb-Anschlu� > > > und unterbricht kurz die Spannungsversorgung mu� man 3x den Startknopf drücken. Bei überbrücktem > > > Starter kann man gar nicht mehr starten. > > > Lä�t man das Programm wie im Original mit "CAN_SetChan(0)" laufen, funktioniert alles. > > > > > > /******************************************************************************* > > > > > > Project Name: CAN_Transmitter.cprj > > > Required Libs's: IntFunc_lib.cc > > > Files: CAN_Transmitter.cbas > > > Writer: CCPRO-TEAM > > > Date: 22.08.2013 > > > Function: CAN Transmitter > > > > > > ------------------------------------------------------------------------------ > > > AVR32 Serie: > > > Required the C-Control PRO AVR32-Bit UNIT Conrad BN: 192573 > > > Applicationboard Conrad BN: 192587 > > > Or Mainboard Conrad BN: 192702 > > > > > > MEGA Serie: > > > C-Control PRO MEGA128CAN Conrad BN: 197989 > > > and Evaluationboard Conrad BN: 198258 > > > or Projectboard Conrad BN: 197313 > > > ------------------------------------------------------------------------------ > > > > > > Note: > > > ----- > > > > > > This program sends two messages to the CAN-BUS. > > > > > > The first message (MOB 0) has a 11 bit identifier > > > The second message (MOB 1) has a 29Bit Identifiers (Extendet) > > > > > > The "CAN_RX.cc" receives the data and displays it on 2 LED's. > > > CAN data and information are shows on the IDE output window. > > > > > > *******************************************************************************/ > > > > > > > > > /*------------------------------------------------------------------------------ > > > name: main > > > input: - > > > output: - > > > description: Send two messages over the CAN > > > ------------------------------------------------------------------------------*/ > > > Sub main() > > > > > > Dim i As Integer > > > > > > ' Data Bytes > > > Dim data(8) = {0,0,0,0,0,0,0,0} As Byte > > > > > > ' FIFO Buffer > > > Dim fifo_buf(140) As Byte > > > > > > CAN_Init(CAN_250KBPS, 10, fifo_buf) > > > > > > ' Only AVR32 > > > #ifdef AVR32 > > > CAN_SetChan(1) > > > #endif > > > > > > ' 11Bit Identifier > > > CAN_SetMOb(0, 0x432L, 0L, CAN_SEND) > > > > > > ' 29Bit Identifier > > > CAN_SetMOb(1, 0x12345678, 0L, CAN_SEND Or CAN_EXTID) > > > > > > > > > ' Endless loop > > > Do While(1) > > > > > > > > > ' Send data over CAN > > > ' CAN 2.0A - 11Bit Identifier > > > data(7) = 1 > > > CAN_MObSend(0, 8, data) > > > AbsDelay(500) > > > > > > ' CAN 2.0B - 29Bit Identifier > > > data(6) = 1 > > > CAN_MObSend(1, 8, data) > > > AbsDelay(500) > > > > > > '---------------------------- > > > > > > ' CAN 2.0A - 11Bit Identifier > > > data(7) = 0 > > > CAN_MObSend(0, 8, data) > > > AbsDelay(500) > > > > > > ' CAN 2.0B - 29Bit Identifier > > > data(6) = 0 > > > CAN_MObSend(1, 8, data) > > > AbsDelay(500) > > > > > > End While > > > > > > End Sub > > > > > > > > > /******************************************************************************* > > > * Info > > > ******************************************************************************* > > > * Changelog: > > > * - > > > * > > > ******************************************************************************* > > > * Bugs, feedback, questions and modifications can be posted on the > > > * C-Control Forum on http://www.c-control.de > > > * Of course you can also write us an e-mail to: webmaster@c-control.de > > > * We publish updates from time to time on www.c-control.de! > > > /******************************************************************************/ > > > > > > ' EOF > > > > > > > > > > Hallo Norbert, > > > > Ein CAN_SetChan() mu� vor einem CAN_Init() ausgeführt > > werden, da das CAN_SetChan() auf alle CAN Funktionen geht. > > Das ist gegebenenfalls auch in den Demos falsch, und ist 2013 auch nicht aufgefallen. > > > > > Danke Dir. > > Da mu� man erst mal drauf kommen. Scheint jetzt jedenfalls alles zu funktionieren. Super! Wir werden das in den Bsp. ändern | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum