Menu

Someone Convert C Codes Arduino Assembly Language Atmel Studio 7 Include Include Liquidcry Q43877794

Can someone convert these C++ codes (Arduino) intoassembly language (Atmel Studio 7)?

#include<Wire.h>

#include<LiquidCrystal_I2C.h>

LiquidCrystal_I2Clcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

//TEMP SENSOR

const int sensor=A1; // Assigning analog pin A5 tovariable ‘sensor’

float tempc; //variable to store temperature in degreeCelsius

float tempf; //variable to store temperature inFahreinheit

float vout; //temporary variable to hold sensorreading

//FLOWRATE

byte statusLed    = 13;

byte sensorInterrupt = 0;  // 0 = digital pin2

byte sensorPin       = 2;

float calibrationFactor = 4.5;

volatile byte pulseCount;  

float flowRate;

unsigned int flowMilliLitres;

unsigned long totalMilliLitres;

unsigned long oldTime;

void setup() 

{

  //temperature sensor

   pinMode(sensor,INPUT); //Configuring sensor pin as input

   Serial.begin(9600);

  //lcd

    lcd.begin(16,2);

    lcd.setCursor(0,0); //column0,row 0

    lcd.print(“MCTE2332”);

    pinMode(13,OUTPUT);

    pinMode(8,OUTPUT);

    pinMode(10,OUTPUT);

  //FLOWRATE

    Serial.begin(38400);

    pinMode(statusLed,OUTPUT);

    digitalWrite(statusLed,HIGH);  // We have an active-low LED attached

    pinMode(sensorPin, INPUT);

    digitalWrite(sensorPin,HIGH);

    int pulseCount       = 0;

    int flowRate         = 0.0;

    int flowMilliLitres   =0;

    int totalMilliLitres  =0;

    int oldTime          = 0;

  // The Hall-effect sensor is connected topin 2 which uses interrupt 0.

  // Configured to trigger on a FALLINGstate change (transition from HIGH

  // state to LOW state)

    attachInterrupt(sensorInterrupt,pulseCounter, FALLING);

}

void loop() 

{

  //TEMP

  vout=analogRead(sensor); //Reading thevalue from sensor

  vout=(vout*500)/1023;

  tempc=vout; // Storing value in DegreeCelsius

  tempf=(vout*1.8)+32; // Converting toFahrenheit

  Serial.print(“in DegreeC=”);

  Serial.print(“t”);

  Serial.print(tempc);

  Serial.print(” “);

  Serial.print(“in Fahrenheit=”);

  Serial.print(“t”);

  Serial.print(tempf);

  Serial.println();

  delay(500); //Delay of 1 second for easeof viewing

  //FLOWRATE

   if((millis() – oldTime) >1000)    // Only process counters once per second

  { 

    // Disable the interrupt whilecalculating flow rate and sending the value to

    // the host

    detachInterrupt(sensorInterrupt);

        

    // Because this loop may notcomplete in exactly 1 second intervals we calculate

    // the number of millisecondsthat have passed since the last execution and use

    // that to scale the output.We also apply the calibrationFactor to scale the output

    // based on the number ofpulses per second per units of measure (litres/minute in

    // this case) coming from thesensor.

    flowRate = ((1000.0 /(millis() – oldTime)) * pulseCount) / calibrationFactor;

    

    // Note the time thisprocessing pass was executed. Note that because we’ve

    // disabled interrupts themillis() function won’t actually be incrementing right

    // at this point, but it willstill return the value it was set to just before

    // interrupts went away.

    oldTime = millis();

    

    // Divide the flow rate inlitres/minute by 60 to determine how many litres have

    // passed through the sensorin this 1 second interval, then multiply by 1000 to

    // convert to millilitres.

    flowMilliLitres = (flowRate /60) * 1000;

    

    // Add the millilitres passedin this second to the cumulative total

    totalMilliLitres +=flowMilliLitres;

      

    unsigned int frac;

    

    // Print the flow rate forthis second in litres / minute

    Serial.print(“Flow rate:”);

    Serial.print(int(flowRate));  // Printthe integer part of the variable

    Serial.print(“.”);            // Print the decimal point

    // Determine the fractionalpart. The 10 multiplier gives us 1 decimal place.

    frac = (flowRate -int(flowRate)) * 10;

    Serial.print(frac, DEC);      // Print the fractional part of thevariable

    Serial.print(“L/min”);

    // Print the number of litresflowed in this second

    Serial.print(”  CurrentLiquid Flowing: “);             //Output separator

    Serial.print(flowMilliLitres);

    Serial.print(“mL/Sec”);

    // Print the cumulative totalof litres flowed since starting

    Serial.print(”  OutputLiquid Quantity: “);             //Output separator

    Serial.print(totalMilliLitres);

    Serial.println(“mL”); 

    // Reset the pulse counter sowe can start incrementing again

    pulseCount = 0;

    

    // Enable the interrupt againnow that we’ve finished sending output

    attachInterrupt(sensorInterrupt,pulseCounter, FALLING);

  }

  

  //LCD

  lcd.setCursor(0,0);

  lcd.print(“FLOWRATE: “);

  lcd.print(flowRate);

  lcd.setCursor(0,1);

  lcd.print(“TEMP: “);

  lcd.print(tempc);

  lcd.print((char)223);

  lcd.print(“C”);

  //ORANGE LED

  if(flowRate>0)

    digitalWrite(10,HIGH);

  else if (flowRate<=0)

    digitalWrite(10,LOW);

    

  //GREEN LED

  if(tempc>25)

    digitalWrite(8,HIGH); 

  else

    digitalWrite(8,LOW);

  //RED LED

  if(digitalRead(10)==HIGH &&digitalRead(8)==HIGH )

    digitalWrite(13, HIGH);

  else 

    digitalWrite(13, LOW);

    

}

void pulseCounter()

{

  // Increment the pulse counter

  pulseCount++;

}

Expert Answer


Answer to Can someone convert these C++ codes (Arduino) into assembly language (Atmel Studio 7)? #include #include LiquidCrystal_I…

OR