?? main.c
字號:
#include "MAIN.H"
#include <stdio.h>
#include <XC167.H>
#define PERIOD 15536 /* 10 msec interrupt period */
unsigned char send = 0, pattern = 0x01, obj0dat;
static void timer0(void) interrupt 0x20 using INTREGS
{ /* Int Vector at 0080H, other Reg Bank */
#ifdef TargetA
obj0dat = pattern;
#else
obj0dat = ~pattern;
#endif
CAN_vLoadData(0, &obj0dat);
CAN_vTransmit (0);
if(pattern) pattern = pattern << 1;
else pattern = 0x01;
send = 1;
}
void MAIN_vInit(void)
{
/* setup the timer 0 interrupt */
CC1_T0REL = PERIOD; /* set reload value */
CC1_T0 = PERIOD;
CC1_T0IC = 0x44; /* set T0IE and ILVL = 1 */
CC1_T01CON = 0x44; /* start timer 0 */
CAN_vInit();
PSW_IEN = 1;
}
void MAIN_vUnlockProtecReg(void)
{
ubyte ubPASSWORD;
if((SCUSLS & 0x1800) == 0x0800) //if low protected mode
{
ubPASSWORD = SCUSLS & 0x00FF;
ubPASSWORD = ~ubPASSWORD;
SCUSLC = 0x8E00 | ubPASSWORD; //command 4
} //end if low rotected mode
if((SCUSLS & 0x1800) == 0x1800) //if write protected mode
{
SCUSLC = 0xAAAA; //command0
SCUSLC = 0x5554; //command1
ubPASSWORD = SCUSLS & 0x00FF;
ubPASSWORD = ~ubPASSWORD;
SCUSLC = 0x9600 | ubPASSWORD; //command 2
SCUSLC = 0x0800; //command 3; new PASSWOR is 0x00
ubPASSWORD = SCUSLS & 0x00FF;
ubPASSWORD = ~ubPASSWORD;
SCUSLC = 0x8E00 | ubPASSWORD; //command 4
}
}
void delay () {
unsigned int tmp;
for (tmp = 0; tmp < 60000; tmp++);
}
TCAN_SWObj obj101;
void main(void)
{
P3 |= 0x0400; /* SET PORT 3.10 OUTPUT LATCH (TXD) */
DP3 |= 0x0400; /* SET PORT 3.10 DIRECTION CONTROL (TXD OUTPUT) */
DP3 &= 0xF7FF; /* RESET PORT 3.11 DIRECTION CONTROL (RXD INPUT) */
ASC0_TIC = 0x80; /* SET TRANSMIT INTERRUPT FLAG */
ASC0_RIC = 0x00; /* DELETE RECEIVE INTERRUPT FLAG */
ASC0_BG = 0x80; /* SET BAUDRATE TO 9600 BAUD @ 40MHz */
ASC0_CON = 0x8011; /* SET SERIAL MODE */
ALTSEL0P3 |= 0x0C00; /* Configure port pins for serial interface 0 */
DP2 = 0xff00;
MAIN_vInit();
while (1) {
if(send) {
printf ("\nTrans Message: %02x ", obj0dat);
send = 0;
}
if (CAN_ubNewData(1)) {
CAN_vGetMsgObj (1, &obj101);
printf ("Rec Message: %02x", obj101.ubData[0]);
P2 = (obj101.ubData[0]) << 8;
CAN_vReleaseObj(1);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -