/* * clock - my 60-LED clock by LPC810 * by uratan! 2020.6.17 */ /* * what is 'clock' for ? */ This firmware makes a LED circle clock with NeoPixel 1/4 60 Ring (adafruit) and LPC810. /* * I/O pin usage * pin#3: PIO0_3 (output) - drive WS2812B (GPIO or SPI) * pin#4: PIO0_2 (input) - U1_RxD from Ir receiver * pin#5: PIO0_1 (input) - CLKIN from external X'tal */ /* * how to use ? */ You can control it with Ir transceiver - IrT. (See above web page for detail) There is single push-SW only. +---------------------------------------------------+ | | | /***** mode change by LONG_PUSH *****/ | V | +--------+ +--------+ +--------+ +--------+ | | clock |---->| change |---->| change |---->| change |--+ | mode | | origin | | hour | | minute | +--------+ +--------+ +--------+ +--------+ | | | | (change) ( inc ) ( inc ) ( inc ) ( color) (origin) ( hour ) (minute) /******* action by SHORT_PUSH *******/ You shall setup current time everytime power-on. /* * FILES */ 00README.txt --- this file Makefile --- Makefile for make.exe link.awk --- a AWK script to generate linker script Startup.S --- CPU start up main.c --- main entry common.h --- system shared difinitions common.c --- system shared functions (uart) rprintf.c --- simple printf() (from sample of WinARM_20060606.zip) clock.c --- jobs as a clock drive.c --- drive WS2812B, by SPI or GPIO uart1.c --- handle uart1 to get Ir signal 60clock-0NN.hex --- hex file image made Compiler used is gcc-4.7.1(2012-0616) from yagarto You may need sh.exe and rm.exe, seek it from web please. (see also https://sourceforge.net/projects/yagarto/files/) Get LPC810 related definitions from: lpcopen_2_01_lpcxpresso_nxp_lpcxpresso_812.zip (LPCXpresso v6.1.0_164, LPCOpen 2.xx software package for LPCXpresso LPC812 boead) then place lpc_chip_8xx_lib/inc/ to ../chip-inc/. Don't you have GNU awk ? use this. -- uratan@miomio.jp