亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? RTX51 CAN Program for the Infineon C505C, This program demonstrates how to transmit and receive CAN
?? C
字號:
/*-----------------------------------------------------------------------------
MAIN.C
MCB515 Main C Routines

These routines initialize the on-chip CAN controller on the Phytec kitCON-515C
or kitCON-505C evaluation board and test the controller.

Be sure that the TARGET_PROC and SENDER macros are set the way you need them!

1998-09-19  JCW  Initial Revision (for Keil MCB-517 board)
1999-02-08  GHC  Phytec kitCON-515C version
1999-02-08  GHC  Added TARGET_PROC macro & conditional compilation for 505C/515C
-----------------------------------------------------------------------------*/

#define TARGET_PROC 505 /* 505 or 515 */

#if TARGET_PROC == 505
sfr XPAGE = 0x91;
#endif

#include <rtx51.h>
#include <reg517.h>
#include <intrins.h>
#include <stdlib.h>

#define EXTEND 1
#include "rtxcan.h"
#include "mcb517.h"

#define SENDER			0
#define DEMO_MSG_ID		456
/*-----------------------------------------------------------------------------
-----------------------------------------------------------------------------*/
#define DELAY						\
		  {					\
		  volatile unsigned int data i;		\
		  for (i = 0; i < 20000; i++)		\
		    {					\
		    _nop_ ();				\
		    }					\
		  }

/*-----------------------------------------------------------------------------
This function displays a value on the LEDs.
0 bits turn the LED off.
1 bits turn the LED on.
Bits 6 and 7 are not output.

The LEDs on the Phytec kitCON-515C board are on port 4.  The CAN interface
uses bits 6 and 7 of port 4, so those bits must not be written while using CAN.
-----------------------------------------------------------------------------*/
void
output(
  unsigned char value)
{
#if TARGET_PROC == 515
value ^= 0xff;  /* The LEDs are wired so that 0==on,1==off, which is the
                   opposite of what we want.  Therefore, we invert all the
                   bits before output.
                */
P4 &= (value | 0xc0);
P4 |= (value & 0x3f);
#else
value += 0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
#endif
}

/*-----------------------------------------------------------------------------
-----------------------------------------------------------------------------*/
void main (void)
{

/*-----------------------------------------------
Change the LEDs and delay waiting for
the power supply to stabilize.  Then, change the
LEDs again.
-----------------------------------------------*/
output(0x38);
DELAY;
output(0x07);

#if TARGET_PROC == 505
/* Put the CAN controller where the RTX CAN routines expect it. */
XPAGE = 0xF7;
#endif

/*-----------------------------------------------
Startup the RTOS.
-----------------------------------------------*/
os_start_system (TASK_STARTUP);

while (1)
  {
  /*** Do something here to indicate start-up failure ***/
  }
}

/*-----------------------------------------------------------------------------
System setup TASK.  This task initializes the RTOS and CAN stuff and then
kills itself.
-----------------------------------------------------------------------------*/
void startup_task (void) _task_ TASK_STARTUP
{
/*-----------------------------------------------
Startup the CAN routines.
-----------------------------------------------*/
switch (can_task_create ())
  {
  case C_OK:
    break;

  default:
    while (1)
      {
      /*** Do something here to indicate CAN start-up failure ***/
      }
    break;
  }

/*-----------------------------------------------
Initialize the CAN hardware for 1mbit @ 16MHz.
-----------------------------------------------*/
#if TARGET_PROC == 505
#define CANTIMING1 0x23
#endif
#if TARGET_PROC == 515
#define CANTIMING1 0x34
#endif
switch (can_hw_init (0x80, CANTIMING1, 0x00, 0x00, 0x00))
  {
  case C_OK:
    break;

  default:
    while (1)
      {
      /*** Do something here to indicate CAN hardware init failure ***/
      }
    break;
  }

/*-----------------------------------------------
Define all of the CAN objects we'll send and recv.
-----------------------------------------------*/
#if (SENDER != 0)
  can_def_obj (DEMO_MSG_ID, 1, D_SEND);
#else
  can_def_obj (DEMO_MSG_ID, 1, D_REC);
#endif

/*-----------------------------------------------
Clear LEDs and startup other CAN tasks.
-----------------------------------------------*/
output(0);

#if TARGET_PROC == 505
os_set_slice (2667);    /* 4 ms */
#define DECISECOND 25
#else
os_set_slice (1000);    /* 1 ms */
#define DECISECOND 100
#endif

can_start ();

#if (SENDER != 0)
  os_create_task (TASK_XMIT_CAN);
#else
  os_create_task (TASK_RECV_CAN);
#endif

//os_create_task (TASK_BUS_STATUS);
//os_create_task (TASK_RECV_CAN);

/*-----------------------------------------------
Kill the current task, but delay in case the
task didn't get killed.
-----------------------------------------------*/
os_delete_task (os_running_task_id ());

while (1)
  {
  os_wait (K_TMO, DECISECOND, NULL);
  }
}

