Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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: