I am working to built my own PCB for a heated enclosure using as MCU the ATMEGA328P-PU. The chip software was written using Arduino IDE, and tested using an Arduino Uno (the same board will be used to program the brand new ATMEGA that will be soldered on the board). Now, today I recieved the parts needed for the board, and I noticed that the supplier made an error and the 2 crystals ordered are rated at 14.3 MHz instead of 16 MHz. Now, my question is the following: if I wrote the code in the Arduino IDE , which is rated on 16 MHz, and burn it to a chip that will be soldered on a board which has a 14.3 MHz crystal, will the code work on the new board? Except the update of the delay() and millis() functions accordingly, I need to do any other changes in the code? As a note, the application is not time sensitive, thus I have no problem at all if the heated element temperature is read 1.5 seconds later than expected. The return of the crystals to the supplier is not a solution due to the logistics (5 working days at minimum between the pick-up of the actual crystals and the recieve of the correct ones, and for 2 pieces is not worth the time).