From ba136d2375a013b5472208dc4f4617f6c656e8f8 Mon Sep 17 00:00:00 2001 From: "R. Steve McKown" Date: Tue, 6 Dec 2011 11:36:13 -0700 Subject: [PATCH] Run at Fosc = 4MHz * Run on internal oscillator at 4 MHz * Get rid of the RUNAT32MHz definition * Adjust PWM for ~ 1 kHz frequency, at Fosc = 4 MHz * Loop processing <= 12 ms, out of a period of 32 ms --- main.c | 2 -- picinit.c | 14 ++------------ picinit.h | 6 +----- rgb.c | 9 +++++---- 4 files changed, 8 insertions(+), 23 deletions(-) diff --git a/main.c b/main.c index ec3d425..e00cdbc 100644 --- a/main.c +++ b/main.c @@ -25,8 +25,6 @@ * */ -#define RUNAT32MHZ /* else 16 MHz */ - #include #include #include "picinit.h" diff --git a/picinit.c b/picinit.c index 40843b2..4274e2a 100644 --- a/picinit.c +++ b/picinit.c @@ -7,23 +7,13 @@ #include -#define RUNAT32MHZ /* else 16 MHz */ - -#if defined(RUNAT32MHZ) __CONFIG(WDTE_OFF & FOSC_INTOSC); -__CONFIG(LVP_OFF & PLLEN_ON); -#else -__CONFIG(WDTE_OFF); __CONFIG(LVP_OFF); -#endif void pic_init() { -#if defined(RUNAT32MHZ) - OSCCON = 0b11110000; -#else /* 16 MHz */ - OSCCON = 0b01111010; -#endif + /* Setting below must match _XTAL_FREQ in picinit.h */ + OSCCON = 0b01101000; /* OSCSTAT.HFIOFL is set when oscillator is locked (accurate within 2%) */ while (!HFIOFL); diff --git a/picinit.h b/picinit.h index c349b9c..e2a50cf 100644 --- a/picinit.h +++ b/picinit.h @@ -7,11 +7,7 @@ #ifndef _PICINIT_H #define _PICINIT_H -#if defined(RUNAT32MHZ) -#define _XTAL_FREQ 32000000 -#else -#define _XTAL_FREQ 16000000 -#endif +#define _XTAL_FREQ 4000000 void pic_init(); diff --git a/rgb.c b/rgb.c index 5fb2849..43fec9e 100644 --- a/rgb.c +++ b/rgb.c @@ -13,10 +13,10 @@ void rgb_init() { /* Initialize rgb * CCP1 on RB3, CCP2 on RA7, CCP3 on RA3, CCP4 on RA4 - * - Fosc = 32MHz - * - Prescale = 16 + * - Fosc = 8 MHz, 4 MHz + * - Prescale = 4, 4 * - PRx value = 0xff - * = f(rgb) = 1.95 kHz + * = f(rgb) = 1.95 kHz, 0.98 kHz */ /* Set rgb Rxn pins as outputs. */ @@ -46,7 +46,8 @@ void rgb_init() CCPTMRS = 0; /* All CCPx use Timer 2 */ TMR2IF = 0; PR2 = 0xff; - T2CON = 0b00000011; + + T2CON = 0b00000001; } void rgb_off() -- 2.39.2