设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 397|回复: 5

新人求帮助QWQ

[复制链接]

该用户从未签到

发表于 2017-10-11 23:45:55 | 显示全部楼层 |阅读模式
程序:
int LEDCount=8;
int segCount=4;
long previousMillis=0;
const unsigned char DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x7d,0x07,0x7f,0x6f};
unsigned char const WeiMa[]={0,1,2,3};
int LEDPins[]={12,8,5,3,2,11,6,4,};
int segPins[]={13,10,9,7};
unsigned char displayTemp[4];
void setup() {
  for(int thisLED=0;thisLED<LEDCount;thisLED++){
    pinMode(LEDPins[thisLED],OUTPUT);}
  for(int thisSeg=0;thisSeg<segCount;thisSeg++){
    pinMode(segPins[thisSeg],OUTPUT);}
}
void deal(unsigned char value){
  for(int i=0;i<8;i++)
    digitalWrite(LEDPins[i],bitWrite(value,i,));
}
void loop() {
  static unsigned int num;
  static unsigned  long lastTime=0;
  if(millis()-lastTime>=1000){
    lastTime=millis();
    //serialOutput();
    num++;
  }
  //displayTemp[0]=DuanMa[num/1000];
  //displayTemp[1]=DuanMa[(num%1000)/100];
  //displayTemp[2]=DuanMa[((num%1000)%100)/10];
  //displayTemp[3]=DuanMa[((num%1000)%100)%10];
  displayTemp[0]=DuanMa[1];
  displayTemp[1]=DuanMa[2];
  displayTemp[2]=DuanMa[3];
  displayTemp[3]=DuanMa[4];
  static int i;
  unsigned long cMillis=millis();
  if(cMillis-previousMillis>0){
    previousMillis=cMillis;
      deal(0);
      for(int a=0;a<4;a++)
        digitalWrite(segPins[a],1);
      digitalWrite(segPins[i]=0);
      deal(displayTemp[i]);
     i++;
    if(i==4)
    i=0;
  }
}

错误信息:
Arduino:1.7.10 (Windows 7), 板:"Arduino Uno"
In file included from sketch_oct11a.ino:1:0:
sketch_oct11a.ino: In function 'void deal(unsigned char)':
C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:106:50: error: expected primary-expression before '?' token
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
                                                  ^
sketch_oct11a.ino:17:29: note: in expansion of macro 'bitWrite'
sketch_oct11a.ino: In function 'void loop()':
sketch_oct11a.ino:43:32: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
In file included from sketch_oct11a.ino:1:0:
C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:126:6: note: declared here
void digitalWrite(uint8_t, uint8_t);
      ^
编译有误。

根本看不懂错误在写啥啊QWQ求大佬帮助

签到天数: 510 天

[LV.9]以坛为家II

发表于 2017-10-12 08:20:07 | 显示全部楼层
digitalWrite(LEDPins[i],bitWrite(value,i,));
多个逗号
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2017-10-12 12:33:29 | 显示全部楼层
AllBlue 发表于 2017-10-12 08:20
digitalWrite(LEDPins,bitWrite(value,i,));
多个逗号

没逗号显示sketch_oct11a.ino:17:45: error: macro "bitWrite" requires 3 arguments, but only 2 given
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2017-10-12 12:34:38 | 显示全部楼层
AllBlue 发表于 2017-10-12 08:20
digitalWrite(LEDPins,bitWrite(value,i,));
多个逗号

就是后面的一堆错误信息是什么意思啊QWQ看不懂
回复 支持 反对

使用道具 举报

签到天数: 510 天

[LV.9]以坛为家II

发表于 2017-10-12 17:32:04 | 显示全部楼层
1095630341 发表于 2017-10-12 12:33
没逗号显示sketch_oct11a.ino:17:45: error: macro "bitWrite" requires 3 arguments, but only 2 given
...

这句话意思是 bitWrite需要三个参数,但程序里只有两个
回复 支持 反对

使用道具 举报

签到天数: 98 天

[LV.6]常住居民II

发表于 2017-11-8 18:41:36 | 显示全部楼层
#define bitWrite(value, bit, bitvalue)
参数:value是要写入的数值变量,bit是要写入的数值变量的位,从0开始是最低(最右边)的位,bitvalue是写入位的数值(0或1)。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|联系我们|YFRobot ( 苏ICP备13017135  

GMT+8, 2017-11-22 21:08 , Processed in 0.179216 second(s), 25 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表