2016-08-18 5 views
0

Ich kopierte ein Skript von einem YouTube-Video, weil es keinen Download-Link zum Skript gab, aber jetzt bekomme ich immer die gleiche Fehlermeldung und ich Ich weiß nicht, was ich machen soll. Kannst du mir helfen?ungültige Typen 'uint8_t {aka unsigned char} [int]' für Array tiefgestellt

Dies ist mein Code:

#include <VirtualWire.h> 
 

 
int ledPassive = 5; 
 
int ledActive = 7; 
 
int motor = 8; 
 

 
void setup() { 
 
    // put your setup code here, to run once: 
 
pinMode(ledPassive,OUTPUT); 
 
pinMode(ledActive,OUTPUT); 
 
pinMode(motor,OUTPUT); 
 
vw_set_ptt_inverted(true); 
 
vw_set_rx_pin(12); 
 
vw_setup(4000); 
 
vw_rx_start(); 
 

 
} 
 

 
void loop() 
 
{ 
 
    
 
digitalWrite(ledPassive,HIGH); 
 
digitalWrite(motor,LOW); 
 
digitalWrite(ledActive,LOW); 
 
uint8_t buf(VW_MAX_MESSAGE_LEN); 
 
uint8_t buflen = VW_MAX_MESSAGE_LEN; 
 

 
if (vw_get_message(buf, &buflen)) { 
 
    if (buf[0]=='X'){ 
 
    digitalWrite(ledPassive,LOW); 
 
    for (int i=0;i<10;i++){ 
 
     digitalWrite(motor,LOW); 
 
     digitalWrite(ledActive,HIGH); 
 
     delay(200); 
 
     digitalWrite(motor,HIGH); 
 
     digitalWrite(ledActive,LOW); 
 
     delay(200); 
 
    } 
 
} 
 
    else if (buf[0]!='x'){ 
 
    digitalWrite(ledPassive,HIGH); 
 
    } 
 
} 
 
}

Und dies ist die Fehlermeldung:

Arduino: 1.6.10 (Windows 10), Board:"Arduino Nano, ATmega328" 
 

 
In function 'void loop()': 
 

 
sketch_aug18e_self_made:29: error: invalid types 'uint8_t {aka unsigned char}[int]' for array subscript 
 

 
    if (buf[0]=='X'){ 
 

 
      ^
 

 
sketch_aug18e_self_made:40: error: invalid types 'uint8_t {aka unsigned char}[int]' for array subscript 
 

 
    else if (buf[0]!='x'){ 
 

 
       ^
 

 
exit status 1 
 
invalid types 'uint8_t {aka unsigned char}[int]' for array subscript 
 

 
This report would have more information with 
 
"Show verbose output during compilation" 
 
option enabled in File -> Preferences.

Sorry für die schlechte Sprache, die ich bin dutch und nicht so gut sehr auf Englisch

+0

Ersetzen Sie 'uint8_t buf (VW_MAX_MESSAGE_LEN);' mit 'uint8_t buf [VW_MAX_MESSAGE_LEN];' (Beachten Sie die eckigen Klammern) –

+0

Danke, es funktioniert! – Simon

Antwort

1

Try

uint8_t buf(VW_MAX_MESSAGE_LEN);

mit

uint8_t buf[VW_MAX_MESSAGE_LEN];

Sie verwenden falsche Syntax Ersetzen eines Arrays für die Erklärung.

Verwandte Themen