📄 c64_hw.c
字号:
#include <math.h>
#include <stdlib.h>
#include "errormsg.h"
#include <SPORT.c>
#include <timer.c>
#include <Msg_tools.c>
#include <EDMA.c>
#include <datatype.h>
#include <EMIF.H>
#include "LINKPORT.h"
#include <Msg_packet.h>
extern volatile int recv_done, recv_buddy_done;
int
SendMsgToBuddy(SLAVE_DATA_S *msg)
{
RESET_BIT(McBSP_SPCR(BUDDY_BSPCH), XRST);
if(!SPORT_edmax_init((int)msg, BUDDY_BSPCH, PACKET_SIZE_IN_INT))
return -1;
SET_BIT(McBSP_SPCR(BUDDY_BSPCH), XRST);
return 0;
}
void
RecMsgFromBuddy(MASTER_DATA_S *msg)
{
RESET_BIT(McBSP_SPCR(BUDDY_BSPCH), RRST);
SPORT_edmar_init((int)msg, BUDDY_BSPCH, PACKET_SIZE_IN_INT);
SET_BIT(McBSP_SPCR(BUDDY_BSPCH), RRST);
}
int
SendMsgToBaBu(SLAVE_DATA_S *msg)
{
RESET_BIT(McBSP_SPCR(BABU_BSPCH), XRST);
if(!SPORT_edmax_init((int)msg, BABU_BSPCH, PACKET_SIZE_IN_INT))
return -1;
SET_BIT(McBSP_SPCR(BABU_BSPCH), XRST);
return 0;
}
void
RecMsgFromBaBu(MASTER_DATA_S *msg)
{
RESET_BIT(McBSP_SPCR(BABU_BSPCH), RRST);
SPORT_edmar_init((int)msg, BABU_BSPCH, PACKET_SIZE_IN_INT);
SET_BIT(McBSP_SPCR(BABU_BSPCH), RRST);
}
interrupt void edma_isr()
{
if(GET_BIT(CIPRL, McBSPr_EDMA_Ch[BABU_BSPCH]))
{
REG_WRITE(CIPRL, (1<<McBSPr_EDMA_Ch[BABU_BSPCH]));
recv_done=1;
}
if(GET_BIT(CIPRL, McBSPr_EDMA_Ch[BUDDY_BSPCH]))
{
REG_WRITE(CIPRL, (1<<McBSPr_EDMA_Ch[BUDDY_BSPCH]));
recv_buddy_done=1;
}
}
void Sports__Initialisation()
{
mcbsp_init(BABU_BSPCH, BABU_SPORT_ClkGdv, PACKET_SIZE_IN_INT);
mcbsp_init(BUDDY_BSPCH, BUDDY_SPORT_ClkGdv, PACKET_SIZE_IN_INT);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -