EDF - OnePIC MCU
v1.1.0
|
00001 00011 #include "OnePIC_timer.h" 00012 #include <stdint.h> 00013 #include "Compiler.h" 00014 #include "OnePIC_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 }