#include #include "hw_rng.h" void hwrng_init( ) { char save = SFRPAGE; SFRPAGE = TMR3_PAGE; RCAP3L = 0x00; RCAP3H = 0x00; TMR3CF = 0x08; /* no special features, clock divider = 1 */ TMR3CN = 0x04; /* enable timer3 in auto-reload mode */ SFRPAGE = save; } unsigned short hwrng_random( ) { unsigned short ret; char save = SFRPAGE; SFRPAGE = TMR3_PAGE; ret = (TMR3H << 8) | (TMR3L); SFRPAGE = save; return ret; }