===== LGT8F328P MCU =====
==== PortD pins ====
* PD0 (pin 16): digital I/O pin
* PD1 (pin 15): digital I/O pin
* PD2 (pin 14): digital I/O pin
* PD3 (pin 13): digital I/O pin
* PD4 (pin 12): digital I/O pin
* PD5 (pin 11): digital I/O pin
* PD6 (pin 10): digital I/O pin
* PD7 (pin 9): digital I/O pin
//thank you, ChatGPT//
* [[https://ceptimus.co.uk/index.php/2022/06/29/lgt8f328p-isp-programming/|In Circuit Programming]]
* for some reason the chip ran at 1/2 speed when doing this but the same chip ran at normal (32MHz) speed when using the bootloader. No fuses (that I know of) were changed. (???)
* [[https://github.com/dbuezas/lgt8fx/tree/master/lgt8f/libraries/lgt_LowPower|low power mode with the arduino framework]]
==== In Circuit Programming with CLion and PlatformIO ====
* add this to .platformio.ini:
[env:program_via_ArduinoISP]
platform = lgt8f
framework = arduino
board = lgt8f328p-LQFP48
upload_protocol = custom
upload_port = /dev/ttyACM*
upload_speed = 19200
upload_flags =
-v
-V
-C
$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
-p
$BOARD_MCU
-P
$UPLOAD_PORT
-c
stk500v1
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
* then choose ''update platforms, toolchains, etc.'' for the new environment to be recognized/loaded by CLion
==== Memory ====
If using ISP and you run out of memory you can overwrite the bootloader if you wish (and I wish because I did). In ''boards.txt'' change ''328.upload.maximum_size=29696'' to ''328.upload.maximum_size=30720''
==== Random ====
* software reset:
VDTCR = 0x80; // make register writeable for a short time
VDTCR = 0x00; // clear bit 6