In the last article I reviewed the remote control based on the RC5 protocol, here I’m going to describe how I added it to my audio-amplifier.

Have to say, unlike usually, I did not meet any issues with this, so just describing the process.
Firstly, I moved the encoder button from RB0 to other pin and changed the interruption type. Here how it looks like:
if (RBIF) {
GIE = 0;
__delay_ms(100); //software antibouncing
if (!ebutton) { //interruption happened AND our button has been pressed
...
Then, we need to add the IR commands handler to the main cycle, here we go:
if (bytecount>13)
{
GIE = 0;
if (oldtogglebit != togglebit) //one button press - one command
{
printf("\r\nPressed button is %d", IRbyte);
switch(IRbyte)
{
case 10 : if (!muteIR) //muting from remote
{
itemp = 0;
volume_flag = 0;
mute_status = 0;
mute();
muteIR = 1;
} else
{
TRISB2 = 1;
TRISB1 = 1;
volume_flag = 1;
bass_flag = 0;
treble_flag = 0;
menu(0);
muteIR = 0;
}
break;
case 16 : IRcom = 16; //right
break;
case 17 : IRcom = 17; //left
break;
case 13 : IRcom = 13; //Enter
break;
case 32 : IRcom = 32; //Up
break;
case 33 : IRcom = 33;
break;
case 41 : IRcom = 41; //exit
break;
case 43 : IRcom = 43; //volume+
break;
case 44 : IRcom = 44; //volume-
break;
}
}
IRbyte = 0;
bytecount=0;
INTEDG = 0;
buffer = 0;
oldtogglebit = togglebit;
GIE = 1;
}That’s basically it, other commands added in a similar way.