/*-----------------------------------------------------------------------------
-----------------------------------------------------------------------------*/
void can_transmit_task (void) _task_ TASK_XMIT_CAN _priority_ 0
{
register data unsigned char val = 0;
struct can_message_struct xdata j;
unsigned char i;

/*-----------------------------------------------
Transmit message 456 and delay for 1 second.
-----------------------------------------------*/
while (1)
  {
  val += 1;
  output(val);

  j.identifier = DEMO_MSG_ID;
  for (i=0; i<8; i++) { j.c_data [i] = val; }

  can_send (&j);
  can_get_status ();

  os_wait (K_TMO, 2 * DECISECOND, NULL);
  os_wait (K_TMO, 2 * DECISECOND, NULL);
  os_wait (K_TMO, 2 * DECISECOND, NULL);
  os_wait (K_TMO, 2 * DECISECOND, NULL);
  os_wait (K_TMO, 2 * DECISECOND, NULL);
  }
}

/*-----------------------------------------------------------------------------
-----------------------------------------------------------------------------*/
void can_receive_task (void) _task_ TASK_RECV_CAN _priority_ 1
{
struct can_message_struct xdata j;

can_bind_obj (DEMO_MSG_ID);

while (1)
  {
  switch (can_wait (5, &j))
    {
    default:
      break;

    case C_OK:
      output(j.c_data [0]);
      break;
    }

  can_get_status ();
  }
}

/*-----------------------------------------------------------------------------
-----------------------------------------------------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品成人在线| 在线看国产一区二区| 欧美成人一区二区三区在线观看 | 欧美丰满高潮xxxx喷水动漫| 亚洲精品中文在线影院| 欧美色男人天堂| 日日噜噜夜夜狠狠视频欧美人| 欧美精品久久99久久在免费线| 天天色 色综合| 日韩三级在线观看| 国产99久久久国产精品| 亚洲特黄一级片| 91精品在线免费| 国产一区二区三区不卡在线观看| 亚洲国产精品传媒在线观看| 91老司机福利 在线| 亚洲3atv精品一区二区三区| 日韩欧美一二三四区| 福利一区二区在线| 亚洲欧美日韩在线播放| 3atv一区二区三区| 国产91精品一区二区麻豆网站| 综合亚洲深深色噜噜狠狠网站| 欧美亚洲国产bt| 国产一区日韩二区欧美三区| 国产欧美一区二区精品仙草咪| 色婷婷久久一区二区三区麻豆| 婷婷一区二区三区| 亚洲va天堂va国产va久| 精品国产123| 色综合色综合色综合| 久久激情综合网| 亚洲欧美日韩国产成人精品影院 | 亚洲色图.com| 欧美电视剧在线观看完整版| 成人精品免费网站| 日本伊人精品一区二区三区观看方式 | 欧美一级搡bbbb搡bbbb| 国产成人精品亚洲午夜麻豆| 亚洲午夜久久久久久久久电影网 | 欧美日韩视频专区在线播放| 精品无人码麻豆乱码1区2区 | 久久久三级国产网站| 91看片淫黄大片一级在线观看| 日本欧洲一区二区| 日韩一区欧美小说| 国产色综合久久| 91精品国产乱| 欧美性色欧美a在线播放| 精品中文字幕一区二区小辣椒| 一区二区三区高清| 亚洲国产精品成人综合色在线婷婷| 717成人午夜免费福利电影| 97aⅴ精品视频一二三区| 精品亚洲成a人| 日本一道高清亚洲日美韩| 一区二区在线观看视频| 国产精品素人一区二区| 日韩久久久精品| 欧美日韩三级在线| 在线观看视频欧美| 91丨porny丨最新| 成人免费观看av| 国产高清在线观看免费不卡| 日本中文一区二区三区| 午夜视频在线观看一区二区三区| 中文字幕日韩一区二区| 国产精品美女久久福利网站| 国产视频一区不卡| 久久亚洲精品小早川怜子| 日韩欧美在线综合网| 717成人午夜免费福利电影| 欧美日韩卡一卡二| 欧美国产综合一区二区| 精品国产免费人成电影在线观看四季| 欧美三级蜜桃2在线观看| 91免费观看视频在线| 91视频一区二区| 91最新地址在线播放| 91在线观看高清| 色综合久久天天| 91久久线看在观草草青青| 一本到不卡免费一区二区| 91亚洲精品久久久蜜桃| 成人免费视频一区| 色综合久久中文字幕| 色综合久久天天综合网| 欧美在线观看视频在线| 欧美日韩国产在线观看| 在线观看视频一区二区欧美日韩| 欧洲av在线精品| 欧美亚洲愉拍一区二区| 欧美精品 国产精品| 免费观看91视频大全| 国产精品天干天干在线综合| 欧美精品三级日韩久久| 欧美一区二区三区在线| 欧美大片日本大片免费观看| 久久亚洲精品小早川怜子| 日本一区二区三区电影| 《视频一区视频二区| 亚洲一级二级在线| 久久精品免费观看| 成人av在线电影| 欧美性色欧美a在线播放| 欧美成人a∨高清免费观看| 国产欧美日韩卡一| 有坂深雪av一区二区精品| 日本欧美一区二区| 粉嫩av一区二区三区| 在线亚洲人成电影网站色www| 欧美卡1卡2卡| 久久综合久久综合久久| 亚洲日本va在线观看| 日韩主播视频在线| 国产v综合v亚洲欧| 欧美日韩午夜在线视频| 国产午夜精品理论片a级大结局| 亚洲青青青在线视频| 免费日韩伦理电影| 91亚洲资源网| 久久这里只有精品6| 一区二区三区欧美久久| 激情欧美一区二区三区在线观看| av激情亚洲男人天堂| 欧美一区在线视频| 亚洲人成网站影音先锋播放| 久久丁香综合五月国产三级网站| 色综合中文综合网| 欧美精品一区二区三区高清aⅴ | 日韩在线一二三区| 成人免费高清在线| 日韩一区二区视频| 亚洲男帅同性gay1069| 激情伊人五月天久久综合| 91成人国产精品| 国产精品视频在线看| 另类小说一区二区三区| 欧美在线一二三| 国产欧美日韩在线| 久久99精品一区二区三区三区| 色94色欧美sute亚洲线路一ni| 久久女同性恋中文字幕| 肉色丝袜一区二区| 色婷婷综合久久久中文字幕| 久久久久国产成人精品亚洲午夜| 亚洲午夜日本在线观看| 99在线精品视频| 久久精品人人爽人人爽| 秋霞国产午夜精品免费视频| 日本久久一区二区三区| 国产精品久久久久久久浪潮网站 | 国产精品九色蝌蚪自拍| 免费观看在线综合色| 欧美三级日本三级少妇99| 亚洲色图第一区| 不卡的看片网站| 国产日产亚洲精品系列| 韩国理伦片一区二区三区在线播放| 欧美日韩国产高清一区二区| 亚洲精品国产无天堂网2021 | 国产精品少妇自拍| 欧美日韩国产综合一区二区| 亚洲精品菠萝久久久久久久| 波多野结衣在线一区| 国产欧美日韩视频一区二区 | 五月婷婷激情综合网| 欧美色视频在线观看| 亚洲一二三四区| 色噜噜狠狠色综合中国| 有码一区二区三区| 欧美日韩精品一二三区| 性感美女极品91精品| 91精品久久久久久久99蜜桃| 五月天中文字幕一区二区| 91麻豆精品国产91久久久更新时间| 性欧美大战久久久久久久久| 欧美疯狂性受xxxxx喷水图片| 亚洲国产一二三| 69av一区二区三区| 久热成人在线视频| 国产亚洲一区二区在线观看| 国产99久久精品| 亚洲人一二三区| 欧美在线观看视频一区二区 | 视频一区二区不卡| 日韩午夜激情视频| 国产在线观看一区二区| 中文字幕欧美区| 91免费在线看| 亚洲va欧美va天堂v国产综合| 日韩一区二区中文字幕| 国产在线精品视频| 中文字幕字幕中文在线中不卡视频| 色婷婷av一区| 热久久免费视频| 国产精品你懂的在线| 欧美亚洲图片小说| 极品尤物av久久免费看| 亚洲欧洲三级电影|