#pragma GCC optimize (-O0)
#include "ArduinoTrace.h"
volatile byte Rojo;
volatile byte Verde;
volatile byte Azul;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//ToDo:--------------config---------------------------------
asm volatile // Pull Out resisor para los pines 2 y 7 del puerto D
(
"in r16, 0x0B \n"
"ori r16, 0x84 \n"
"out 0x0B, r16"
);
asm volatile // Pull Out resistor para el pin 5 del puerto C
(
"sbi 0x08, 5"
);
asm volatile // Configurar como salida los pines 4 y 6 del puerto D
(
"in r17, 0x0A \n"
"ori r17, 0x50 \n"
"out 0x0A, r17"
);
asm volatile // Configurar como salida el pin 0 del puerto B
(
"sbi 0x04, 0"
);
//----------------------------------------------------
}
void loop() {
// put your main code here, to run repeatedly:
asm volatile // Asilar el Pin 7 del puerto D y guardarlo en la variable "Rojo"
(
"in r16, 0x09 \n"
"andi r16, 0x80 \n"
"sts Rojo, r16"
);
asm volatile // Asilar el Pin 2 del puerto D y guardarlo en la variable "Verde"
(
"in r17, 0x09 \n"
"andi r17, 0x04 \n"
"sts Verde, r17"
);
asm volatile // Asilar el Pin 5 del puerto B y guardarlo en la variable "Azul"
(
"in r18, 0x06 \n"
"andi r18, 0x20 \n"
"sts Azul, r18"
);
//ToDo:-------------red led----------------------------
if(Rojo==0)
{
asm volatile //Si el pulsador rojo esta oprimido, mandar un 1 al pin 0 del puerto C
(
"sbi 0x05, 0"
);
}
else
{
asm volatile //Mandar un 0 al pin 0 del puerto C
(
"cbi 0x05, 0"
);
}
//-----------------------------------------------------
//ToDo:-------------green led--------------------------
if(Verde==0)
{
asm volatile //Si el pulsador verde esta oprimido, mandar un 1 al pin 6 del puerto D
(
"sbi 0x0B, 6"
);
}
else
{
asm volatile //Mandar un 0 al pin 6 del puerto D
(
"cbi 0x0B, 6"
);
}
//-----------------------------------------------------
//ToDo:-------------blue led---------------------------
if(Azul==0)
{
asm volatile //Si el pulsador rojo esta oprimido, mandar un 1 al pin 4 del puerto D
(
"sbi 0x0B, 4"
);
}
else
{
asm volatile //Mandar un 0 al pin 4 del puerto D
(
"cbi 0x0B, 4"
);
}
//-----------------------------------------------------
}