
Projet S5 Lecture de l'accelerometre avec interruption
Dependencies: mbed PowerControl
Fork of Projet_S5 by
Diff: main.cpp
- Revision:
- 12:16390cea4420
- Parent:
- 11:9c0786fc06b4
- Child:
- 13:d25fe10677e8
--- a/main.cpp Tue Apr 08 13:46:22 2014 +0000 +++ b/main.cpp Thu Apr 10 18:39:16 2014 +0000 @@ -1,6 +1,8 @@ #include "accelerometer.h" #include "analyzer.h" #include "interrupt.h" +#include <iostream> +#include <fstream> Serial pc(USBTX, USBRX); DigitalOut led1(LED1); @@ -8,8 +10,11 @@ DigitalOut led4(LED4); DigitalIn button(p30); +LocalFileSystem local("local"); + void *accelerometer = Accelerometer_C_new(); void *analyzer = Analyzer_C_new(); + bool rebound = true; bool appuyer = false; @@ -30,14 +35,14 @@ LPC_TIM2->MCR = 0; LPC_TIM2->CCR = (0x06 << 0); //falling edge - LPC_TIM3->TC = 0; // clear timer counter - LPC_TIM3->PC = 0; // clear prescale counter - LPC_TIM3->PR = 0; // clear prescale register - LPC_TIM3->IR |= 0xFF; - LPC_TIM3->TCR = 0x01; //enable timer 3 + LPC_TIM1->TC = 0; // clear timer counter + LPC_TIM1->PC = 0; // clear prescale counter + LPC_TIM1->PR = 0; // clear prescale register + LPC_TIM1->IR |= 0xFF; + LPC_TIM1->TCR = 0x01; //enable timer 3 appuyer = true; - NVIC_EnableIRQ(TIMER3_IRQn); // Enable timer3 interrupt + NVIC_EnableIRQ(TIMER1_IRQn); // Enable TIMER1 interrupt signed char* values = Accelerometer_C_getAccelValue(accelerometer); @@ -49,15 +54,15 @@ led1 = 0; LPC_TIM2->CCR = (5 << 0); //rising edge - LPC_TIM3->TC = 0; // clear timer counter - LPC_TIM3->PC = 0; // clear prescale counter - LPC_TIM3->PR = 0; // clear prescale register - LPC_TIM3->IR |= 0xFF; - LPC_TIM3->TCR = 0; //disable timer 3 + LPC_TIM1->TC = 0; // clear timer counter + LPC_TIM1->PC = 0; // clear prescale counter + LPC_TIM1->PR = 0; // clear prescale register + LPC_TIM1->IR |= 0xFF; + LPC_TIM1->TCR = 0; //disable timer 3 appuyer = false; rebound = true; - NVIC_DisableIRQ(TIMER3_IRQn); // Disable timer3 interrupt + NVIC_DisableIRQ(TIMER1_IRQn); // Disable TIMER1 interrupt Analyzer_C_checkMouvement(analyzer); } @@ -83,7 +88,7 @@ delete values; } - LPC_TIM3->IR |= 0xFF; // Reset timer + LPC_TIM1->IR |= 0xFF; // Reset timer } void initialize() @@ -111,29 +116,55 @@ NVIC_SetVector(TIMER2_IRQn, uint32_t(interruptCapture)); // TIMER 3 - LPC_SC->PCONP |= 1 << 23; // Timer3 power on + //LPC_SC->PCONP |= 1 << 23; // TIMER3 power on - LPC_TIM3->MCR = 3; // Interrupt and reset control - LPC_TIM3->TC = 0; // clear timer counter - LPC_TIM3->PC = 0; // clear prescale counter - LPC_TIM3->PR = 0; // clear prescale register - LPC_TIM3->MR0 = SystemCoreClock / 20; + LPC_TIM1->MCR = 3; // Interrupt and reset control + LPC_TIM1->TC = 0; // clear timer counter + LPC_TIM1->PC = 0; // clear prescale counter + LPC_TIM1->PR = 0; // clear prescale register + LPC_TIM1->MR0 = SystemCoreClock / 100; - LPC_TIM3->IR |= 0xFF; // Clear MR0 interrupt flag - LPC_TIM3->TCR = (1 << 1); // Reset Timer3 - LPC_TIM3->TCR = 0; // Disable timer + LPC_TIM1->IR |= 0xFF; // Clear MR0 interrupt flag + LPC_TIM1->TCR = (1 << 1); // Reset TIMER1 + LPC_TIM1->TCR = 0; // Disable timer - //NVIC_EnableIRQ(TIMER3_IRQn); // Enable timer3 interrupt - NVIC_SetVector(TIMER3_IRQn, uint32_t(interruptMatch)); + //NVIC_EnableIRQ(TIMER1_IRQn); // Enable TIMER1 interrupt + NVIC_SetVector(TIMER1_IRQn, uint32_t(interruptMatch)); } int main() { - initialize(); + string line; + string filename = "/local/config.txt"; - pc.printf("\n\rReady"); + ifstream myfile(filename.c_str()); - while(true) + if (myfile.is_open()) { + while (getline(myfile,line)) + { + if (line[0] != '#') + { + // Find hand + if (line.find("Hand") != string::npos) + { + if (line.compare(5,6,"L") == 0) + Analyzer_C_setHand(true, analyzer); + else + Analyzer_C_setHand(false, analyzer); + } + } + } + + myfile.close(); + + initialize(); + pc.printf("\n\rReady"); + + while(true) + { + } } + + return 0; }