📄 sci_0.c
字号:
/* -------------------------------------------------------------------------*/
/* SCI test code for my2406/2407 board */
/* */
/* Copyleft(^^) Do-Yoon Kim */
/* SCI_0 ver 2.0 */
/* 2002.7.10 */
/* 矫府倔 烹脚阑 荤侩窍扁 困茄 例瞒甫 埃窜茄 抗力甫 烹秦 混旗焊磊. */
/* Com port 汲沥: 38400bps, 8bit, 1 stop bit, no parity, */
/* ------------------------------------------------------------------------ */
#include <util.h>
// 16柳荐肺 官操绰单 鞘夸茄 Look-up table
char num_str[] = "0123456789ABCDEF";
void bad_trap(void)
{
while(1) ;
}
// polling 规侥栏肺 茄 官捞飘 傈价
void SCISend( char data )
{
while( !(SCICTL2 & TXRDY) ) ;
SCITXBUF = data;
}
// polling 规侥栏肺 茄 官捞飘 荐脚
UCHAR SCIReceive( void )
{
UCHAR ch;
while( !(SCIRXST & RXRDY) ) ;
ch = SCIRXBUF;
return(ch);
}
void SCIPrintf( char *str )
{
while( *str != '\0' ) // null point甫 惯斑且 锭鳖瘤 傈价
{
if (*str == '\n')
{
SCISend(CR);
SCISend(LF);
}
else SCISend(*str);
str++;
}
}
void SCIPrintHex(int iii)
{
SCISend(num_str[(iii>>12) & 0x0F]);
SCISend(num_str[(iii>>8) & 0x0F]);
SCISend(num_str[(iii>>4) & 0x0F]);
SCISend(num_str[(iii) & 0x0F]);
}
void main(void)
{
unsigned char ch;
char test[10];
int temp;
DSPInit(PLLx4); // PLL = x4, CPU 悼累 林颇荐 = CLK
//----------------------------------------------------------------------
//SCI 檬扁拳 鉴辑
//1. SCI 葛碘阑 劝己拳
SCI_ENABLE; // SCI module俊 努钒阑 牢啊茄促.
//2. 矫府倔 烹脚俊 荤侩且 巧阑 IO 措脚 矫府倔 烹脚侩栏肺 汲沥
SET(MCRA, (SCITXD|SCIRXD)); //MCRA.0:SCIRXD, MCRA.1:SCIRXD
//3. 傈价 痹距 汲沥
SCICCR = 0x07;
// |stop bits|Parity Odd/even|Parity enable|Loop back enable|
// 0000b => 1 stop bit, odd parity, parity disable, loop back disable
// |IDLE/ADDR|char2|char1|char0|
// 0111b => idle mode, 8 bit data
// 0110b => idle mode, 7 bit data
//4. TX, RX 劝己拳 汲沥
SCICTL1 = 0x03;
// |reserved|RX ERR INT|SW reset|reserved|
// 0000b => disabe RX error interrupt1 and software reset
// |TXWAKE|SLEEP|TX ENA|RX ENA|
// 0011b => TX, RX enable
//5. 牢磐反飘 汲沥
SCICTL2 = 0xC0;
// |TXRDY|TX EMPTY|reserved|reserved|:捞 滴 厚飘绰 read only 捞促.
// |reserved|reserved|RX INT ENA|TX INT ENA|
// 0000b => TX, RX interrupt disable
// 0011b => TX, RX interrupt enable
//6. 烹脚 加档 汲沥
SCIHBAUD = 0;
SCILBAUD = 129; // 38400bps
//7.
SCICTL1 = 0x23;
//----------------------------------------------------------------------
// DSP焊靛俊辑 PC肺 促澜狼 皋技瘤甫 矫府倔 器飘甫 烹秦 傈价茄促.
// PC率俊辑绰 ComMaster客 鞍篮 矫府倔 葛聪磐 橇肺弊伐捞 角青 吝捞绢具 茄促.
// 单捞磐啊 拳搁俊 钎矫登瘤 臼栏搁, 楷搬 惑怕, 橇肺弊伐 惑怕 殿阑 混旗焊扼.
// 汲沥篮 38400bps, 单捞磐 8bit, no parity, 1 stop bit 捞促.
sprintf(test,"123456\n");
SCIPrintf(test);
SCIPrintf("Welcome to TMS320F2407 world\n");
SCIPrintf("SCIPrintHex test\n");
// 16厚飘 琼荤蔼阑 矫府倔 烹脚阑 烹秦 傈崔窍绰 窃荐 抛胶飘
// SCIPrintHex甫 捞侩窍搁, 16厚飘 蔼阑 颊奖霸 ASCII 蔼栏肺 钎矫且 荐 乐促.
temp = 0x12AB;
SCIPrintHex(temp);
// echo 扁瓷
// PC俊辑 绢恫 巩磊甫 傈价窍搁 促矫 PC率栏肺 秦寸 巩磊甫 馆价茄促.
// 悼矫俊 LED甫 掺芭唱 难辑, 巩磊甫 荐脚沁澜阑 舅赴促.
SET_PC_OUT(BIT1|BIT0); // 器飘 C bit 0甫 I/O outport肺 汲沥
CLEAR(PORTC, BIT0); // 器飘 C bit 0俊 Low甫 免仿(LED off)
while(1)
{
ch = SCIReceive();
if(ch == 'a') TOGGLE(PORTC, BIT0);
SCISend(ch);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -