📄 init.c
字号:
#include<iom16v.h>
#include "seandre.h"
#define uchar unsigned char
/******************************************************************
*prototype:void set_cs(uchar i)
* function:define cs pin of mcp2515 with PD^5
******************************************************************/
void set_cs(uchar i)
{if(i) PORTD|=0x20;
else PORTD&=0xdf;
}
/******************************************************************
*prototype:void set_rx0bf(uchar i)
* function:define rx0bf pin of mcp2515 with PC^3
******************************************************************/
void set_rx0bf(uchar i)
{if(i) PORTC|=0x08;
else PORTC&=0xf7;
}
/******************************************************************
*prototype:void set_rx1bf(uchar i)
* function:define rx1bf pin of mcp2515 with PC^4
******************************************************************/
void set_rx1bf(uchar i)
{if(i) PORTC|=0x10;
else PORTC&=0xef;
}
/******************************************************************
*prototype:void set_tx0rts(uchar i)
* function:define tx0rts pin of mcp2515 with PC^5
******************************************************************/
void set_tx0rts(uchar i)
{if(i) PORTC|=0x20;
else PORTC&=0xdf;
}
/******************************************************************
*prototype:void set_tx1rts(uchar i)
* function:define tx1rts pin of mcp2515 with PC^6
******************************************************************/
void set_tx1rts(uchar i)
{if(i) PORTC|=0x40;
else PORTC&=0xbf;
}
/******************************************************************
*prototype:void set_tx2rts(uchar i)
* function:define tx2rts pin of mcp2515 with PC^7
******************************************************************/
void set_tx2rts(uchar i)
{if(i) PORTC|=0x80;
else PORTC&=0x7f;
}
/******************************************************************
*prototype:void set_reset(uchar i)
* function:define reset pin of mcp2515 with PD^4
******************************************************************/
void set_reset(uchar i)
{if(i) PORTD|=0x10;
else PORTD&=0xef;
}
/******************************************************************
*prototype:void set_int(uchar i)
* function:define int pin of mcp2515 with PC^2
******************************************************************/
void set_int(uchar i)
{if(i) PORTC|=0x04;
else PORTC&=0xfb;
}
/******************************************************************
*prototype:void initmcu()
* function:initialize mega162
******************************************************************/
void initmcu()
{uchar temp;
DDRB=(1<<DDB5)|(1<<DDB7);
PORTB=(1<<PORTB6);
SPCR=(1<<SPE)|(1<<MSTR)|(1<<CPOL)|(1<<CPHA)|(1<<SPR0);
SPSR=0x00;
temp=SPSR;
temp=SPDR;
}
/******************************************************************
*prototype: void initp2515()
* function: initialize mcp2515
******************************************************************/
void initp2515()
{set_cs(0);
send(0xc0); //////////reset
set_cs(1);
set_cs(0);
send(0x02); //////////enter into configure mode
send(0x0f);
send(0x80);
set_cs(1);
set_cs(0);
send(0x03); //////////make sure it's being in configure mode
send(0x0e);
rec();
set_cs(1);
set_cs(0);
send(0x02); //////////set cnf3
send(0x28);
send(0x05);
set_cs(1);
set_cs(0);
send(0x02); /////////set cnf2
send(0x29);
send(0xb8);
set_cs(1);
set_cs(0);
send(0x02); /////////set cnf1 this three together determines the device's baudrate
send(0x2a);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); ///////////rxm0
send(0x20);
send(0xdf);
set_cs(1);
set_cs(0);
send(0x02);
send(0x21);
send(0x40);
set_cs(1);
set_cs(0);
send(0x02);
send(0x22);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x23);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); ///////////////rxm1
send(0x24);
send(0xdf);
set_cs(1);
set_cs(0);
send(0x02);
send(0x25);
send(0x40);
set_cs(1);
set_cs(0);
send(0x02);
send(0x26);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x27);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); //////////////////rxf0
send(0x00);
send(0x40);
set_cs(1);
set_cs(0);
send(0x02);
send(0x01);
send(0xa0);
set_cs(1);
set_cs(0);
send(0x02);
send(0x02);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x03);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); /////////////////rxf1
send(0x04);
send(0x60);
set_cs(1);
set_cs(0);
send(0x02);
send(0x05);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x06);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x07);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); ////////////////rxf2
send(0x08);
send(0x40);
set_cs(1);
set_cs(0);
send(0x02);
send(0x09);
send(0xa0);
set_cs(1);
set_cs(0);
send(0x02);
send(0x0a);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x0b);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); /////////////////////rxf3
send(0x10);
send(0x60);
set_cs(1);
set_cs(0);
send(0x02);
send(0x11);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x12);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x13);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); /////////////////////rxf4
send(0x14);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x15);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x16);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x17);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); ////////////////////rxf5
send(0x18);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x19);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x1a);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02);
send(0x1b);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); /////////////////////rxb0ctrl
send(0x60);
send(0x04);
set_cs(1);
set_cs(0);
send(0x02); ///////////////////rxb1ctrl
send(0x70);
send(0x00);
set_cs(1);
set_cs(0);
send(0x02); ///////////////////txrtsctrl
send(0x0d);
send(0x07);
set_cs(1);
set_cs(0);
send(0x02); ///////////////////bfpctrl
send(0x0c);
send(0x0f);
set_cs(1);
set_cs(0);
send(0x02); //////////////////caninte
send(0x2b);
send(0x20);
set_cs(1);
set_cs(0);
send(0x02); /////////////////enter into normal mode
send(0x0f);
send(0x00);
set_cs(1);
set_cs(0);
send(0x03); ////////////////make sure it's being in normal mode
send(0x0e);
rec();
set_cs(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -