?? do.c
字號:
#include "c8051f040.h"
#include "can.h"
//-----------------------------------------------------------------------------
// GLOBAL CONSTANTS
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// Functions
//-----------------------------------------------------------------------------
void SYSCLK_Init (void);
void PORT_Init (void);
void INT_Init (void);
void CAN_Init (void);
void CAN_Start(void);
void CAN_Transmit_Init (unsigned char MsgNum , unsigned char id);
void CAN_Receive_Init (unsigned char MsgNum , unsigned char id);
void Timer_Init (void);
void CAN_Receive_Interrupt (void);
void INT0_Interrupt (void);
void Timer0_Overflow_Interrupt (void);
//void Get_DO_Address (void);
void Control_DO (void);
void CAN_Transmit(unsigned char MsgNum,unsigned char *p_data );
void CAN_Receive (unsigned char MsgNum, unsigned char *p );
void CAN_RemoteRqst_Init(unsigned char MsgNum , unsigned char id);
void CAN_RemoteRqst(unsigned char MsgNum);
void CAN_Remote_Send_Init(unsigned char MsgNum,unsigned char id );
void CAN_Remote_Updata(unsigned char MsgNum,unsigned char *p_data );
//-----------------------------------------------------------------------------
// Global Variables
//-----------------------------------------------------------------------------
sbit OE = P4^0; //74HC245 ENABLE
sbit CANLED = P4^1; //CANLED 0 MEANS ON
bit DO_Error_Flag;
bit DO_Control_Flag;
bit DO_Message_Req_Flag;
unsigned char DO_Control_Data0;
unsigned char DO_Control_Data1;
unsigned char DO_Control_Data_New0;
unsigned char DO_Control_Data_New1;
unsigned char DO_Control_Data_Ordered0;
unsigned char DO_Control_Data_Ordered1;
unsigned char temp1, temp2;
unsigned char temppage,CAN_Status;
xdata unsigned char ss1[8]={0x1a,0x2a,0x3a,0x4a,0x5a,0x6a,0x7a,0x8a};
xdata unsigned char ss2[8]={0x1b,0x2b,0x3b,0x4b,0x5b,0x6b,0x7b,0x8b};
xdata unsigned char ss3[8]={0x1c,0x2c,0x3c,0x4c,0x5c,0x6c,0x7c,0x8c};
//xdata unsigned char rr[8]={0,0,0,0,0,0,0,0};
//xdata unsigned char *pr=rr;
//-----------------------------------------------------------------------------
// Main Routine
//-----------------------------------------------------------------------------
void main ()
{
//unsigned char state; //CANSTAT
EA = 0;
WDTCN = 0xDE; //Disable Watchdog Timer
WDTCN = 0xAD;
SYSCLK_Init ();
PORT_Init ();
INT_Init ();
//Get_DO_Address ();
CAN_Init ();
CAN_Transmit_Init (1,1);
CAN_Receive_Init (2,1);
CAN_Start();
Timer_Init ();
OE = 0;
EA = 1;
TR0 = 1;
//CAN_Transmit(1,ss);
CAN_Remote_Send_Init(1,1);
CAN_Remote_Send_Init(2,2);
CAN_Remote_Send_Init(3,3);
CAN_Remote_Updata(1,ss1);
CAN_Remote_Updata(2,ss2);
CAN_Remote_Updata(3,ss3);
while (1)
{
}
}
//-----------------------------------------------------------------------------
// CAN_Receive_Interrupt
//-----------------------------------------------------------------------------
void CAN_Receive_Interrupt (void) interrupt 19
{
// unsigned char temp;
// temppage = SFRPAGE;
// SFRPAGE = CAN0_PAGE;
// CAN_Status = CAN0STA;
// if((CAN_Status & 0x08)!=0)
// {
// CAN0STA &= 0xf7;
// CAN0ADR = INTPEND1;
// temp = CAN0DATL;
// }
}
void Timer0_Overflow_Interrupt (void) interrupt 1
{
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -