Test mbed1.
TPM_init.cpp@0:7ac9830cbaa5, 2014-03-12 (annotated)
- Committer:
- mja054
- Date:
- Wed Mar 12 06:32:33 2014 +0000
- Revision:
- 0:7ac9830cbaa5
Test mbed1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mja054 | 0:7ac9830cbaa5 | 1 | #include "TPM_init.h" |
mja054 | 0:7ac9830cbaa5 | 2 | |
mja054 | 0:7ac9830cbaa5 | 3 | void TPM0_init(unsigned int modulo_val, unsigned int prescale_val){ |
mja054 | 0:7ac9830cbaa5 | 4 | |
mja054 | 0:7ac9830cbaa5 | 5 | SIM->SOPT2 |= SIM_SOPT2_PLLFLLSEL_MASK; |
mja054 | 0:7ac9830cbaa5 | 6 | SIM->SOPT2 &= ~(SIM_SOPT2_TPMSRC_MASK); |
mja054 | 0:7ac9830cbaa5 | 7 | SIM->SOPT2 |= SIM_SOPT2_TPMSRC(1); |
mja054 | 0:7ac9830cbaa5 | 8 | |
mja054 | 0:7ac9830cbaa5 | 9 | SIM->SCGC6 |= SIM_SCGC6_TPM0_MASK; |
mja054 | 0:7ac9830cbaa5 | 10 | |
mja054 | 0:7ac9830cbaa5 | 11 | //Set all bits to zero |
mja054 | 0:7ac9830cbaa5 | 12 | TPM0->SC = 0x0; |
mja054 | 0:7ac9830cbaa5 | 13 | |
mja054 | 0:7ac9830cbaa5 | 14 | //Reset COUNT value to zero |
mja054 | 0:7ac9830cbaa5 | 15 | TPM0->CNT = 0x0; |
mja054 | 0:7ac9830cbaa5 | 16 | |
mja054 | 0:7ac9830cbaa5 | 17 | //Set modulo value |
mja054 | 0:7ac9830cbaa5 | 18 | TPM0->MOD = modulo_val; |
mja054 | 0:7ac9830cbaa5 | 19 | |
mja054 | 0:7ac9830cbaa5 | 20 | //Set prescale value |
mja054 | 0:7ac9830cbaa5 | 21 | TPM0->SC |= prescale_val; |
mja054 | 0:7ac9830cbaa5 | 22 | |
mja054 | 0:7ac9830cbaa5 | 23 | //Enable overflow interrupt |
mja054 | 0:7ac9830cbaa5 | 24 | TPM0->SC |= TPM_SC_TOIE_MASK; |
mja054 | 0:7ac9830cbaa5 | 25 | } |
mja054 | 0:7ac9830cbaa5 | 26 | |
mja054 | 0:7ac9830cbaa5 | 27 | unsigned int TPM0_SC_read() { |
mja054 | 0:7ac9830cbaa5 | 28 | unsigned int SC_value = TPM0->SC; |
mja054 | 0:7ac9830cbaa5 | 29 | return SC_value; |
mja054 | 0:7ac9830cbaa5 | 30 | } |
mja054 | 0:7ac9830cbaa5 | 31 | unsigned int TPM0_CNT_read() { |
mja054 | 0:7ac9830cbaa5 | 32 | unsigned int CNT_value = TPM0->CNT; |
mja054 | 0:7ac9830cbaa5 | 33 | return CNT_value; |
mja054 | 0:7ac9830cbaa5 | 34 | } |
mja054 | 0:7ac9830cbaa5 | 35 | |
mja054 | 0:7ac9830cbaa5 | 36 | void TPM0_clear_overflow() { |
mja054 | 0:7ac9830cbaa5 | 37 | TPM0->SC |= TPM_SC_TOF_MASK; |
mja054 | 0:7ac9830cbaa5 | 38 | } |
mja054 | 0:7ac9830cbaa5 | 39 | |
mja054 | 0:7ac9830cbaa5 | 40 | void TPM0_start() { |
mja054 | 0:7ac9830cbaa5 | 41 | |
mja054 | 0:7ac9830cbaa5 | 42 | TPM0->SC |= TPM_SC_CMOD(1); |
mja054 | 0:7ac9830cbaa5 | 43 | } |