本设计内容采用DSP28335开发环境,目的将外部中断的次数利用串口通信SCI传至上位机显示
DSP28335 做的
需要有个函数 是将整数转成字符串
void itoa_mf(int num,char str[])
{
int sign = num;
int i = 0;
int j = 0;
char temp[100];
//如果是负数就去掉符号,将-1234转成1234
if(sign < 0)
{
num = -num;
}
//转成字符串,1234转成"4321"
do
{
temp[i] = num % 10 + '0';
num /= 10;
i++;
}while(num > 0);
//如果是负数的话,加个符号在末尾,如:"4321-"
if(sign < 0)
{
temp[i++] = '-';
}
temp[i] = '\0';
i--;
//将temp数组中逆序输入到str数组中
//将"4321-" ====> "-1234"
while(i >= 0)
{
str[j] = temp[i];
j++;
i--;
}
//字符串结束标识
str[j] = '\0';
}
这个函数写在了中断处理函数.c文件里 在 EXTI1_IRQn 上边
EXTI1_IRQn 函数里这样写
extern unsigned int iCount;
interrupt void EXTI1_IRQn(void)
{
char sstring[16] = {0};
itoa_mf(iCount,sstring); // 整形转字符
iCount++; //计数加1
UARTa_SendString(sstring); //从SCIA发送给上位机
Uint32 i;
for(i=0;i<10000;i++); //键盘消抖动
while(!KEY_H1);
LED2_TOGGLE;
PieCtrlRegs.PIEACK.bit.ACK1=1;
}
其他都是按部就班得引入,记得计数变量写在main.c里
extern int iCount = 0;
extern int iCount = 0;
void main()
{
InitSysCtrl();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
。。。。。
用串口助手连上,
按按钮