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

📄 main.c

📁 codewarrior_Samples.rar
💻 C
字号:
#include "printp.h"
#define PORTB    (*((volatile unsigned char*)(0x0001)))   
#define DDRB     (*((volatile unsigned char*)(0x0003))) 

#define CAN0CTL0    (*((volatile unsigned char*)(0x0140)))  
#define CAN0CTL1    (*((volatile unsigned char*)(0x0141)))  
#define CAN0BTR0    (*((volatile unsigned char*)(0x0142)))   
#define CAN0BTR1    (*((volatile unsigned char*)(0x0143))) 
#define CAN0RFLG    (*((volatile unsigned char*)(0x0144)))   
#define CAN0RIER    (*((volatile unsigned char*)(0x0145))) 
#define CAN0TFLG    (*((volatile unsigned char*)(0x0146)))   
#define CAN0TIER    (*((volatile unsigned char*)(0x0147))) 
#define CAN0TARQ    (*((volatile unsigned char*)(0x0148)))   
#define CAN0TAAK    (*((volatile unsigned char*)(0x0149))) 
#define CAN0TBSEL   (*((volatile unsigned char*)(0x014A)))   
#define CAN0IDAC    (*((volatile unsigned char*)(0x014B))) 
#define CAN0RXERR   (*((volatile unsigned char*)(0x014E)))   
#define CAN0TXERR   (*((volatile unsigned char*)(0x014F))) 

#define CAN0IDAR0   (*((volatile unsigned char*)(0x0150)))   
#define CAN0IDAR1   (*((volatile unsigned char*)(0x0151))) 
#define CAN0IDAR2   (*((volatile unsigned char*)(0x0152)))   
#define CAN0IDAR3   (*((volatile unsigned char*)(0x0153))) 
#define CAN0IDMR0   (*((volatile unsigned char*)(0x0154)))   
#define CAN0IDMR1   (*((volatile unsigned char*)(0x0155))) 
#define CAN0IDMR2   (*((volatile unsigned char*)(0x0156)))   
#define CAN0IDMR3   (*((volatile unsigned char*)(0x0157))) 
#define CAN0IDAR4   (*((volatile unsigned char*)(0x0158)))   
#define CAN0IDAR5   (*((volatile unsigned char*)(0x0159))) 
#define CAN0IDAR6   (*((volatile unsigned char*)(0x015A)))   
#define CAN0IDAR7   (*((volatile unsigned char*)(0x015B))) 
#define CAN0IDMR4   (*((volatile unsigned char*)(0x015C)))   
#define CAN0IDMR5   (*((volatile unsigned char*)(0x015D))) 
#define CAN0IDMR6   (*((volatile unsigned char*)(0x015E)))   
#define CAN0IDMR7   (*((volatile unsigned char*)(0x015F))) 

#define CAN0RXFG0   (*((volatile unsigned char*)(0x0160)))   
#define CAN0RXFG1   (*((volatile unsigned char*)(0x0161))) 
#define CAN0RXFG2   (*((volatile unsigned char*)(0x0162)))   
#define CAN0RXFG3   (*((volatile unsigned char*)(0x0163)))
#define CAN0RXFG4   (*((volatile unsigned char*)(0x0164)))   
#define CAN0RXFG5   (*((volatile unsigned char*)(0x0165)))
#define CAN0RXFG6   (*((volatile unsigned char*)(0x0166)))   
#define CAN0RXFG7   (*((volatile unsigned char*)(0x0167)))
#define CAN0RXFG8   (*((volatile unsigned char*)(0x0168)))   
#define CAN0RXFG9   (*((volatile unsigned char*)(0x0169)))
#define CAN0RXFGA   (*((volatile unsigned char*)(0x016A)))   
#define CAN0RXFGB   (*((volatile unsigned char*)(0x016B)))
#define CAN0RXFGC   (*((volatile unsigned char*)(0x016C)))   
#define CAN0RXFGD   (*((volatile unsigned char*)(0x016D)))
#define CAN0RXFGE   (*((volatile unsigned char*)(0x016E)))   
#define CAN0RXFGF   (*((volatile unsigned char*)(0x016F)))

