⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fcancont.h

📁 RTX51 example for Intel 82526. it contains example use of CAN.
💻 H
字号:
/***********************************************************************
*                                                                      *
*  H E A D E R - F I L E                                               *
*                                                                      *
*  F U L L - C A N   C O N T R O L L E R                               *
*                                                                      *
************************************************************************/


   /* Erstes Byte im internen Speicher des 82526 das f乺 CAN-Objekte    */
   /* benutzt werden darf. Die interne Start-Adresse des ersten         */
   /* Objektes entspricht CONTR_BUF_START_ADR                           */
   #define CONTR_BUF_START_ADR  6

   /* Letztes Byte im internen Speicher des 82526 das f乺 Objekte       */
   /* benutzt werden darf                                               */
   #define CONTR_BUF_END_ADR  61

   /* Die L刵ge eines Objektes im internen Speicher des 82526 setzt     */
   /* sich aus der definierten Datenl刵ge und 3 Byte (OBJ_DESC_SIZE)    */
   /* f乺 die internen Objektdescriptoren zusammen (genaueres siehe     */
   /* Intel 82526 Manual)                                               */
   #define OBJ_DESC_SIZE  3


   /* Definition der einzelnen Bits im CONTROL-REGISTER   */
   /* des CAN-Controllers                                 */
   union can_control_typ {
      struct {
         byte reset_request   : 1;
         byte halt_request    : 1;
         byte error_int_ena   : 1;
         byte trans_int_ena   : 1;
         byte sleep_mode      : 1;
         byte restart_txs     : 1;
         byte syncon          : 1;
         byte operation       : 1;
      } cont_bits;
      byte cont_byte;
   };


   /* Returnwerte von c_get_int_typ */
   enum interrupt_t {no_int, error_int, obj_int};

   /* Returnwerte von c_get_status  */
   enum can_bus_stat_t {error_active, error_passive, bus_off};


void c_first_init (void);

byte c_hw_init (byte bus_t0_reg,
                byte bus_t1_reg,
                byte out_c_reg);

void c_init_cont_reg (byte cont_reg);

void c_init_obj (unsigned int ident,
                 byte         data_len,
                 byte         obj_typ,
                 byte         obj_adr);

void c_start (void);

void c_stop (void);

void c_read_obj (byte obj_adr,
                 byte xdata *arr);

byte c_send_obj (byte obj_adr,
                 byte remote,
                 byte xdata *arr);

byte c_write_obj (byte obj_adr,
                  byte xdata *arr);

void c_write_end_mark (byte obj_adr);

enum interrupt_t c_get_int_typ (void);

byte c_get_obj_int_adr (void);

void c_receipt_obj_int (byte obj_adr);

void c_receipt_error_int (void);

enum can_bus_stat_t c_get_status (void);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -