app3 prob

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }