• 大小: 3.85MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-08-14
  • 语言: 其他
  • 标签: CanFestival  CANOPEN  CAN  

资源简介

CanFestival 3.10 是 CanFestival 最新版本了,CANOPEN协议必看的内家,支持WINDOWS,LINUX,ARM,单片机等,可以去官网看细节介绍,谢谢~

资源截图

代码片段和文件信息

/*
This file is part of CanFestival a library implementing CanOpen Stack.

Copyright (C): Edouard TISSERANT and Francis DUPIN
AT91 Port: Peter CHRISTEN

See COPYING file for copyrights details.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License or (at your option) any later version.

This library is distributed in the hope that it will be useful
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not write to the Free Software
Foundation Inc. 59 Temple Place Suite 330 Boston MA  02111-1307  USA
*/

//#define DEBUG_WAR_CONSOLE_ON
//#define DEBUG_ERR_CONSOLE_ON

#include “can_AT91.h“
#include “canfestival.h“

void can_irq_handler(void);

unsigned char canInit(unsigned int bitrate)
/******************************************************************************
Initialize the hardware to receive CAN messages and start the timer for the
CANopen stack.
INPUT
OUTPUT
******************************************************************************/
{
  unsigned char i;
  AT91S_CAN_MB *mb_ptr = AT91C_base_CAN_MB0;

  // Enable CAN PIOs
  AT91F_CAN_CfgPIO();
  // Enable CAN Clock
  AT91F_CAN_CfgPMC();

  // Enable CAN Transceiver
  AT91F_PIOA_CfgPMC();

  // Init CAN Interrupt Source Level
  AT91F_AIC_ConfigureIt(AT91C_base_AIC // CAN base address
                        AT91C_ID_CAN // CAN ID
                        AT91C_AIC_PRIOR_HIGHEST // Max priority
                        AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL // Level sensitive
                        can_irq_handler); // C Handler

  AT91F_AIC_EnableIt(AT91C_base_AIC AT91C_ID_CAN);

  if (bitrate <= 500)
  {
    // CANopen 10..500 kbit with 16 tq sample point is at 14 tq
    // all values are added to 1 by hardware
    // Resynchronisation jump width (SJW) = 1 tq
    // Propagation Time Segment (PRS) = 5 tq
    // Phase Segment 1 (PHS1) = 8 tq
    // Phase Segment 2 (PHS2) = 2 tq
    // Total = 16 tq
    AT91F_CAN_CfgBaudrateReg(AT91C_base_CAN
                             (AT91C_MASTER_CLOCK/16/1000/bitrate - 1) << 16 | 0x0471);
  }
  else
    return 0;

  // Enable CAN and Wait for WakeUp Interrupt
//  AT91F_CAN_EnableIt(AT91C_base_CAN AT91C_CAN_WAKEUP);
  AT91F_CAN_CfgModeReg(AT91C_base_CAN AT91C_CAN_CANEN);

  // Reset all mailsboxes (MBs) filters are zero (accept all) by clear all MB
  // Set the lower MBs as rx buffer
  for (i = 0; i < NB_RX_MB; i++ mb_ptr++)
  // Configure receive MBs as receive buffer last as receive overwrite
    AT91F_InitMailboxRegisters(mb_ptr
((i < (NB_RX_MB - 1)) ? AT91C_CAN_MOT_RX : AT91C_CAN_MOT_RXOVERWRITE)
| AT91C_CAN_PRIOR // Mailbox Mode Reg

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         173  2011-04-13 14:29  CanFestival-3-1041153c5fd2\.hg_archival.txt
     文件        1299  2011-04-13 14:29  CanFestival-3-1041153c5fd2\.hgignore
     文件         131  2011-04-13 14:29  CanFestival-3-1041153c5fd2\.hgtags
     文件         123  2011-04-13 14:29  CanFestival-3-1041153c5fd2\AUTHORS
     文件       24713  2011-04-13 14:29  CanFestival-3-1041153c5fd2\CHANGES
     文件         382  2011-04-13 14:29  CanFestival-3-1041153c5fd2\CONTRIBUTORS
     文件        1518  2011-04-13 14:29  CanFestival-3-1041153c5fd2\COPYING
     文件        5608  2011-04-13 14:29  CanFestival-3-1041153c5fd2\CanFestival-3.vc8.sln
     文件        6808  2011-04-13 14:29  CanFestival-3-1041153c5fd2\CanFestival-3.vc8.vcproj
     文件       24381  2011-04-13 14:29  CanFestival-3-1041153c5fd2\LICENCE
     文件        1587  2011-04-13 14:29  CanFestival-3-1041153c5fd2\Makefile.in
     文件       28555  2011-04-13 14:29  CanFestival-3-1041153c5fd2\configure
     文件         191  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\README.Debian
     文件         178  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-devel.install
     文件         120  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-examples.install
     文件          79  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-objdictedit.install
     文件        1107  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-objdictedit.postinst
     文件         587  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-objdictedit.postrm
     文件          41  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-peak.install
     文件         905  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-peak.postinst
     文件        1032  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-peak.postrm
     文件          37  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-socket.install
     文件          38  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-virtual.install
     文件         905  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-virtual.postinst
     文件        1032  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\canfestival-virtual.postrm
     文件         206  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\changelog
     文件           2  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\compat
     文件        1325  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\control
     文件         335  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\control-peak_linux
     文件        1324  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\control-socket
     文件        1027  2011-04-13 14:29  CanFestival-3-1041153c5fd2\debian\control-virtual
............此处省略388个文件信息

评论

共有 条评论