#pragma GCC optimize ("Og")
#include "ArduinoTrace.h"
//volatile byte d1=47,d2=14,v1; //8 bits sin signo
volatile byte d1=47,d2=13,v1; //8 bits sin signo
//volatile byte d1=32,d2=14,v1; //8 bits sin signo
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("INICIO");
String msg = "";
Serial.println("Entrar dato1: ");
while (msg == "")
{
msg = readSerialMsg();
}
d1 = msg.toInt();
msg = "";
Serial.println("Entrar dato2: ");
while (msg == "")
{
msg = readSerialMsg();
}
d2 = msg.toInt();
asm(
"lds r11,d1 \n"
"ldi r21, 32 \n"
"cp r21,r11 \n"
"brsh L10 \n" // branch to l10 if r21>=r11 <--> if 32>=d1
"rjmp L20 \n" // branch to L20 if not <--> d1>32
//else
"L10: \n "
"ldi r21, 0x0D \n"
"sts v1,r21 \n" // v1 =13
"rjmp L40 \n"
//if d1>32 = true then
"L20: \n"
"ldi r21, 0x0D \n"
"lds r12, d2 \n"
"cp r21,r12 \n"
"brsh L10 \n" // branch to l10 if r21>=r12 <--> if 13>=d2
"rjmp L30 \n" // branch to L30 if not <--> d2>13
//if d1>32 and d2>13 = TRUE
"L30: \n"
"ldi r21, 0x05 \n"
"sts v1,r21 \n" //v1 = 5
"L40: "
::: "r21","r11","r12"
);
DUMP(d1);
DUMP(d2);
DUMP(v1);
}
void loop() {
}
String readSerialMsg()
{
String message="";
char incomingChar;
while (Serial.available())
{
char incomingChar = Serial.read();
if (incomingChar != '\n'){
message += String(incomingChar);
}
else{
return message;
}
delay(1);
}
return "";
}