16f1827を32MHzで動かす時の技術メモ



OSCCONで

IRCF<3:0>に"1110"をセットしただけでは8MHz動作

PLLをオンにしないと32MHz動作にはならない

簡単にやるにはSPLLENのフラグを立てる


つまり、

OSCCON=0b11110000;


で32MHz動作となる


CONFIG2の"PLLEN_OFF","PLLEN_ON"に関係なくSPLLENに1をセットしてやればいいみたい。



delayは1命令サイクルあたり125nsだから、TMR0を使って、PSを256にすると


125ns * 256 / 4 = 8000ns = 8us * 125 = 1000us = 1ms


でループで回してTMR0と比較してやれば、1msのdelayができる