#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);
void setup() {
lcd.begin(16,2);
lcd.println("DISPLAY VOLUME");
DDRD &= ~(1<<2); //btns
PORTD |= 1<<2;
DDRD &= ~(1<<3);
PORTD |= 1<<3;
//rgb
DDRD |= 1<<4;
DDRD |= 1<<5;
DDRD |= 1<<6;
EIMSK |= 1<<INT0;
SREG |= 1<<7;
EICRA |= 1<<ISC01;
EICRA &= ~(1<<ISC00);
//pre INT1
EIMSK |= 1<<INT1;
SREG |= 1<<7;
EICRA |= 1<<ISC11;
EICRA &= ~(1<<ISC10);
}
int volume = 50;
void loop() {
if(volume<10)
{
PORTD |= 1<<4; //red
PORTD |= 1<<5;
PORTD &= ~(1<<6);
}
else
{
PORTD |= 1<<4; //green
PORTD &= ~(1<<5);
PORTD |= 1<<6;
}
}
ISR(INT0_vect)
{
if(volume>0)
{
volume = volume - 10;
lcd.clear();
if(volume == 0)
{
lcd.println("VOLUME MUTE");
}
else
{
lcd.print("VOLUME: ");
lcd.print(volume);
}
}
}
ISR(INT1_vect)
{
if(volume<100)
{
volume = volume + 10;
lcd.clear();
if(volume == 100)
{
lcd.println("VOLUME MAX");
}
else
{
lcd.print("VOLUME: ");
lcd.print(volume);
}
}
}