#define CAN0TXFG0   (*((volatile unsigned char*)(0x0170)))   
#define CAN0TXFG1   (*((volatile unsigned char*)(0x0171))) 
#define CAN0TXFG2   (*((volatile unsigned char*)(0x0172)))   
#define CAN0TXFG3   (*((volatile unsigned char*)(0x0173)))
#define CAN0TXFG4   (*((volatile unsigned char*)(0x0174)))   
#define CAN0TXFG5   (*((volatile unsigned char*)(0x0175)))
#define CAN0TXFG6   (*((volatile unsigned char*)(0x0176)))   
#define CAN0TXFG7   (*((volatile unsigned char*)(0x0177)))
#define CAN0TXFG8   (*((volatile unsigned char*)(0x0178)))   
#define CAN0TXFG9   (*((volatile unsigned char*)(0x0179)))
#define CAN0TXFGA   (*((volatile unsigned char*)(0x017A)))   
#define CAN0TXFGB   (*((volatile unsigned char*)(0x017B)))
#define CAN0TXFGC   (*((volatile unsigned char*)(0x017C)))   
#define CAN0TXFGD   (*((volatile unsigned char*)(0x017D)))
#define CAN0TXFGE   (*((volatile unsigned char*)(0x017E)))   
#define CAN0TXFGF   (*((volatile unsigned char*)(0x017F)))

#define CAN4CTL0    (*((volatile unsigned char*)(0x0280)))  
#define CAN4CTL1    (*((volatile unsigned char*)(0x0281)))  
#define CAN4BTR0    (*((volatile unsigned char*)(0x0282)))   
#define CAN4BTR1    (*((volatile unsigned char*)(0x0283))) 
#define CAN4RFLG    (*((volatile unsigned char*)(0x0284)))   
#define CAN4RIER    (*((volatile unsigned char*)(0x0285))) 
#define CAN4TFLG    (*((volatile unsigned char*)(0x0286)))   
#define CAN4TIER    (*((volatile unsigned char*)(0x0287))) 
#define CAN4TARQ    (*((volatile unsigned char*)(0x0288)))   
#define CAN4TAAK    (*((volatile unsigned char*)(0x0289))) 
#define CAN4TBSEL   (*((volatile unsigned char*)(0x028A)))   
#define CAN4IDAC    (*((volatile unsigned char*)(0x028B))) 
#define CAN4RXERR   (*((volatile unsigned char*)(0x028E)))   
#define CAN4TXERR   (*((volatile unsigned char*)(0x028F))) 

#define CAN4IDAR0   (*((volatile unsigned char*)(0x0290)))   
#define CAN4IDAR1   (*((volatile unsigned char*)(0x0291))) 
#define CAN4IDAR2   (*((volatile unsigned char*)(0x0292)))   
#define CAN4IDAR3   (*((volatile unsigned char*)(0x0293))) 
#define CAN4IDMR0   (*((volatile unsigned char*)(0x0294)))   
#define CAN4IDMR1   (*((volatile unsigned char*)(0x0295))) 
#define CAN4IDMR2   (*((volatile unsigned char*)(0x0296)))   
#define CAN4IDMR3   (*((volatile unsigned char*)(0x0297))) 
#define CAN4IDAR4   (*((volatile unsigned char*)(0x0298)))   
#define CAN4IDAR5   (*((volatile unsigned char*)(0x0299))) 
#define CAN4IDAR6   (*((volatile unsigned char*)(0x029A)))   
#define CAN4IDAR7   (*((volatile unsigned char*)(0x029B))) 
#define CAN4IDMR4   (*((volatile unsigned char*)(0x029C)))   
#define CAN4IDMR5   (*((volatile unsigned char*)(0x029D))) 
#define CAN4IDMR6   (*((volatile unsigned char*)(0x029E)))   
#define CAN4IDMR7   (*((volatile unsigned char*)(0x029F))) 

#define CAN4RXFG0   (*((volatile unsigned char*)(0x02A0)))   
#define CAN4RXFG1   (*((volatile unsigned char*)(0x02A1))) 
#define CAN4RXFG2   (*((volatile unsigned char*)(0x02A2)))   
#define CAN4RXFG3   (*((volatile unsigned char*)(0x02A3)))
#define CAN4RXFG4   (*((volatile unsigned char*)(0x02A4)))   
#define CAN4RXFG5   (*((volatile unsigned char*)(0x02A5)))
#define CAN4RXFG6   (*((volatile unsigned char*)(0x02A6)))   
#define CAN4RXFG7   (*((volatile unsigned char*)(0x02A7)))
#define CAN4RXFG8   (*((volatile unsigned char*)(0x02A8)))   
#define CAN4RXFG9   (*((volatile unsigned char*)(0x02A9)))
#define CAN4RXFGA   (*((volatile unsigned char*)(0x02AA)))   
#define CAN4RXFGB   (*((volatile unsigned char*)(0x02AB)))
#define CAN4RXFGC   (*((volatile unsigned char*)(0x02AC)))   
#define CAN4RXFGD   (*((volatile unsigned char*)(0x02AD)))
#define CAN4RXFGE   (*((volatile unsigned char*)(0x02AE)))   
#define CAN4RXFGF   (*((volatile unsigned char*)(0x02AF)))

#define CAN4TXFG0   (*((volatile unsigned char*)(0x02B0)))   
#define CAN4TXFG1   (*((volatile unsigned char*)(0x02B1))) 
#define CAN4TXFG2   (*((volatile unsigned char*)(0x02B2)))   
#define CAN4TXFG3   (*((volatile unsigned char*)(0x02B3)))
#define CAN4TXFG4   (*((volatile unsigned char*)(0x02B4)))   
#define CAN4TXFG5   (*((volatile unsigned char*)(0x02B5)))
#define CAN4TXFG6   (*((volatile unsigned char*)(0x02B6)))   
#define CAN4TXFG7   (*((volatile unsigned char*)(0x02B7)))
#define CAN4TXFG8   (*((volatile unsigned char*)(0x02B8)))   
#define CAN4TXFG9   (*((volatile unsigned char*)(0x02B9)))
#define CAN4TXFGA   (*((volatile unsigned char*)(0x02BA)))   
#define CAN4TXFGB   (*((volatile unsigned char*)(0x02BB)))
#define CAN4TXFGC   (*((volatile unsigned char*)(0x02BC)))   
#define CAN4TXFGD   (*((volatile unsigned char*)(0x02BD)))
#define CAN4TXFGE   (*((volatile unsigned char*)(0x02BE)))   
#define CAN4TXFGF   (*((volatile unsigned char*)(0x02BF)))

void MSCAN_INITIAL(void)
{
CAN0CTL0|=0x01;
CAN4CTL0|=0x01;
while(!(CAN0CTL0&0x01))
{}
while(!(CAN4CTL0&0x01))
{}
CAN0IDAC=0x20;
CAN4IDAC=0x20;
CAN0IDAR0=0x01;
CAN4IDAR0=0x01;
CAN0IDAR1=0x00;
CAN4IDAR1=0x00;
CAN0IDAR2=0x04;
CAN4IDAR2=0x04;
CAN0IDAR3=0x08;
CAN4IDAR3=0x08;
CAN0IDAR4=0x41;
CAN4IDAR4=0x41;
CAN0IDAR5=0x41;
CAN4IDAR5=0x41;
CAN0IDAR6=0x41;
CAN4IDAR6=0x41;
CAN0IDAR7=0x41;
CAN4IDAR7=0x41;

CAN0IDMR0=0xff;
CAN0IDMR1=0xff;
CAN0IDMR2=0xff;
CAN0IDMR3=0xff;
CAN0IDMR4=0xff;
CAN0IDMR5=0xff;
CAN0IDMR6=0xff;
CAN0IDMR7=0xff;
CAN4IDMR0=0xff;
CAN4IDMR1=0xff;
CAN4IDMR2=0xff;
CAN4IDMR3=0xff;
CAN4IDMR4=0xff;
CAN4IDMR5=0xff;
CAN4IDMR6=0xff;
CAN4IDMR7=0xff;

CAN0BTR0=0x61;
CAN4BTR0=0x61;
CAN0BTR1=0x13;
CAN4BTR1=0x13;
CAN0CTL1=0x80;
CAN4CTL1=0x80;
CAN0CTL0&=0xfe;
CAN4CTL0&=0xfe;
while(CAN0CTL1&0x01)
{}

while(CAN4CTL1&0x01)
{}

CAN0CTL0=0x08;
CAN4CTL0=0x08;
CAN0RIER=0x0f;
CAN4RIER=0x0f;

CAN4TBSEL=CAN4TFLG;
CAN4TXFG1=0x01;
CAN4TXFG2=0x00;
CAN4TXFG4=0x41;
CAN4TXFG5=0x42;
CAN4TXFG6=0x43;
CAN4TXFG7=0x44;
CAN4TXFG8=0x45;
CAN4TXFG9=0x46;
CAN4TXFGA=0x47;
CAN4TXFGB=0x48;
CAN4TXFGC=0x49;
CAN4TFLG=CAN4TBSEL;

}
void main(void) {

MSCAN_INITIAL();
 
while(!(CAN4TFLG&0x01))
{printp("\nCAN4 SEND\n");}

}

void CAN0_RECEIVE(void)
{
asm
{
sei
}
printp("CAN0 RECEIVE \n");
asm
{
cli
}
asm
{
rti
}

}
void UnimplementedISR(void)
{
   /* Unimplemented ISRs trap.*/
   asm stop;
}

⌨️ 快捷键说明

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