-2
IM编码器CodeVision计算器和我得到这个错误:一个ERR在器CodeVision AVR
Error: C:\cvavr\BIN\Thrust Calculator\TC.c(112): ')' expected
这个错误涉及到我的这部分代码(从BOT 4号线):
intnum1 = (int atoi(num1[q])) * 10^(i-q-1) + intnum1;
是什么问题?
这是我的代码:
#include <mega32.h>
#include <alcd.h>
#include <delay.h>
#include <string.h>
//defining PTND.i
#define C0 PIND.4
#define C1 PIND.5
#define C2 PIND.6
#define C3 PIND.7
flash char shift[4] = {0b11111110,0b11111101,0b11111011,0b11110111};
flash char layout[16] = {'7','8','9','/',
'4','5','6','*',
'1','2','3','-',
'C','0','=','+'};
char keypad(void);
int fnum1(void);
char num1[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char num2[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i,q, intnum1 = 0;
int t;
void main(void)
{
DDRD = 0X0F;
PORTD = 0XF0;
lcd_init(16);
keypad();
while (1)
{
}
}
/* keypad function */
char keypad(void)
{
int row = 0, position = 0;
while (1)
{
for(row=0; row<4; row++)
{
int COLUMN = -1;
PORTD = shift[row];
//finding column
if(C0 == 0) {COLUMN = 0;}
if(C1 == 0) {COLUMN = 1;}
if(C2 == 0) {COLUMN = 2;}
if(C3 == 0) {COLUMN = 3;}
//know if sm clik the btn
if(COLUMN != -1)
{
//calculating the position
position = row*4 + COLUMN;
//do nothing during the pushing
while(C0 == 0) {}
while(C1 == 0) {}
while(C2 == 0) {}
while(C3 == 0) {}
//C as lcd clear
if(layout[position] == 'C') lcd_clear();
else
//return the keypad value
return layout[position];
}
delay_ms(50);
}
}
}
int fnum1(void)
{
if(keypad() != '')
{
num1[i] = keypad();
i = i + 1;
}
if (keypad() == '=')
{
for(t = 0 ; t <= i ; t++)
{
lcd_putchar(num1[t]);
}
}
for(q = 0 ; q <= i ; q++)
{
intnum1 = (int atoi(num1[q])) * 10^(i-q-1) + intnum1;
}
lcd_putchar(keypad());
return intnum1;
}
,我会很感激,如果SM能回答我:)
是的,例如你有这个字符:'563'。 我把它分成3个数字:500 + 60 + 3。 –
我写了你说的,但它说“未定义的符号atoi”为这个错误:错误:C:\ cvavr \ BIN \ Thrust Calculator \ TC.c(116):undefined symbol'atoi' –
'atoi'是一个数学库函数 - 您必须包含正确的头文件,以便链接器可以找到该函数并将其添加到可执行代码中。 的#include 一般而言,任何未定义功能是丢失的头,或者如果它是在自己的代码,你可以声明为“的extern” –