app3 prob
Dependencies: mbed
main.cpp@0:6517bada7928, 2014-02-07 (annotated)
- Committer:
- RufflesAllD
- Date:
- Fri Feb 07 20:16:21 2014 +0000
- Revision:
- 0:6517bada7928
- Child:
- 1:cb05875a0960
app3 problematique
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RufflesAllD | 0:6517bada7928 | 1 | #include "mbed.h" |
RufflesAllD | 0:6517bada7928 | 2 | |
RufflesAllD | 0:6517bada7928 | 3 | Serial pc(USBTX, USBRX); |
RufflesAllD | 0:6517bada7928 | 4 | DigitalIn in(p29); |
RufflesAllD | 0:6517bada7928 | 5 | |
RufflesAllD | 0:6517bada7928 | 6 | bool trame[16] = {false, true, false, true, true, true, true, false, false, false, true, false, false, true, true, true}; |
RufflesAllD | 0:6517bada7928 | 7 | |
RufflesAllD | 0:6517bada7928 | 8 | void ThatsTheSpirit() { |
RufflesAllD | 0:6517bada7928 | 9 | |
RufflesAllD | 0:6517bada7928 | 10 | pc.printf("Duree impulsion : %d microsecondes.\n\r", LPC_TIM2->CR1/(SystemCoreClock/1000000)); |
RufflesAllD | 0:6517bada7928 | 11 | |
RufflesAllD | 0:6517bada7928 | 12 | LPC_TIM2->TC = 0; |
RufflesAllD | 0:6517bada7928 | 13 | LPC_TIM2->PC = 0; |
RufflesAllD | 0:6517bada7928 | 14 | LPC_TIM2->PR = 0; |
RufflesAllD | 0:6517bada7928 | 15 | LPC_TIM2->IR = 0xFF; |
RufflesAllD | 0:6517bada7928 | 16 | } |
RufflesAllD | 0:6517bada7928 | 17 | |
RufflesAllD | 0:6517bada7928 | 18 | void SendMessage() { |
RufflesAllD | 0:6517bada7928 | 19 | |
RufflesAllD | 0:6517bada7928 | 20 | LPC_SC->PCONP |= (1 << 6); // Enable power on PWM1 |
RufflesAllD | 0:6517bada7928 | 21 | LPC_SC->PCLKSEL0 |= (3 << 12); // Run PWM1 |
RufflesAllD | 0:6517bada7928 | 22 | |
RufflesAllD | 0:6517bada7928 | 23 | LPC_PINCON->PINSEL4 |= (1 << 2); |
RufflesAllD | 0:6517bada7928 | 24 | LPC_PINCON->PINMODE3 |= (2 << 14) | (2 << 8); |
RufflesAllD | 0:6517bada7928 | 25 | |
RufflesAllD | 0:6517bada7928 | 26 | LPC_PWM1->MCR |= (0 << 8) | ( 0 << 7) | (0 << 6) | (1 << 1); |
RufflesAllD | 0:6517bada7928 | 27 | LPC_PWM1->CTCR |= (0 << 0); |
RufflesAllD | 0:6517bada7928 | 28 | LPC_PWM1->PCR |= (1 << 12) | (1 << 10) | (1 << 4) | (1 << 2); |
RufflesAllD | 0:6517bada7928 | 29 | |
RufflesAllD | 0:6517bada7928 | 30 | LPC_PWM1->MR0 = SystemCoreClock/8; |
RufflesAllD | 0:6517bada7928 | 31 | LPC_PWM1->LER |= (0x6); |
RufflesAllD | 0:6517bada7928 | 32 | LPC_PWM1->TCR |= (0x9); |
RufflesAllD | 0:6517bada7928 | 33 | |
RufflesAllD | 0:6517bada7928 | 34 | for (int a = 0; a < 16; a++) { |
RufflesAllD | 0:6517bada7928 | 35 | if (trame[a]) { |
RufflesAllD | 0:6517bada7928 | 36 | LPC_PWM1->MR1 = 0; |
RufflesAllD | 0:6517bada7928 | 37 | LPC_PWM1->MR2 = SystemCoreClock/16; |
RufflesAllD | 0:6517bada7928 | 38 | } else { |
RufflesAllD | 0:6517bada7928 | 39 | LPC_PWM1->MR1 = SystemCoreClock/16; |
RufflesAllD | 0:6517bada7928 | 40 | LPC_PWM1->MR2 = 0; |
RufflesAllD | 0:6517bada7928 | 41 | } |
RufflesAllD | 0:6517bada7928 | 42 | |
RufflesAllD | 0:6517bada7928 | 43 | pc.printf("trame: %d\n\r", trame[a]); |
RufflesAllD | 0:6517bada7928 | 44 | |
RufflesAllD | 0:6517bada7928 | 45 | wait(1); |
RufflesAllD | 0:6517bada7928 | 46 | } |
RufflesAllD | 0:6517bada7928 | 47 | } |
RufflesAllD | 0:6517bada7928 | 48 | |
RufflesAllD | 0:6517bada7928 | 49 | int main() { |
RufflesAllD | 0:6517bada7928 | 50 | |
RufflesAllD | 0:6517bada7928 | 51 | SendMessage(); |
RufflesAllD | 0:6517bada7928 | 52 | |
RufflesAllD | 0:6517bada7928 | 53 | /*LPC_PINCON->PINSEL0 |= 0xF00; |
RufflesAllD | 0:6517bada7928 | 54 | NVIC_SetVector(TIMER2_IRQn, uint32_t(ThatsTheSpirit)); |
RufflesAllD | 0:6517bada7928 | 55 | |
RufflesAllD | 0:6517bada7928 | 56 | LPC_SC->PCONP |= (1 << 22); |
RufflesAllD | 0:6517bada7928 | 57 | LPC_SC->PCLKSEL1 |= (1 << 12); |
RufflesAllD | 0:6517bada7928 | 58 | |
RufflesAllD | 0:6517bada7928 | 59 | |
RufflesAllD | 0:6517bada7928 | 60 | LPC_TIM2->TC = 0; // Initialise Time Counter |
RufflesAllD | 0:6517bada7928 | 61 | LPC_TIM2->PC = 0; // Initialise Prescale Counter |
RufflesAllD | 0:6517bada7928 | 62 | LPC_TIM2->PR = 0; // Initialise Prescale Register |
RufflesAllD | 0:6517bada7928 | 63 | LPC_TIM2->TCR = 0x02; // Reset Timer Control Register |
RufflesAllD | 0:6517bada7928 | 64 | LPC_TIM2->IR = 0xFF; // Initialise Interrupt Register |
RufflesAllD | 0:6517bada7928 | 65 | LPC_TIM2->CCR |= 0x29; // Initialise Capture Control Register |
RufflesAllD | 0:6517bada7928 | 66 | |
RufflesAllD | 0:6517bada7928 | 67 | LPC_TIM2->TCR = 0x01; // Start Timer Control Register |
RufflesAllD | 0:6517bada7928 | 68 | |
RufflesAllD | 0:6517bada7928 | 69 | while(1) { |
RufflesAllD | 0:6517bada7928 | 70 | |
RufflesAllD | 0:6517bada7928 | 71 | while (in.read() == 0); |
RufflesAllD | 0:6517bada7928 | 72 | |
RufflesAllD | 0:6517bada7928 | 73 | NVIC_EnableIRQ(TIMER2_IRQn); |
RufflesAllD | 0:6517bada7928 | 74 | NVIC_DisableIRQ(TIMER2_IRQn); |
RufflesAllD | 0:6517bada7928 | 75 | |
RufflesAllD | 0:6517bada7928 | 76 | while (in.read() == 1); |
RufflesAllD | 0:6517bada7928 | 77 | |
RufflesAllD | 0:6517bada7928 | 78 | NVIC_EnableIRQ(TIMER2_IRQn); |
RufflesAllD | 0:6517bada7928 | 79 | NVIC_DisableIRQ(TIMER2_IRQn); |
RufflesAllD | 0:6517bada7928 | 80 | }*/ |
RufflesAllD | 0:6517bada7928 | 81 | } |