📄 main.bak
字号:
#pragma SFR
#pragma NOP
#pragma EI
#pragma DI
#pragma interrupt INTCSI00 int_csi00
char count = 0x00;//Interrupt Counter
char RCV_DATA = 0x00;//Receivve data buffer
void main (void)
{
/*Serial Init for CSI*/
SAU0EN = 1;//enable serial array unit0
SPS0 = 0x0033;//serial clock 1MHz(fCLK/8)
SMR00 = 0x0021;//master, CSI, Buffer Empty Interrupt
SCR00 = 0xA007;//Transmit only clock:rise, data:precedure, MSB, 8bit data
SDR00 = 0x0800;//MCK/10 = 100KHz
//SS0 = 0x01;
/*Pin setting*/
PM1 = 0xFA;//P10_SCK00:Output, P11_SI00:Input P12_SO00:Output
P1.0 = 1;//patch
P1.2 = 1;//patch
/*Output setting*/
SO0 = 0x0F0F;//SO init level is High
SOE0 = 0x01;
/*Start Serial Channel 0*/
SS0 = 0x01;
/*Interrupt Setting*/
CSIMK00 = 0;//unmask interrupt
EI();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
/*first data transmit*/
SIO00 = 0x55;
while(1) //wait for master's communication
{
NOP();
}
}
__interrupt void int_csi00(void)
{
//char BFF00 = 0;
//a if (count != 0)
//a {
RCV_DATA = SIO00;//嵟弶偺僶僢僼傽嬻偒妱傝崬傒偱側偗傟偽庴怣僨乕僞傪撉傒弌偟
//a }
count ++;
// BFF00 = SSR00 & 0x20;
// while (BFF00 == 0x20)
// {
// BFF00 = SSR00 & 0x40;
// }//憲怣僶僢僼傽撪偵僨乕僞偑桳傞偐偳偆偐妋擣
SIO00 = 0xaa; //憲怣僶僢僼傽撪偵僨乕僞偑柍偗傟偽丄0xc3傪憲怣
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -