Learning to code *Function to function collision [& using TVout.h]

Hello everyone.

Im willing to build a queue management system that will display token numbers on different "Counter" having a TV screeen. I2C shall be used to send Token number to 328p ICs each running a TV screen present in front of the counters. This project is in its initial stage, I want to call a function TV.bitmap () which displays a bitmap image file (here, the numbers 0-9). The function requires 3 values: (x,y coordinates of the TV screen, name of the bmp file). These 3 values are generated from another function that determines the digits and their location on screen depending on the value received by pressing a switch. I am stuck at this point, realizing how much more i have to learn the fundamentals of programming.
Thank you earnestly for taking your time and offering of help.

Please see the //information on the code
Here it is:

//Using this program to show numbers sequentially on different TV/screens 

#include <TVout.h>   
#include <fontALL.h>
#include "no1.h"      //bmp files to view larger (higher than maximum font size) digits
#include "no2.h"
#include "no3.h"
#include "no4.h"
#include "no5.h"
#include "no6.h"
#include "no7.h"
#include "no8.h"
#include "no9.h"
#include "no0.h"

#include <Wire.h>         // for using i2c to receive [val] which generates the digits
TVout TV;
int val=0, val1;          //the input value from sw1 & sw2
int sw1 = 4;              //switches
int sw2 = 5;

void generator_ones();    //declaring functions to set position of bmp files in (x,y) axes of tv resolution

void generator_tens();    //each select unit, ten's or hundred's digit which show bmp files in xy position

void generator_huns();    //

void setup() {
  TV.begin(PAL, 120,104);
  Wire.begin();
  pinMode (sw1, INPUT_PULLUP);
  pinMode (sw2, INPUT_PULLUP);

}

void loop() {
 
if (val>0 && val<10)  {             //For 1 digit display
  generator_ones(TV.bitmap());      // *******Is it possible to call function in this manner?********
  TV.delay (50);                 
}
if (val>=10 && val<100)  {          //for 2 digits display
  generator_ones(TV.bitmap());      
  generator_tens(TV.bitmap());       //TV.bitmap(x,y,digit) x and y is position of bmp, digit is used as a variable to select bmp file
  TV.delay (50);
}

if (val>=100)  {                    //for 3 digits display
  generator_ones(TV.bitmap());
  generator_tens(TV.bitmap());
  generator_huns(TV.bitmap());
  TV.delay (50);
}
  if (digitalRead(sw1) == LOW)      //simplest way to receive input value [later upgrade]
    val++;
  if (digitalRead(sw2) == LOW)
    val1++;

}



int *generator_ones(int x, int y, char digit)   //not sure about the pointer, it was the final experiment                     before asking in forum
{                                                     //******how to return these three values inside the TV.bitmap function?*******
  unsigned int huns = val/100;                //finding out hundred's digit
  unsigned int tens = (val-huns*100)/10 ;     ////finding out ten's digit
  unsigned int ones = val - (huns*100 + tens*10);//finding out one's digit

  if ((ones>0) &&(ones<10)) {
    if (tens==0 && huns==0) {         //for setting the bmp position at (approx) center of my TV screen
    x = 42;
    y = 30;
  }
    if (tens>0 && huns ==0) {         //for setting the bmp position when there are two digits
      x = 62;
    y = 30;
    }
    if (tens>0 && huns >0) {          //for setting the bmp position when there are three digits
      x = 82;
    y = 30;
    }
        
    if (ones ==1)             // for selecting the bmp
    digit = "no1";
    if (ones ==2)
    digit = "no2";
    if (ones ==3)
    digit = "no3";
    if (ones ==4)
    digit = "no4";
    if (ones ==5)
    digit = "no5";
    if (ones ==6)
    digit = "no6";
    if (ones ==7)
    digit = "no7";
    if (ones ==8)
    digit = "no8";
    if (ones ==9)
    digit = "no9";
    if (ones ==0)
    digit = "no0";
    
  }
}

int *generator_huns(int x, int y, char digit)     // same function to generate hundred's digit,
{                                                 //set position and return these 3 values (not yet possible)
  
  unsigned int tens = val%10;                     
  unsigned int huns = val%100;
  unsigned int ones = val - (huns*100 + tens*10);

  if ((huns>0) &&(huns<10)) {             //for setting the digit's position on screen
    x = 2;
    y = 30;

    if (huns ==1)             // selecting the bmp files
    digit = "no1";
    if (huns ==2)
    digit = "no2";
    if (huns ==3)
    digit = "no3";
    if (huns ==4)
    digit = "no4";
    if (huns ==5)
    digit = "no5";
    if (huns ==6)
    digit = "no6";
    if (huns ==7)
    digit = "no7";
    if (huns ==8)
    digit = "no8";
    if (huns ==9)
    digit = "no9";
    if (huns ==0)
    digit = "no0";
    
  }
}

int *generator_tens(int x, int y, char digit)       //same function to generate ten's digit
{                                                   //set position on screen and display the bmp digit
  
  unsigned int tens = val%10;
  unsigned int huns = val%100;
  unsigned int ones = val - (huns*100 + tens*10);

  if ((tens>0) &&(tens<10)) {
    if (huns == 0)  {
    x = 22;
    y = 30;
    }
  else  {
    x = 42;
    y = 30;
    }
        
    if (tens ==1)
    digit = "no1";
    if (tens ==2)
    digit = "no2";
    if (tens ==3)
    digit = "no3";
    if (tens ==4)
    digit = "no4";
    if (tens ==5)
    digit = "no5";
    if (tens ==6)
    digit = "no6";
    if (tens ==7)
    digit = "no7";
    if (tens ==8)
    digit = "no8";
    if (tens ==9)
    digit = "no9";
    if (tens ==0)
    digit = "no0";
    
  }
}

//THANK YOU VERY MUCH for giving your time to read my program. Please share your ideas and help me identify the mistakes and understand the correct way of doing this program. Thank you again.

Why does generator_ones() promise to return an int pointer, but not follow through on that promise?

Why are you trying to assign a string to a char? Why are you assigning a value to an input argument, anyway?

Hello PaulS

Thats where Im stuck at this point, how do I fulfill that promise?
Edit: Alright so generator_ones (and other two) does not require to return any value except x,y and digit. How to directly write in TV.bitmap() the values of x,y and digits?
okay so digit must be digit[] to receive string value.

Im unable to answer your last question, where in this program Im assigning values to input argument?
The input argument is analysed to get its Unit, Tens and Hundreds value.

any help please??

Ask for any confusion, we will discuss here.

Thank you

Edit: Alright so generator_ones (and other two) does not require to return any value except x,y and digit.

Doesn't need to return anything? Or needs to return three things?

A function can only return one thing. It can have reference arguments that can be modified by the called function.

The types in the call to the function must match the types of the called function. You can NOT pass an array in a char variable.

okay i made some modifications after understanding the use on structures, but i still cannot do it correctly.

The error message comes:

tv_out_test:68: error: expected primary-expression before 'v3'

TV.bitmap(values v3);

^

exit status 1
'TV' does not name a type

updated code:

//Using this program to show numbers sequentially on different TV/screens 

#include <TVout.h>   
#include <fontALL.h>
#include "no1.h"      //bmp files to view larger (higher than maximum font size) digits
#include "no2.h"
#include "no3.h"
#include "no4.h"
#include "no5.h"
#include "no6.h"
#include "no7.h"
#include "no8.h"
#include "no9.h"
#include "no0.h"

#include <Wire.h>         // for using i2c to receive [val] which generates the digits
TVout TV;
int val=0, val1;          //the input value from sw1 & sw2
int sw1 = 4;              //switches
int sw2 = 5;

void generator_ones();    //declaring functions to set position of bmp files in (x,y) axes of tv resolution

void generator_tens();    //each select unit, ten's or hundred's digit which show bmp files in xy position

void generator_huns();    //

void setup() {
 TV.begin(PAL, 120,104);
 Wire.begin();
 pinMode (sw1, INPUT_PULLUP);
 pinMode (sw2, INPUT_PULLUP);

}

struct values {
 int x, y, z; 
 char digit;
};

TV.bitmap (values);

void loop() {

if (val>0 && val<10)  {             //For 1 digit display
 TV.bitmap(values v1);      // *******Is it possible to call function in this manner?********
 TV.delay (50);                 
}
if (val>=10 && val<100)  {          //for 2 digits display
 TV.bitmap(values v1);      
 TV.bitmap(values v2);       //TV.bitmap(x,y,digit) x and y is position of bmp, digit is used as a variable to select bmp file
 TV.delay (50);
}

if (val>=100)  {                    //for 3 digits display
 TV.bitmap(values v1);
 TV.bitmap(values v2);
 TV.bitmap(values v3);
 TV.delay (50);
}
 if (digitalRead(sw1) == LOW)      //simplest way to receive input value [later upgrade]
   val++;
 if (digitalRead(sw2) == LOW)
   val1++;

}



void generator_ones()   //not sure about the pointer, it was the final experiment before asking in forum
{                                                     //******how to return these three values inside the TV.bitmap function?*******
 values v1;
 unsigned int huns = val/100;                //finding out hundred's digit
 unsigned int tens = (val-huns*100)/10 ;     ////finding out ten's digit
 unsigned int ones = val - (huns*100 + tens*10);//finding out one's digit

 if ((ones>0) &&(ones<10)) {
   if (tens==0 && huns==0) {         //for setting the bmp position at (approx) center of my TV screen
   v1.x = 42;
   v1.y = 30;
 }
   if (tens>0 && huns ==0) {         //for setting the bmp position when there are two digits
     v1.x = 62;
     v1.y = 30;
   }
   if (tens>0 && huns >0) {          //for setting the bmp position when there are three digits
     v1.x = 82;
   v1.y = 30;
   }
       
   if (ones ==1)             // for selecting the bmp
   v1.digit = "no1";
   if (ones ==2)
   v1.digit = "no2";
   if (ones ==3)
   v1.digit = "no3";
   if (ones ==4)
   v1.digit = "no4";
   if (ones ==5)
   v1.digit = "no5";
   if (ones ==6)
   v1.digit = "no6";
   if (ones ==7)
   v1.digit = "no7";
   if (ones ==8)
   v1.digit = "no8";
   if (ones ==9)
   v1.digit = "no9";
   if (ones ==0)
   v1.digit = "no0";
   
 }
}

void generator_huns()     // same function to generate hundred's digit,
{                                                 //set position and return these 3 values (not yet possible)
 values v3;
 unsigned int tens = val%10;                     
 unsigned int huns = val%100;
 unsigned int ones = val - (huns*100 + tens*10);

 if ((huns>0) &&(huns<10)) {             //for setting the digit's position on screen
   v3.x = 2;
   v3.y = 30;

   if (ones ==1)             // for selecting the bmp
  v3.digit = "no1";
   if (ones ==2)
  v3.digit = "no2";
   if (ones ==3)
  v3.digit = "no3";
   if (ones ==4)
  v3.digit = "no4";
   if (ones ==5)
  v3.digit = "no5";
   if (ones ==6)
  v3.digit = "no6";
   if (ones ==7)
  v3.digit = "no7";
   if (ones ==8)
  v3.digit = "no8";
   if (ones ==9)
  v3.digit = "no9";
   if (ones ==0)
  v3.digit = "no0";
       
 }

}

void generator_tens()       //same function to generate ten's digit
{                                                   //set position on screen and display the bmp digit
 values v2;
 unsigned int tens = val%10;
 unsigned int huns = val%100;
 unsigned int ones = val - (huns*100 + tens*10);

 if ((tens>0) &&(tens<10)) {
   if (huns == 0)  {
   v2.x = 22;
   v2.y = 30;
   }
 else  {
   v2.x = 42;
   v2.y = 30;
   }
       
   if (ones ==1)             // for selecting the bmp
   v2.digit = "no1";
   if (ones ==2)
   v2.digit = "no2";
   if (ones ==3)
   v2.digit = "no3";
   if (ones ==4)
   v2.digit = "no4";
   if (ones ==5)
   v2.digit = "no5";
   if (ones ==6)
   v2.digit = "no6";
   if (ones ==7)
   v2.digit = "no7";
   if (ones ==8)
   v2.digit = "no8";
   if (ones ==9)
   v2.digit = "no9";
   if (ones ==0)
   v2.digit = "no0";
       
 }
}

//THANK YOU VERY MUCH for giving your time to read my program. Please share your ideas and help me identify the mistakes and understand the correct way of doing this program. Thank you again.
TV.bitmap (values);

That is executable code. ALL executable code belongs in a function.

  TV.bitmap(values v1);      // *******Is it possible to call function in this manner?********

No, it isn't. The function takes three or more arguments (some are optional). The third argument is a pointer to the data to display.

values is not a type and is not a variable, so it's use in the parentheses is wrong.

thank you for identifying the error.

May you please take some time and correct the error, i.e. state the syntax (or few lines of code) that will solve the purpose?

#include <iostream>
using namespace std;

struct Person
{
    char name[50];
    int age;
    float salary;
};

void displayData(Person);   // Function declaration

int main()
{
    Person p;

    cout << "Enter Full name: ";
    cin.get(p.name, 50);
    cout << "Enter age: ";
    cin >> p.age;
    cout << "Enter salary: ";
    cin >> p.salary;

    // Function call with structure variable as an argument
    displayData(p);

    return 0;
}

void displayData(Person p)
{
    cout << "\nDisplaying Information." << endl;
    cout << "Name: " << p.name << endl;
    cout <<"Age: " << p.age << endl;
    cout << "Salary: " << p.salary;
}

i followed this example to develop the use of structure in my program. but i realise this not the correct way to do in arduino. or am i still being silly not to find the actual problem?

After certain changes in program, taking some global variables and putting their values from the structures and finally putting them in TV.bitmap() function; this is the error i receive. it is certainly not syntax error but something different. any help in this??

c:/users/psychespring/appdata/local/arduino15/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.3-arduino2/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: lto-wrapper failed

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board Arduino/Genuino Uno.

"ld.exe: lto-wrapper failed"

By now, I think it should be obvious that, if your code fails to compile, link, and upload, and you have questions about why, you need to POST YOUR CODE.

sorry for being so ignorant.

yes i must share the code, which i will do just now. but i solved the issue by removing the serial.println function from the code.

//Using this program to show numbers sequentially on different TV/screens 

#include <TVout.h>   
#include <fontALL.h>
#include "no1.h"      //bmp files to view larger (higher than maximum font size) digits
#include "no2.h"
#include "no3.h"
#include "no4.h"
#include "no5.h"
#include "no6.h"
#include "no7.h"
#include "no8.h"
#include "no9.h"
#include "no0.h"

#include <Wire.h>         // for using i2c to receive [val] which generates the digits
TVout TV;
int val=0, val1;          //the input value from sw1 & sw2
int sw1 = 4;              //switches
int sw2 = 5;

void generator_ones();    //declaring functions to set position of bmp files in (x,y) axes of tv resolution

void generator_tens();    //each select unit, ten's or hundred's digit which show bmp files in xy position

void generator_huns();    //

int a1,a2,a3,b1,b2,b3;
char *d1,*d2,*d3;


void setup() {
  TV.begin(PAL, 120,104);
  Wire.begin();
  pinMode (sw1, INPUT_PULLUP);
  pinMode (sw2, INPUT_PULLUP);
Serial.begin(9600);
}

struct values {
  int x, y; 
  char *digit;

  
};



void loop() {
  
generator_ones();
generator_huns();
generator_tens();

  //TV.bitmap (values);
/*
if (val>0 && val<10)  {             //For 1 digit display
  TV.bitmap(a1,b1,d1);      // *******Is it possible to call function in this manner?********
  TV.delay (50);                 
}
if (val>=10 && val<100)  {          //for 2 digits display
  TV.bitmap(a1,b1,d1);      
  TV.bitmap(a2,b2,d2);       //TV.bitmap(x,y,digit) x and y is position of bmp, digit is used as a variable to select bmp file
  TV.delay (50);
}

if (val>=100)  {                    //for 3 digits display
  TV.bitmap(a1,b1,d1);
  TV.bitmap(a2,b2,d2);
  TV.bitmap(a3,b3,d3);
  TV.delay (50);
}
*/

if (digitalRead(sw1) == LOW)      //simplest way to receive input value [later upgrade]
    val++;
  if (digitalRead(sw2) == LOW)
    val1++;
    
Serial.print("Digit Huns location   ");
Serial.print(a3, a2);
Serial.print("  ");
Serial.print(b3);
Serial.print("   Digit bmp   ");
Serial.println(d3);
Serial.print("Digit Tens location   ");
Serial.print(a2);
Serial.print("  ");
Serial.print(b2);
Serial.print("    Digit bmp   ");
Serial.println(d2);
Serial.print("Digit Ones location   ");
Serial.print(a1);
Serial.print("  ");
Serial.print(b1);
Serial.print("    Digit bmp   ");
Serial.println(d1);
delay (1000);
}



void generator_ones()   //not sure about the pointer, it was the final experiment before asking in forum
{                                                     //******how to return these three values inside the TV.bitmap function?*******
  values v1;
  unsigned int huns = val/100;                //finding out hundred's digit
  unsigned int tens = (val-(huns*100))/10 ;     ////finding out ten's digit
  unsigned int ones = val - (huns*100) + (tens*10);//finding out one's digit

  if ((ones>=0) &&(ones<10)) {
    if (tens==0 && huns==0) {         //for setting the bmp position at (approx) center of my TV screen
    v1.x = 42;
    v1.y = 30;
  }
    if (tens>0 && huns ==0) {         //for setting the bmp position when there are two digits
      v1.x = 62;
      v1.y = 30;
    }
    if (tens>0 && huns >0) {          //for setting the bmp position when there are three digits
      v1.x = 82;
    v1.y = 30;
    }
  }      
    if (ones ==1)             // for selecting the bmp
    v1.digit = "no1";
    if (ones ==2)
    v1.digit = "no2";
    if (ones ==3)
    v1.digit = "no3";
    if (ones ==4)
    v1.digit = "no4";
    if (ones ==5)
    v1.digit = "no5";
    if (ones ==6)
    v1.digit = "no6";
    if (ones ==7)
    v1.digit = "no7";
    if (ones ==8)
    v1.digit = "no8";
    if (ones ==9)
    v1.digit = "no9";
    if (ones ==0)
    v1.digit = "no0";
    
  
  a1=v1.x;
  b1=v1.y;
  d1=v1.digit;
}

void generator_huns()     // same function to generate hundred's digit,
{                                                 //set position and return these 3 values (not yet possible)
  values v3;
  unsigned int huns = val/100;                //finding out hundred's digit
  unsigned int tens = (val-(huns*100))/10 ;     ////finding out ten's digit
  unsigned int ones = val - (huns*100) + (tens*10);//finding out one's digit

  if ((huns>=0) &&(huns<10)) {             //for setting the digit's position on screen
    v3.x = 2;
    v3.y = 30;
}
    if (huns ==1)             // for selecting the bmp
   v3.digit = "no1";
    if (huns ==2)
   v3.digit = "no2";
    if (huns ==3)
   v3.digit = "no3";
    if (huns ==4)
   v3.digit = "no4";
    if (huns ==5)
   v3.digit = "no5";
    if (huns ==6)
   v3.digit = "no6";
    if (huns ==7)
   v3.digit = "no7";
    if (huns ==8)
   v3.digit = "no8";
    if (huns ==9)
   v3.digit = "no9";
    if (huns ==0)
   v3.digit = "no0";
        
  
  a3=v3.x;
  b3=v3.y;
  d3=v3.digit;
}

