EDF - OnePIC MCU  Beta
8bit/OnePIC_timer.c
Go to the documentation of this file.
00001 
00011 #include "OnePIC_timer.h"
00012 #include <stdint.h>
00013 #include "Compiler.h"
00014 #include "int.h"
00015 
00021 void EDF_TMR_ClockSourceSelect(TMR_MODULE_ID index, EDF_TMR_CLOCK_SOURCE source) {
00022     switch (index) {
00023         case TMR_1:
00024             T1CONbits.TMR1CS = source;
00025             T1GCONbits.TMR1GE = 0;
00026             break;
00027         case TMR_2:
00028             T2CONbits.TMR2ON = source;
00029             break;
00030         default:
00031             break;
00032     }
00033 }
00034 
00039 void EDF_TMR_StopInIdleDisable(TMR_MODULE_ID index) {
00040     switch (index) {
00041         case TMR_1:
00042             // Unused in P16
00043             break;
00044         default:
00045             break;
00046     }
00047 }
00048 
00053 void EDF_TMR_GateDisable(TMR_MODULE_ID index) {
00054     switch (index) {
00055         case TMR_1:
00056             T1GCONbits.TMR1GE = 0;
00057             break;
00058         default:
00059             break;
00060     }
00061 }
00062 
00068 void EDF_TMR_PrescalerSet(TMR_MODULE_ID index, EDF_TMR_PRESCALE prescaler) {
00069     switch (index) {
00070         case TMR_0:
00071             OPTION_REGbits.PS = prescaler;
00072             break;
00073         case TMR_1:
00074             T1CONbits.T1CKPS = prescaler;
00075             break;
00076         case TMR_2:
00077             T2CONbits.T2CKPS = prescaler;
00078             break;
00079         case TMR_4:
00080             T4CONbits.T4CKPS = prescaler;
00081             break;
00082         case TMR_6:
00083             T6CONbits.T6CKPS = prescaler;
00084             break;
00085         default:
00086             break;
00087     }
00088 }
00089 
00094 void EDF_TMR_Start(TMR_MODULE_ID index) {
00095     switch (index) {
00096         case TMR_1:
00097             T1CONbits.TMR1ON = 1;
00098             break;
00099         case TMR_2:
00100             T2CONbits.TMR2ON = 1;
00101             break;
00102         case TMR_4:
00103             T4CONbits.TMR4ON = 1;
00104             break;
00105         case TMR_6:
00106             T6CONbits.TMR6ON = 1;
00107             break;
00108         default:
00109             break;
00110     }
00111 }
00112 
00117 void EDF_TMR_Stop(TMR_MODULE_ID index) {
00118     switch (index) {
00119         case TMR_1:
00120             T1CONbits.TMR1ON = 0;
00121             break;
00122         case TMR_2:
00123             T2CONbits.TMR2ON = 0;
00124             break;
00125         case TMR_4:
00126             T4CONbits.TMR4ON = 0;
00127             break;
00128         case TMR_6:
00129             T6CONbits.TMR6ON = 0;
00130             break;
00131         default:
00132             break;
00133     }
00134 }
00135 
00141 void EDF_TMR_CounterSet(TMR_MODULE_ID index, uint16_t value) {
00142     switch (index) {
00143         case TMR_1:
00144             EDF_TMR_Stop(index);
00145             TMR1H = (value & 0xFF00) >> 8;
00146             TMR1L = (value & 0x00FF);
00147             EDF_TMR_Start(index);
00148             break;
00149         case TMR_2:
00150             EDF_TMR_Stop(index);
00151             PR2 = value;
00152             EDF_TMR_Start(index);
00153             break;
00154         case TMR_4:
00155             EDF_TMR_Stop(index);
00156             PR4 = value;
00157             EDF_TMR_Start(index);
00158             break;
00159         case TMR_6:
00160             EDF_TMR_Stop(index);
00161             PR6 = value;
00162             EDF_TMR_Start(index);
00163             break;
00164         default:
00165             break;
00166     }
00167 }