00001
00011
00012
00013
00014
00015 #ifndef _PSC_DRV_H_
00016 #define _PSC_DRV_H_
00017
00018
00019
00020
00024
00025
00029
00033 #define Psc_set_module_A(sa_val,ra_val,sb_val) \
00034 POCR0SAH = High(sa_val); \
00035 POCR0SAL = Low(sa_val); \
00036 POCR0RAH = High(ra_val); \
00037 POCR0RAL = Low(ra_val); \
00038 POCR0SBH = High(sb_val); \
00039 POCR0SBL = Low(sb_val);
00041
00045 #define Psc_set_module_B(sa_val,ra_val,sb_val) \
00046 POCR1SAH = High(sa_val); \
00047 POCR1SAL = Low(sa_val); \
00048 POCR1RAH = High(ra_val); \
00049 POCR1RAL = Low(ra_val); \
00050 POCR1SBH = High(sb_val); \
00051 POCR1SBL = Low(sb_val);
00053
00057 #define Psc_set_module_C(sa_val,ra_val,sb_val) \
00058 POCR2SAH = High(sa_val); \
00059 POCR2SAL = Low(sa_val); \
00060 POCR2RAH = High(ra_val); \
00061 POCR2RAL = Low(ra_val); \
00062 POCR2SBH = High(sb_val); \
00063 POCR2SBL = Low(sb_val);
00065
00069 #define Psc_set_register_RB(rb_val) \
00070 POCR_RBH = High(rb_val); \
00071 POCR_RBL = Low(rb_val);
00073
00077 #define Psc_enable_all_outputs() \
00078 POC = (1<<POEN2B)| \
00079 (1<<POEN2A)| \
00080 (1<<POEN1B)| \
00081 (1<<POEN1A)| \
00082 (1<<POEN0B)| \
00083 (1<<POEN0A);
00085
00086
00087
00091 #define Psc_select_outputs(val2B,val2A,val1B,val1A,val0B,val0A) \
00092 POC = (val2B<<POEN2B)| \
00093 (val2A<<POEN2A)| \
00094 (val1B<<POEN1B)| \
00095 (val1A<<POEN1A)| \
00096 (val0B<<POEN0B)| \
00097 (val0A<<POEN0A);
00099
00100
00104 #define Psc_run() \
00105 PCTL = (PSC_PRESCALER<<PPRE0)| \
00106 (PSC_CLOCK_SOURCE<<PCLKSEL)| \
00107 (0<<PCCYC)| \
00108 (1<<PRUN);
00110
00114 #define Psc_stop() \
00115 PCTL = (PSC_PRESCALER<<PPRE0)| \
00116 (PSC_CLOCK_SOURCE<<PCLKSEL)| \
00117 (0<<PCCYC)| \
00118 (0<<PRUN);
00120
00124 #define Psc_complete_and_stop() \
00125 PCTL = (PSC_PRESCALER<<PPRE0)| \
00126 (PSC_CLOCK_SOURCE<<PCLKSEL)| \
00127 (1<<PCCYC)| \
00128 (0<<PRUN);
00130
00134 #define Psc_config() \
00135 PCNF = (0<<PULOCK)| \
00136 (PSC_MODE<<PMODE)| \
00137 (PSC_OUTPUT_B_POLARITY<<POPB)| \
00138 (PSC_OUTPUT_A_POLARITY<<POPA);
00140
00144 #define Psc_lock() \
00145 PCNF = (1<<PULOCK)| \
00146 (PSC_MODE<<PMODE)| \
00147 (PSC_OUTPUT_B_POLARITY<<POPB)| \
00148 (PSC_OUTPUT_A_POLARITY<<POPA);
00150
00154 #define Psc_unlock() \
00155 PCNF = (0<<PULOCK)| \
00156 (PSC_MODE<<PMODE)| \
00157 (PSC_OUTPUT_B_POLARITY<<POPB)| \
00158 (PSC_OUTPUT_A_POLARITY<<POPA);
00160
00164 #define Psc_config_input_0(v1,v2,v3,v4,v5,v6)\
00165 PMIC0 = ((v1)<<POVEN0)| \
00166 ((v2)<<PISEL0)| \
00167 ((v3)<<PELEV0)| \
00168 ((v4)<<PFLTE0)| \
00169 ((v5)<<PAOC0)| \
00170 ((v6)<<PRFM00);
00172
00176 #define Psc_config_input_1(v1,v2,v3,v4,v5,v6)\
00177 PMIC1 = ((v1)<<POVEN1)| \
00178 ((v2)<<PISEL1)| \
00179 ((v3)<<PELEV1)| \
00180 ((v4)<<PFLTE1)| \
00181 ((v5)<<PAOC1)| \
00182 ((v6)<<PRFM10);
00184
00188 #define Psc_config_input_2(v1,v2,v3,v4,v5,v6)\
00189 PMIC2 = ((v1)<<POVEN2)| \
00190 ((v2)<<PISEL2)| \
00191 ((v3)<<PELEV2)| \
00192 ((v4)<<PFLTE2)| \
00193 ((v5)<<PAOC2)| \
00194 ((v6)<<PRFM20);
00196
00197
00198
00199
00200 #define PSC_MODE_ONE_RAMP 0
00201 #define PSC_MODE_CENTERED 1
00202
00203 #define PSC_OUTPUT_LOW 0
00204 #define PSC_OUTPUT_HIGH 1
00205
00206 #define PSC_CLOCK_SOURCE_EQ_CLKIO 0
00207 #define PSC_CLOCK_SOURCE_EQ_PLL 1
00208
00209 #define PSC_NODIV_CLOCK 0
00210 #define PSC_DIV_CLOCK_BY_4 1
00211 #define PSC_DIV_CLOCK_BY_32 2
00212 #define PSC_DIV_CLOCK_BY_256 3
00213
00214
00215 #define PSC_OVERLAP_DISABLE 0
00216 #define PSC_OVERLAP_ENABLE 1
00217
00218 #define PSC_USE_PIN 0
00219 #define PSC_USE_COMPARATOR 1
00220
00221 #define PSC_USE_LOW_LEVEL 0
00222 #define PSC_USE_HIGH_LEVEL 1
00223
00224 #define PSC_INPUT_FILTER_DISABLE 0
00225 #define PSC_INPUT_FILTER_ENABLE 1
00226
00227 #define PSC_ASYNCHRONOUS_OUTPUT_CONTROL 0
00228 #define PSC_SYNCHRONOUS_OUTPUT_CONTROL 1
00229
00230 #define PSC_INPUT_NO_ACTION 0
00231 #define PSC_DISACTIVATE_OUTPUT_A 1
00232 #define PSC_DISACTIVATE_OUTPUT_B 2
00233 #define PSC_DISACTIVATE_OUTPUT_AB 3
00234 #define PSC_DISACTIVATE_ALL_OUTPUTS 4
00235 #define PSC_INPUT_HALT 6
00236
00237
00238
00239
00240
00244
00246 void init_psc(void);
00247
00249
00251
00252 #endif // _PSC_DRV_H_
00253