collect2.exe: error: ld returned 1 exit status
keep getting error when try connect buzzer play when timer stops.
how can fix it?
//library
#include "sevenseg.h"
//seven seg
sevenseg disp (10,9,8,7,6,11,12); //defines segments a-g: sevenseg(a, b, c, d, e, f, g);
const int numofdigits =2; //number of 7 segments
int digitpins [numofdigits]={4,5}; //cc(or ca) pins of segment
const int buzzer = a2;
//constants
const int startbt = 2;
const int changebt = 3;
const int setbt = 13;
const int dotpoint1=a0; //left digit
const int dotpoint2=a1; //right digit
//variables
string number="00";
int digit1=0;
int digit2=0;
int start, change, set;
int setpoint=0;
int countdown;
//useful flags
boolean countflag=false;
void setup()
{
pinmode (buzzer,output);
pinmode(startbt, input_pullup);
pinmode(changebt, input_pullup);
pinmode(setbt, input_pullup);
pinmode(dotpoint1, output);
pinmode(dotpoint2, output);
//defines number of digits "numofdigits" , digit pins elements of array "digitpins"
disp.setdigitpins ( numofdigits , digitpins );
//only common cathode 7segments
disp.setcommoncathode();
//control brightness (values 0-100);
disp.setdutycycle(60);
disp.settimer(2);
disp.starttimer();
}
void loop()
{
//read buttons state
start = digitalread(startbt);
change = digitalread(changebt);
set = digitalread(setbt);
if (set == low && !countflag){
delay(500);
if (setpoint<2){
setpoint++;
}
else{
setpoint=0;
}
}
//start counting...
if (start == low && setpoint==0
){
delay(500);
if (!countflag){
countflag=true;
countdown = number.toint();
}
else{
countflag=false;
}
}
if (change == low && setpoint == 1 && !countflag){
delay(500);
if (digit1<9){
digit1++;
}
else{
digit1=0;
}
number=string(digit2) + string(digit1);
}
if (change == low && setpoint == 2 && !countflag){
delay(500);
if (digit2<9){
digit2++;
}
else{
digit2=0;
}
number=string(digit2) + string(digit1);
}
//control dot points
if (setpoint==0){
digitalwrite(dotpoint1,low);
digitalwrite(dotpoint2,low);
}
else if (setpoint==1){
digitalwrite(dotpoint1,high);
digitalwrite(dotpoint2,low);
}
else if (setpoint==2){
digitalwrite(dotpoint1,low);
digitalwrite(dotpoint2,high);
}
//////////counter control///////////
if (countflag){
if (countdown>0 && countdown<=10){
countdown--;
delay(1000);
disp.write("0"+string(countdown));
}
else if (countdown>10){
countdown--;
delay(1000);
disp.write(string(countdown));
}
else if (countdown==0){
disp.write("00");
tone(buzzer,600); //play tone
delay(1000);
disp.write(" ");
delay(1000);
}
}
else{
disp.write(number);
}
}
isr( timer2_compa_vect ){
disp.interruptaction ();
}
how can fix it?
//library
#include "sevenseg.h"
//seven seg
sevenseg disp (10,9,8,7,6,11,12); //defines segments a-g: sevenseg(a, b, c, d, e, f, g);
const int numofdigits =2; //number of 7 segments
int digitpins [numofdigits]={4,5}; //cc(or ca) pins of segment
const int buzzer = a2;
//constants
const int startbt = 2;
const int changebt = 3;
const int setbt = 13;
const int dotpoint1=a0; //left digit
const int dotpoint2=a1; //right digit
//variables
string number="00";
int digit1=0;
int digit2=0;
int start, change, set;
int setpoint=0;
int countdown;
//useful flags
boolean countflag=false;
void setup()
{
pinmode (buzzer,output);
pinmode(startbt, input_pullup);
pinmode(changebt, input_pullup);
pinmode(setbt, input_pullup);
pinmode(dotpoint1, output);
pinmode(dotpoint2, output);
//defines number of digits "numofdigits" , digit pins elements of array "digitpins"
disp.setdigitpins ( numofdigits , digitpins );
//only common cathode 7segments
disp.setcommoncathode();
//control brightness (values 0-100);
disp.setdutycycle(60);
disp.settimer(2);
disp.starttimer();
}
void loop()
{
//read buttons state
start = digitalread(startbt);
change = digitalread(changebt);
set = digitalread(setbt);
if (set == low && !countflag){
delay(500);
if (setpoint<2){
setpoint++;
}
else{
setpoint=0;
}
}
//start counting...
if (start == low && setpoint==0
){
delay(500);
if (!countflag){
countflag=true;
countdown = number.toint();
}
else{
countflag=false;
}
}
if (change == low && setpoint == 1 && !countflag){
delay(500);
if (digit1<9){
digit1++;
}
else{
digit1=0;
}
number=string(digit2) + string(digit1);
}
if (change == low && setpoint == 2 && !countflag){
delay(500);
if (digit2<9){
digit2++;
}
else{
digit2=0;
}
number=string(digit2) + string(digit1);
}
//control dot points
if (setpoint==0){
digitalwrite(dotpoint1,low);
digitalwrite(dotpoint2,low);
}
else if (setpoint==1){
digitalwrite(dotpoint1,high);
digitalwrite(dotpoint2,low);
}
else if (setpoint==2){
digitalwrite(dotpoint1,low);
digitalwrite(dotpoint2,high);
}
//////////counter control///////////
if (countflag){
if (countdown>0 && countdown<=10){
countdown--;
delay(1000);
disp.write("0"+string(countdown));
}
else if (countdown>10){
countdown--;
delay(1000);
disp.write(string(countdown));
}
else if (countdown==0){
disp.write("00");
tone(buzzer,600); //play tone
delay(1000);
disp.write(" ");
delay(1000);
}
}
else{
disp.write(number);
}
}
isr( timer2_compa_vect ){
disp.interruptaction ();
}
please use code tags when posting code. please post entire error message.
Arduino Forum > Using Arduino > Programming Questions > collect2.exe: error: ld returned 1 exit status
arduino
Comments
Post a Comment