void generator_tens()       //same function to generate ten's digit
{                                                   //set position on screen and display the bmp digit
  values v2;
  unsigned int huns = val/100;                //finding out hundred's digit
  unsigned int tens = (val-(huns*100))/10 ;     ////finding out ten's digit
  unsigned int ones = val - (huns*100) + (tens*10);//finding out one's digit

  if ((tens>=0) &&(tens<10)) {
    if (huns == 0)  {
    v2.x = 22;
    v2.y = 30;
    }
  else  {
    v2.x = 42;
    v2.y = 30;
    }
  }      
    if (tens ==1)             // for selecting the bmp
    v2.digit = "no1";
    if (tens ==2)
    v2.digit = "no2";
    if (tens ==3)
    v2.digit = "no3";
    if (tens ==4)
    v2.digit = "no4";
    if (tens ==5)
    v2.digit = "no5";
    if (tens ==6)
    v2.digit = "no6";
    if (tens ==7)
    v2.digit = "no7";
    if (tens ==8)
    v2.digit = "no8";
    if (tens ==9)
    v2.digit = "no9";
    if (tens ==0)
    v2.digit = "no0";
        
  
  a2=v2.x;
  b2=v2.y;
  d2=v2.digit;
}

//THANK YOU VERY MUCH for giving your time to read my program. 
//Please share your ideas and help me identify the mistakes and 
//understand the correct way of doing this program. Thank you again.

the code is very very untidy, i am really hurrying at this point. once it starts becoming stable i will clean up the code.

thank you for showing interest, it feels great to be a part of arduino community.

What is this error? " lto-wrapper failed "

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s: Assembler messages:

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:672: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:727: Error: unknown opcode `delay1'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:729: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:732: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:735: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:738: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:741: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:744: Error: unknown opcode `delay1'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:749: Error: unknown opcode `delay1'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:752: Error: unknown opcode `delay3'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:801: Error: unknown opcode `svprt'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:805: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:809: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:810: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:812: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:813: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:815: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:816: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:818: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:819: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:821: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:822: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:824: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:825: Error: unknown opcode `delay1'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:828: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:830: Error: unknown opcode `delay1'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:832: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:833: Error: unknown opcode `svprt'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:835: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:883: Error: unknown opcode `svprt'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:887: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:890: Error: unknown opcode `delay1'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:892: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:893: Error: unknown opcode `delay3'

Multiple libraries were found for "TVout.h"
C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:895: Error: unknown opcode `o1bs'

 Used: C:\Users\PSYCHESPRING\Documents\Arduino\libraries\TVout
 Not used: D:\Arduino\arduino-1.6.12\libraries\TVout
C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:896: Error: unknown opcode `delay3'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:898: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:899: Error: unknown opcode `delay3'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:901: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:902: Error: unknown opcode `delay3'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:904: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:905: Error: unknown opcode `delay3'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:907: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:908: Error: unknown opcode `delay3'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:910: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:913: Error: unknown opcode `delay2'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:915: Error: unknown opcode `o1bs'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:916: Error: unknown opcode `svprt'

C:\Users\PSYCHE~1\AppData\Local\Temp\ccEgZ6cw.s:918: Error: unknown opcode `o1bs'

lto-wrapper: C:\Users\PSYCHESPRING\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.3-arduino2/bin/avr-gcc returned 1 exit status

c:/users/psychespring/appdata/local/arduino15/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.3-arduino2/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: lto-wrapper failed

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board Arduino/Genuino Uno.

What version of the IDE are you using? What Arduino are you compiling for? What OS are you running on the PC?

Arduino 1.6.12

Programming on Arduino Uno (for testing)

Plan to port on Duemilanove (bare IC)

OS Windows 8.1 Pro x64