Проблема в том, что вы пытаетесь присвоить временное значение / значение. Назначение в C требует lvalue. Я предполагаю, что подпись вашей buttonPushed
функции, по сути, следующая
int buttonPushed(int pin);
Здесь функция buttonPushed
возвращает копию найденной кнопки, которую не имеет смысла назначать. Чтобы вернуть реальную кнопку против копии, вам нужно использовать указатель.
int* buttonPushed(int pin);
Теперь вы можете сделать свой код назначения следующим
int* pTemp = buttonPushed(analogPin);
*pTemp = tmp;
Здесь присвоение находится в местоположении, которое является lvalue и будет допустимым