我正在使用这个原型板MCB2300。我在Keil uVision4.7中编程,但问题是我的程序没有达到主要功能 当我运行这个程序时它很好
/* ******************** Workshop 1 -- Exercise 2 **************************/
#include <stdio.h> // standard C definitions
#include "MCB2300 evaluatieboard.h" // hardware related functions
#include "lcd.h"
void init(void)
{
initEvaluationBoard();
lcd_init();
}
int main(void) {
unsigned char number = 0;
int i;
char lcdText[2][17];
init();
sprintf(lcdText[0], "Hello World");
lcd_print(lcdText[0]);
while (1)
{
for (i = 0; i <250000; i++)
if (!INT0) number = 0;
sprintf(lcdText[1], "%3d", number);
LEDS = number++;
set_cursor(0,1);
lcd_print(lcdText[1]);
}
}
但当我将名称从main.c变为main.cpp并将此代码放入
时 #include "MCB2300 evaluatieboard.h" // hardware related functions
int main(void)
{
initEvaluationBoard();
LEDS = 0xFF;
for (int i = 0; i <250000; i++)
if (!INT0) i = 0;
LEDS = 0x00;
while(1)
{
for (int i = 0; i <250000; i++)
if (!INT0) i = 0;
}
}
它在SWI_Handler B SWI_Handler上的文件LPC2300.s中崩溃(第624行)
有人知道如何解决这个问题
keil告诉我该程序有0个错误和0个警告。该计划开始了。但是当我查看调试工具时,我发现程序始终停在此行
编辑我忘了在这里添加MCB evaluateatieboard.h和c文件 .h文件 #ifndef _evaluationboard #define _evaluationboard
#include <LPC23xx.H> // LPC23xx definitions
#define LEDS FIO2PIN0 // alternative (comprehensive) definition of FIOPIN0
#define INT0 (FIO2PIN1 & 0x04) // int0 is connected to P2.10 (bit 3 of FIO2PIN1)
void initEvaluationBoard(void); // function prototype
#endif
和.c文件
#include "MCB2300 evaluatieboard.h"
void initEvaluationBoard(void)
{
PINSEL10 = 0; // Disable ETM interface, enable LEDs
FIO2DIR0 = 0xFF;
PINMODE4 = 0x0020AAAA;
}
编辑 正如barak manos所说,它与c ++设置有关 如果我运行的代码保存为.c文件时运行,以.cpp运行它停在同一行