MKL27Z touch
This commit is contained in:
@@ -24,42 +24,6 @@ static struct TPM *const TPM1 = (struct TPM *const)0x40039000;
|
|||||||
static chopstx_intr_t tpm1_intr;
|
static chopstx_intr_t tpm1_intr;
|
||||||
#define INTR_REQ_TPM1 18
|
#define INTR_REQ_TPM1 18
|
||||||
|
|
||||||
void
|
|
||||||
touch_init (void)
|
|
||||||
{
|
|
||||||
chopstx_claim_irq (&tpm1_intr, INTR_REQ_TPM1);
|
|
||||||
|
|
||||||
PORTB->PCR1 = (1<<3) /* TPM1_CH1 */
|
|
||||||
| (0<<6) /* DriveStrengthEnable=0 */
|
|
||||||
| (0<<4) /* PassiveFilterEnable=0 */
|
|
||||||
| (1<<2) /* SlewRateEnable = slow */
|
|
||||||
| (0<<1) /* pull enable = 0 */
|
|
||||||
| (0<<0) /* puddselect= 0 */
|
|
||||||
;
|
|
||||||
|
|
||||||
/* TOF clear, TOIE=1, CPWMS=0, CMOD=1, PS=000. */
|
|
||||||
TPM1->SC = 0xc4;
|
|
||||||
|
|
||||||
/* Input capture mode: MSB = 0, MSA = 0 */
|
|
||||||
/* Rising edge: ELSB=0 ELSA=1 */
|
|
||||||
TPM1->C1SC = 0x82;
|
|
||||||
TPM1->POL=0;
|
|
||||||
|
|
||||||
/* Triggered by TPM1_CH1. */
|
|
||||||
/* channel 1: TRGSEL=0010 */
|
|
||||||
/* external: TRGSRC=0 */
|
|
||||||
/* active low:TRGPOL=1 */
|
|
||||||
/* stop on overflow: CSOO=1 */
|
|
||||||
/* start on trigger: CSOT=1 */
|
|
||||||
TPM1->CONF = 0x02c30000;
|
|
||||||
|
|
||||||
/* Wait overflow. */
|
|
||||||
chopstx_intr_wait (&tpm1_intr);
|
|
||||||
|
|
||||||
/* Clear overflow. */
|
|
||||||
TPM1->SC |= 0x80;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t
|
uint16_t
|
||||||
touch_get (void)
|
touch_get (void)
|
||||||
{
|
{
|
||||||
@@ -87,3 +51,28 @@ touch_get (void)
|
|||||||
|
|
||||||
return TPM1->C1V;
|
return TPM1->C1V;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
touch_init (void)
|
||||||
|
{
|
||||||
|
chopstx_claim_irq (&tpm1_intr, INTR_REQ_TPM1);
|
||||||
|
|
||||||
|
/* TOF clear, TOIE=1, CPWMS=0, CMOD=1, PS=000. */
|
||||||
|
TPM1->SC = 0xc4;
|
||||||
|
|
||||||
|
/* Input capture mode: MSB = 0, MSA = 0 */
|
||||||
|
/* Rising edge: ELSB=0 ELSA=1 */
|
||||||
|
TPM1->C1SC = 0x82;
|
||||||
|
TPM1->POL=0;
|
||||||
|
|
||||||
|
/* Triggered by TPM1_CH1. */
|
||||||
|
/* channel 1: TRGSEL=0010 */
|
||||||
|
/* external: TRGSRC=0 */
|
||||||
|
/* active low:TRGPOL=1 */
|
||||||
|
/* stop on overflow: CSOO=1 */
|
||||||
|
/* start on trigger: CSOT=1 */
|
||||||
|
TPM1->CONF = 0x02c30000;
|
||||||
|
|
||||||
|
touch_get ();
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user