app3 prob
Dependencies: mbed
main.cpp
- Committer:
- RufflesAllD
- Date:
- 2014-02-07
- Revision:
- 0:6517bada7928
- Child:
- 1:cb05875a0960
File content as of revision 0:6517bada7928:
#include "mbed.h" Serial pc(USBTX, USBRX); DigitalIn in(p29); bool trame[16] = {false, true, false, true, true, true, true, false, false, false, true, false, false, true, true, true}; void ThatsTheSpirit() { pc.printf("Duree impulsion : %d microsecondes.\n\r", LPC_TIM2->CR1/(SystemCoreClock/1000000)); LPC_TIM2->TC = 0; LPC_TIM2->PC = 0; LPC_TIM2->PR = 0; LPC_TIM2->IR = 0xFF; } void SendMessage() { LPC_SC->PCONP |= (1 << 6); // Enable power on PWM1 LPC_SC->PCLKSEL0 |= (3 << 12); // Run PWM1 LPC_PINCON->PINSEL4 |= (1 << 2); LPC_PINCON->PINMODE3 |= (2 << 14) | (2 << 8); LPC_PWM1->MCR |= (0 << 8) | ( 0 << 7) | (0 << 6) | (1 << 1); LPC_PWM1->CTCR |= (0 << 0); LPC_PWM1->PCR |= (1 << 12) | (1 << 10) | (1 << 4) | (1 << 2); LPC_PWM1->MR0 = SystemCoreClock/8; LPC_PWM1->LER |= (0x6); LPC_PWM1->TCR |= (0x9); for (int a = 0; a < 16; a++) { if (trame[a]) { LPC_PWM1->MR1 = 0; LPC_PWM1->MR2 = SystemCoreClock/16; } else { LPC_PWM1->MR1 = SystemCoreClock/16; LPC_PWM1->MR2 = 0; } pc.printf("trame: %d\n\r", trame[a]); wait(1); } } int main() { SendMessage(); /*LPC_PINCON->PINSEL0 |= 0xF00; NVIC_SetVector(TIMER2_IRQn, uint32_t(ThatsTheSpirit)); LPC_SC->PCONP |= (1 << 22); LPC_SC->PCLKSEL1 |= (1 << 12); LPC_TIM2->TC = 0; // Initialise Time Counter LPC_TIM2->PC = 0; // Initialise Prescale Counter LPC_TIM2->PR = 0; // Initialise Prescale Register LPC_TIM2->TCR = 0x02; // Reset Timer Control Register LPC_TIM2->IR = 0xFF; // Initialise Interrupt Register LPC_TIM2->CCR |= 0x29; // Initialise Capture Control Register LPC_TIM2->TCR = 0x01; // Start Timer Control Register while(1) { while (in.read() == 0); NVIC_EnableIRQ(TIMER2_IRQn); NVIC_DisableIRQ(TIMER2_IRQn); while (in.read() == 1); NVIC_EnableIRQ(TIMER2_IRQn); NVIC_DisableIRQ(TIMER2_IRQn); }*/ }