In my code for the multimeter I used switch case, to make a menu of sorts, with the pressing of the button driving the change of the value and through that it would change the different function being used.
Of the different features I designed for the board, I got Voltage measurement, current measurement and short circuit check to work.
I was also looking into using the standby features in the ATmega32 chip I had, After all the idea the was to have a multimeter similar to current ones, so it would have to nod off unless it is being used actively. But it proved to be a complicated feature to use in the time I had to solve it.
Also turns out I made my solution too integrated, and the different features interfered with eachother to some degree. I would need to develope further variants of the board trying to find more effective solution for switching the feature being used. But the goal still should be to produce a multimeter that one could just solder together and push in the program.
In writing the program for the board there was a good deal of math involved. For the voltage measurement I needed the values of the resistors I used in soldering the board, and the chip doesnt directly give you the voltage value it sees, instead you get a analog value in range of 0-1023 and you need to convert that to volts.
For the ACS712 chip the math was bit more complicated, but the page I used to help me figure it out had a good example I was able to use.
Since I am using a barebones chip, I need to use a custom library for the arduino IDE to properly program it, I have explained the way to add custom libraries to Arduino IDE in week 15 For this chip the necessary library was the Mighty core Meaning you would need to add https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
to the Arduino IDE boards manager.
Also the routine for programming the board with AVR dude has been covered in the week 15 page.
For programming the use of the ACS712 sensor, I found an excellent tutorial online. Henry's Bench - ACS712 tutorial While he is using a dedicated breakout board for the purpose, the code is identical to what I needed for using the chip on my board.
After seeing how troublesome the LCD could be to get to work during the course I was pleased that I got it to work in short order and did not need to use excessive amount of time to utilize it. It took a while to figure out how the use of the cursor worked The arduino tutorial for the display helped a good deal.