FDxICSP 1.73 - 17.3kBs Atmega328p - Optimization, interrupt timer and Advanced bug fixed AVR AVR910
V1.73: 17.3kB/s Atmega328p (new Record)
V1.70: 15.1kB/s Atmega328p
31736/1.83=17342
31736/1.37=23164
New:
1,Solving an advanced problem with 2 lines of code, You truly need to fully understand every single tiny bit of thing before you could even figure out this bug, and yet finding this solution as perfect as this is yet another joy that is priceless. While the previous solution works, it's considered very dumb at this point. This allows absolutely 4MHz SCK with no error!!
2, added an interrupt timer to keep track of flash writing in combination with the 2 flash busy polling. Flash page write time is about 4.5-5ms, now 2 flash pollings and 1 interrupt timer are used to time it. The timer will only be used if the polling failed, so it's used as a redundancy measure in case there are a 3rd polling requirement for untested MCU.
Note: screen recording reduce the upload speed a little, and there is a 1 byte readback error that only occurs when it's in screen recording mode, so AVRdude is very slow.
To do task:
--Add EEPROM support (DONE)
--Add Delay_timer (Not needed now)
--Add Auto detection when plug in
--Add watchdog timer (Not needed now)
--Add LED code
--Add create a timer delay for flash write variation (Not needed now)