Прошу помощи
- Войдите на сайт для отправки комментариев
Вс, 19/02/2017 - 14:59
Приветствую!!! Проблема в следуещем, есть у меня друг который смог с ардуино вывести показания буста на штатный экран бк... Я от этой темы далек, он мне сказал купить платку нано, и дал чем прошить ее... сейчас связи с ним нет, а прошить не получается, выдает ошибку... Помогите с таким траблом мне !!!
опубликуйте весь код
покажите ошибку которую компилятор выдал
опубликуйте весь код
покажите ошибку которую компилятор выдал
Подскажите как его сюда выложить, я новичок у вас тут
Код выложить так - http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Ошибку просто выделяешь мышкой в Arduino IDE и копируешь/вставляешь сюда текстом.
int mapsen = 0; // Set MAP sensor input on Analog port 0 float boost = 0; // Set boost value to 0 float mapval = 0; // Set raw map value to 0 //volatile*float peakboost = 0; // Set peak memory to 0 //data pin 4 //clk pin 3 //ena pin 2 //WRITE TO CLUSTER #define FIS_WRITE_ENA 2 #define FIS_WRITE_ENAINT 0 #define FIS_WRITE_CLK 3 #define FIS_WRITE_DATA 4 #define FIS_WRITE_PULSEW 50 #define FIS_WRITE_STARTPULSEW 100 #define FIS_WRITE_START 15 //something like address, first byte is always 15 //WRITE TO CLUSTER String FIS_WRITE_line1=""; //upper line 8characters are static, more then 8 will rotate String FIS_WRITE_line2=""; //lover line 8characters are static, more then 8 will rotate String FIS_WRITE_sendline1=" "; String FIS_WRITE_sendline2=" "; long FIS_WRITE_rotary_position_line1=-8; long FIS_WRITE_rotary_position_line2=-8; char FIS_WRITE_CHAR_FROM_SERIAL; char FIS_WRITE_CHAR_FROM_SER; int FIS_WRITE_line=1; long FIS_WRITE_last_refresh=0; int FIS_WRITE_nl=0; volatile uint8_t FIS_WRITE_ACKSTATE=1; //END WRITE TO CLUSTER char s; //WRITE TO CLUSTER void FIS_WRITE_sendTEXT(String FIS_WRITE_line1,String FIS_WRITE_line2); void FIS_WRITE_sendByte(int Bit); void FIS_WRITE_startENA(); void FIS_WRITE_stopENA(); void FIS_WRITE_ACK(); //END WRITE TO CLUSTER int ButPin = 10; // Подключаем кнопку к выходу 10 int flag = 0; // флаг состояния int regim = 0; // Переключалка void setup(){ //WRITE TO CLUSTER pinMode(FIS_WRITE_ENA, OUTPUT); digitalWrite(FIS_WRITE_ENA,LOW); pinMode(FIS_WRITE_ENA,INPUT); digitalWrite(FIS_WRITE_ENA,LOW);//disable pullup attachInterrupt(FIS_WRITE_ENAINT,FIS_WRITE_ACK,FALLING); pinMode(FIS_WRITE_CLK, OUTPUT); digitalWrite(FIS_WRITE_CLK, HIGH); pinMode(FIS_WRITE_DATA, OUTPUT); digitalWrite(FIS_WRITE_DATA, HIGH); pinMode(ButPin,HIGH); Serial.begin(9600); } void loop(){ //WRITE TO CLUSTER mapval=*analogRead(mapsen); //Reads the MAP sensor raw value on analog port 0 boost*=*(mapval*(.00488)/(.022)*(0.145));*//Converts raw MAP value to PSI and accounts for atomospheric pressure если нужно подогнать в ноль то просто убавляем число 00488 или плюсуем смотря какой случий int sensor1 = analogRead(A1); float oil = sensor1 * (3.0 / 1023.0); int sensor2 = analogRead(A2); float vol = sensor2 * (15.0 / 1023.0); if(digitalRead(ButPin) == HIGH && flag == 0) { regim ++; flag = 1; if(regim > 2) // Если номер режима превышает требуемого { // то отсчет начинается с нуля regim = 0;}} if(digitalRead(ButPin) == LOW && flag == 1) { flag = 0;} // ======= Вполняем задачу при выборе режима ======= if(regim == 1){ FIS_WRITE_line1=("BOOST"); FIS_WRITE_line2=("BAR=",boost);} if(regim == 2){ FIS_WRITE_line1=("VOLTAGE"); FIS_WRITE_line2=("V=",vol);} if(regim == 0) if (Serial.available()) { FIS_WRITE_CHAR_FROM_SERIAL=(char)Serial.read(); Serial.print(FIS_WRITE_CHAR_FROM_SERIAL); if (FIS_WRITE_CHAR_FROM_SERIAL == '~') {FIS_WRITE_nl=1; if (FIS_WRITE_line==1) {FIS_WRITE_line=2;} else {FIS_WRITE_line=1;}} else {if (FIS_WRITE_line==1){ if (FIS_WRITE_nl) {FIS_WRITE_nl=0; FIS_WRITE_line1=""; FIS_WRITE_rotary_position_line1=-8;} FIS_WRITE_line1+=FIS_WRITE_CHAR_FROM_SERIAL;} else {if (FIS_WRITE_nl) {FIS_WRITE_nl=0; FIS_WRITE_line2=""; FIS_WRITE_rotary_position_line2=-8;} FIS_WRITE_line2+=FIS_WRITE_CHAR_FROM_SERIAL;}}} int FIS_WRITE_line1_length=FIS_WRITE_line1.length(); int FIS_WRITE_line2_length=FIS_WRITE_line2.length(); //do rotary and refresh each 0.5second //refresh cluster each 5s if((millis()-FIS_WRITE_last_refresh)>75 && (FIS_WRITE_line1_length>0 || FIS_WRITE_line2_length>0)){ if (FIS_WRITE_line1_length>8){ FIS_WRITE_sendline1=" "; for (int i=0;i<8;i++){ if (FIS_WRITE_rotary_position_line1+i>=0 && (FIS_WRITE_rotary_position_line1+i)<FIS_WRITE_line1_length) { FIS_WRITE_sendline1[i]=FIS_WRITE_line1[FIS_WRITE_rotary_position_line1+i]; } } if (FIS_WRITE_rotary_position_line1<FIS_WRITE_line1_length){ FIS_WRITE_rotary_position_line1++; } else { FIS_WRITE_rotary_position_line1=-8; FIS_WRITE_sendline1=" "; } } else { FIS_WRITE_sendline1=FIS_WRITE_line1; } if (FIS_WRITE_line2_length>8){ FIS_WRITE_sendline2=" "; for (int i=0;i<8;i++){ if (FIS_WRITE_rotary_position_line2+i>=0 && (FIS_WRITE_rotary_position_line2+i)<FIS_WRITE_line2_length) { FIS_WRITE_sendline2[i]=FIS_WRITE_line2[FIS_WRITE_rotary_position_line2+i]; } } if (FIS_WRITE_rotary_position_line2<FIS_WRITE_line2_length){ FIS_WRITE_rotary_position_line2++; } else { FIS_WRITE_rotary_position_line2=-8; } } else { FIS_WRITE_sendline2=FIS_WRITE_line2; } // Serial.println("refresh"); //FIS_WRITE_sendTEXT(FIS_WRITE_sendline1,FIS_WRITE_sendline2); FIS_WRITE_last_refresh=millis(); //end refresh } if (FIS_WRITE_ACKSTATE){ FIS_WRITE_ACKSTATE=0; FIS_WRITE_sendTEXT(FIS_WRITE_sendline1,FIS_WRITE_sendline2); } //END WRITE TO CLUSTER } //WRITE TO CLUSTER void FIS_WRITE_ACK(){ detachInterrupt(FIS_WRITE_ENAINT); FIS_WRITE_ACKSTATE=1; }; void FIS_WRITE_sendTEXT(String FIS_WRITE_line1,String FIS_WRITE_line2) { // my Serial.println(FIS_WRITE_line1); // my Serial.println(FIS_WRITE_line2); int FIS_WRITE_line1_length=FIS_WRITE_line1.length(); int FIS_WRITE_line2_length=FIS_WRITE_line2.length(); if (FIS_WRITE_line1_length<=8){ for (int i=0;i<(8-FIS_WRITE_line1_length);i++){ FIS_WRITE_line1+=" "; } } if (FIS_WRITE_line2_length<=8){ for (int i=0;i<(8-FIS_WRITE_line2_length);i++){ FIS_WRITE_line2+=" "; } } uint8_t FIS_WRITE_CRC=(0xFF^FIS_WRITE_START); FIS_WRITE_startENA(); FIS_WRITE_sendByte(FIS_WRITE_START); for (int i = 0; i <= 7; i++) { FIS_WRITE_sendByte(0xFF^FIS_WRITE_line1[i]); FIS_WRITE_CRC+=FIS_WRITE_line1[i]; } for (int i = 0; i <= 7; i++) { FIS_WRITE_sendByte(0xFF^FIS_WRITE_line2[i]); FIS_WRITE_CRC+=FIS_WRITE_line2[i]; } FIS_WRITE_sendByte(FIS_WRITE_CRC%0x100); FIS_WRITE_stopENA(); } void FIS_WRITE_sendByte(int Byte){ static int iResult[8]; for (int i = 0; i <= 7; i++) { iResult[i] = Byte % 2; Byte = Byte / 2; } for(int i=7;i>=0;i--){ switch (iResult[i]) { case 1: digitalWrite(FIS_WRITE_DATA,HIGH); break; case 0:digitalWrite(FIS_WRITE_DATA,LOW); break; } digitalWrite(FIS_WRITE_CLK,LOW); delayMicroseconds(FIS_WRITE_PULSEW); digitalWrite(FIS_WRITE_CLK,HIGH); delayMicroseconds(FIS_WRITE_PULSEW); } } void FIS_WRITE_startENA(){ //detachInterrupt(FIS_WRITE_ENAINT); pinMode(FIS_WRITE_ENA,INPUT); digitalWrite(FIS_WRITE_ENA,LOW);//disable pullup while (!digitalRead(FIS_WRITE_ENA)) { pinMode(FIS_WRITE_ENA,OUTPUT); digitalWrite(FIS_WRITE_ENA,HIGH); delay(10); //min 10! } } void FIS_WRITE_stopENA(){ digitalWrite(FIS_WRITE_ENA,LOW); pinMode(FIS_WRITE_ENA,INPUT); digitalWrite(FIS_WRITE_ENA,LOW);//disable pullup attachInterrupt(FIS_WRITE_ENAINT,FIS_WRITE_ACK,FALLING); } //END WRITE TO CLUSTERКод выложить так - http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Ошибку просто выделяешь мышкой в Arduino IDE и копируешь/вставляешь сюда текстом.
rgdaudi, компилятор же Вам все написал.
Вот расскажите, что Вы хотели сказать в строках 67 и 68?
rgdaudi, компилятор же Вам все написал.
Вот расскажите, что Вы хотели сказать в строках 67 и 68?
[/quote]
Я ж и обратился за помощью сюда, если бы я что то понимал вопросов бы не возникло
Вопрос остается: что Вы хотели сказать строками 67 и 68?
Вопрос остается: что Вы хотели сказать строками 67 и 68?
Переменая мап вал считывает значения с пина мап сенс
Вопрос остается: что Вы хотели сказать строками 67 и 68?
Ладно, я даже готов согласиться, что не программа считывает значение в переменную, а сама переменная считывает значение сама в себя, но почему она это делает, пренебрегая правилами языка?
Ладно, я даже готов согласиться, что не программа считывает значение в переменную, а сама переменная считывает значение сама в себя, но почему она это делает, пренебрегая правилами языка?
[/quote] Да далек я ото всего этого, кто бы мне помог сейчас не на связи, вот и обратился я к Вам
//data pin 4 //clk pin 3 //ena pin 2 //WRITE TO CLUSTER #define FIS_WRITE_ENA 2 #define FIS_WRITE_ENAINT 0 #define FIS_WRITE_CLK 3 #define FIS_WRITE_DATA 4 #define FIS_WRITE_PULSEW 50 #define FIS_WRITE_STARTPULSEW 100 #define FIS_WRITE_START 15 //something like address, first byte is always 15 //END WRITE TO CLUSTER //#define BINCODE 000011111011111010101010101110111011011010111100101100111010101010111101101011001011001110110000101010011011111010110100101101101011111010010011 // 000011111011111010101010101110111011011010111100101100111010101010111101101011001011001110110000101010011011111010110100101101101011111010010011 //int BINCODE[144]={ //0,0,0,0,1,1,1,1, //1,0,1,1,1,1,1,0, //1,0,1,0,1,0,1,0, //1,0,1,1,1,0,1,1, //1,0,1,1,0,1,1,0, //1,0,1,1,1,1,0,0, //1,0,1,1,0,0,1,1, //1,0,1,0,1,0,1,0, //1,0,1,1,1,1,0,1, //1,0,1,0,1,1,0,0, //1,0,1,1,0,0,1,1, //1,0,1,1,0,0,0,0, //1,0,1,0,1,0,0,1, //1,0,1,1,1,1,1,0, //1,0,1,1,0,1,0,0, //1,0,1,1,0,1,1,0, //1,0,1,1,1,1,1,0, //1,0,0,1,0,0,1,1}; //WRITE TO CLUSTER String FIS_WRITE_line1=""; //upper line 8characters are static, more then 8 will rotate String FIS_WRITE_line2=""; //lover line 8characters are static, more then 8 will rotate String FIS_WRITE_sendline1=" "; String FIS_WRITE_sendline2=" "; long FIS_WRITE_rotary_position_line1=-8; long FIS_WRITE_rotary_position_line2=-8; char FIS_WRITE_CHAR_FROM_SERIAL; char FIS_WRITE_CHAR_FROM_SER; int FIS_WRITE_line=1; long FIS_WRITE_last_refresh=0; int FIS_WRITE_nl=0; volatile uint8_t FIS_WRITE_ACKSTATE=1; //END WRITE TO CLUSTER char s; //WRITE TO CLUSTER void FIS_WRITE_sendTEXT(String FIS_WRITE_line1,String FIS_WRITE_line2); void FIS_WRITE_sendByte(int Bit); void FIS_WRITE_startENA(); void FIS_WRITE_stopENA(); void FIS_WRITE_ACK(); //END WRITE TO CLUSTER int ButPin = 10; // Подключаем кнопку к выходу 10 int flag = 0; // флаг состояния int regim = 0; // Переключалка void setup(){ //WRITE TO CLUSTER pinMode(FIS_WRITE_ENA, OUTPUT); digitalWrite(FIS_WRITE_ENA,LOW); pinMode(FIS_WRITE_ENA,INPUT); digitalWrite(FIS_WRITE_ENA,LOW);//disable pullup attachInterrupt(FIS_WRITE_ENAINT,FIS_WRITE_ACK,FALLING); pinMode(FIS_WRITE_CLK, OUTPUT); digitalWrite(FIS_WRITE_CLK, HIGH); pinMode(FIS_WRITE_DATA, OUTPUT); digitalWrite(FIS_WRITE_DATA, HIGH); pinMode(ButPin,HIGH); Serial.begin(9600); } void loop(){ //WRITE TO CLUSTER int sensor = analogRead(A0); float mapsen = sensor * (3.0 / 1023.0); int sensor1 = analogRead(A1); float oil = sensor1 * (3.0 / 1023.0); int sensor2 = analogRead(A2); float vol = sensor2 * (15.0 / 1023.0); if(digitalRead(ButPin) == HIGH && flag == 0) { regim ++; flag = 1; if(regim > 2) // Если номер режима превышает требуемого { // то отсчет начинается с нуля regim = 0;}} if(digitalRead(ButPin) == LOW && flag == 1) { flag = 0;} // ======= Вполняем задачу при выборе режима ======= if(regim == 1){ FIS_WRITE_line1=("BOOST"); FIS_WRITE_line2=("BAR=",mapsen);} if(regim == 2){ FIS_WRITE_line1=("VOLTAGE"); FIS_WRITE_line2=("V=",vol);} if(regim == 0) if (Serial.available()) { FIS_WRITE_CHAR_FROM_SERIAL=(char)Serial.read(); Serial.print(FIS_WRITE_CHAR_FROM_SERIAL); if (FIS_WRITE_CHAR_FROM_SERIAL == '~') {FIS_WRITE_nl=1; if (FIS_WRITE_line==1) {FIS_WRITE_line=2;} else {FIS_WRITE_line=1;}} else {if (FIS_WRITE_line==1){ if (FIS_WRITE_nl) {FIS_WRITE_nl=0; FIS_WRITE_line1=""; FIS_WRITE_rotary_position_line1=-8;} FIS_WRITE_line1+=FIS_WRITE_CHAR_FROM_SERIAL;} else {if (FIS_WRITE_nl) {FIS_WRITE_nl=0; FIS_WRITE_line2=""; FIS_WRITE_rotary_position_line2=-8;} FIS_WRITE_line2+=FIS_WRITE_CHAR_FROM_SERIAL;}}} int FIS_WRITE_line1_length=FIS_WRITE_line1.length(); int FIS_WRITE_line2_length=FIS_WRITE_line2.length(); //do rotary and refresh each 0.5second //refresh cluster each 5s if((millis()-FIS_WRITE_last_refresh)>250 && (FIS_WRITE_line1_length>0 || FIS_WRITE_line2_length>0)){ if (FIS_WRITE_line1_length>8){ FIS_WRITE_sendline1=" "; for (int i=0;i<8;i++){ if (FIS_WRITE_rotary_position_line1+i>=0 && (FIS_WRITE_rotary_position_line1+i)<FIS_WRITE_line1_length) { FIS_WRITE_sendline1[i]=FIS_WRITE_line1[FIS_WRITE_rotary_position_line1+i]; } } if (FIS_WRITE_rotary_position_line1<FIS_WRITE_line1_length){ FIS_WRITE_rotary_position_line1++; } else { FIS_WRITE_rotary_position_line1=-8; FIS_WRITE_sendline1=" "; } } else { FIS_WRITE_sendline1=FIS_WRITE_line1; } if (FIS_WRITE_line2_length>8){ FIS_WRITE_sendline2=" "; for (int i=0;i<8;i++){ if (FIS_WRITE_rotary_position_line2+i>=0 && (FIS_WRITE_rotary_position_line2+i)<FIS_WRITE_line2_length) { FIS_WRITE_sendline2[i]=FIS_WRITE_line2[FIS_WRITE_rotary_position_line2+i]; } } if (FIS_WRITE_rotary_position_line2<FIS_WRITE_line2_length){ FIS_WRITE_rotary_position_line2++; } else { FIS_WRITE_rotary_position_line2=-8; } } else { FIS_WRITE_sendline2=FIS_WRITE_line2; } // Serial.println("refresh"); //FIS_WRITE_sendTEXT(FIS_WRITE_sendline1,FIS_WRITE_sendline2); FIS_WRITE_last_refresh=millis(); //end refresh } if (FIS_WRITE_ACKSTATE){ FIS_WRITE_ACKSTATE=0; FIS_WRITE_sendTEXT(FIS_WRITE_sendline1,FIS_WRITE_sendline2); } //END WRITE TO CLUSTER } //WRITE TO CLUSTER void FIS_WRITE_ACK(){ detachInterrupt(FIS_WRITE_ENAINT); FIS_WRITE_ACKSTATE=1; }; void FIS_WRITE_sendTEXT(String FIS_WRITE_line1,String FIS_WRITE_line2) { // my Serial.println(FIS_WRITE_line1); // my Serial.println(FIS_WRITE_line2); int FIS_WRITE_line1_length=FIS_WRITE_line1.length(); int FIS_WRITE_line2_length=FIS_WRITE_line2.length(); if (FIS_WRITE_line1_length<=8){ for (int i=0;i<(8-FIS_WRITE_line1_length);i++){ FIS_WRITE_line1+=" "; } } if (FIS_WRITE_line2_length<=8){ for (int i=0;i<(8-FIS_WRITE_line2_length);i++){ FIS_WRITE_line2+=" "; } } uint8_t FIS_WRITE_CRC=(0xFF^FIS_WRITE_START); FIS_WRITE_startENA(); FIS_WRITE_sendByte(FIS_WRITE_START); for (int i = 0; i <= 7; i++) { FIS_WRITE_sendByte(0xFF^FIS_WRITE_line1[i]); FIS_WRITE_CRC+=FIS_WRITE_line1[i]; } for (int i = 0; i <= 7; i++) { FIS_WRITE_sendByte(0xFF^FIS_WRITE_line2[i]); FIS_WRITE_CRC+=FIS_WRITE_line2[i]; } FIS_WRITE_sendByte(FIS_WRITE_CRC%0x100); FIS_WRITE_stopENA(); } void FIS_WRITE_sendByte(int Byte){ static int iResult[8]; for (int i = 0; i <= 7; i++) { iResult[i] = Byte % 2; Byte = Byte / 2; } for(int i=7;i>=0;i--){ switch (iResult[i]) { case 1: digitalWrite(FIS_WRITE_DATA,HIGH); break; case 0:digitalWrite(FIS_WRITE_DATA,LOW); break; } digitalWrite(FIS_WRITE_CLK,LOW); delayMicroseconds(FIS_WRITE_PULSEW); digitalWrite(FIS_WRITE_CLK,HIGH); delayMicroseconds(FIS_WRITE_PULSEW); } } void FIS_WRITE_startENA(){ //detachInterrupt(FIS_WRITE_ENAINT); pinMode(FIS_WRITE_ENA,INPUT); digitalWrite(FIS_WRITE_ENA,LOW);//disable pullup while (!digitalRead(FIS_WRITE_ENA)) { pinMode(FIS_WRITE_ENA,OUTPUT); digitalWrite(FIS_WRITE_ENA,HIGH); delay(10); //min 10! } } oid FIS_WRITE_stopENA(){ digitalWrite(FIS_WRITE_ENA,LOW); pinMode(FIS_WRITE_ENA,INPUT); digitalWrite(FIS_WRITE_ENA,LOW);//disable pullup attachInterrupt(FIS_WRITE_ENAINT,FIS_WRITE_ACK,FALLING); } //END WRITE TO CLUSTERНу, у Вас есть два варианта:
1. "Подойти поближе" - т.е. ознакомиться с языком и принципами программирования.
2. Обратиться в раздел "Ищу исполнителя". Там Вам помогут за соответствующее вознаграждение.
Здесь Вам могут помочь осуществить п.1 т.е. освоить программирование, но делать за Вас работу, которая никому кроме Вас не интересна, никто не будет.
Пока могу еще раз посоветовать прочитать и понять выдаваемую компилятором диагностику. На строку 69 не обращайте внимания, это наведенка от предыдущей строки, а вот в строке 70 все достатояно четко сформулировано: Вы пытаетесь использовать нигде не описанную переменную.
Ну, у Вас есть два варианта:
1. "Подойти поближе" - т.е. ознакомиться с языком и принципами программирования.
2. Обратиться в раздел "Ищу исполнителя". Там Вам помогут за соответствующее вознаграждение.
Здесь Вам могут помочь осуществить п.1 т.е. освоить программирование, но делать за Вас работу, которая никому кроме Вас не интересна, никто не будет.
Пока могу еще раз посоветовать прочитать и понять выдаваемую компилятором диагностику. На строку 69 не обращайте внимания, это наведенка от предыдущей строки, а вот в строке 70 все достатояно четко сформулировано: Вы пытаетесь использовать нигде не описанную переменную.
Спасибо огромное идем по пункту 1) я нашел в чем проблема была