Changes between Version 5 and Version 6 of SujetTP6-2016
- Timestamp:
- Mar 18, 2016, 11:25:06 AM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SujetTP6-2016
v5 v6 16 16 17 17 {{{#!c 18 #define MAXTIMER 16 19 long waitForTimer[MAXTIMER]; 20 int waitFor(int timer, long period){ 21 long newTime = micros() / period; 18 // unsigned int waitFor(timer, period) 19 // Timer pour taches périodique 20 // arguments : 21 // - timer : numéro de timer entre 0 et MAX_WAIT_FOR_TIMER-1 22 // - period : période souhaitée 23 // retour : 24 // - nombre de période écoulée depuis le dernier appel 25 // 26 #define MAX_WAIT_FOR_TIMER 16 27 unsigned int waitFor(int timer, unsigned long period){ 28 static unsigned long waitForTimer[MAX_WAIT_FOR_TIMER]; 29 unsigned long newTime = micros() / period; 22 30 int delta = newTime - waitForTimer[timer]; 23 if ( delta ) { 24 waitForTimer[timer] = newTime; 25 } 31 if ( delta < 0 ) delta += 1 + (0xFFFFFFFF / period); 32 if ( delta ) waitForTimer[timer] = newTime; 26 33 return delta; 27 34 } … … 34 41 void Led(int timer, long period, int led) { 35 42 static int val = 0; 36 if (!waitFor(timer,period)) return; 43 if (!waitFor(timer,period)) return; // sort s'il y a moins d'une période écoulée 37 44 digitalWrite(13,val); 38 45 val = 1 - val; … … 40 47 41 48 void Mess(int timer, long period, const char * mess) { 42 if (! waitFor(timer,period)) return;49 if (!(waitFor(timer,period))) return; 43 50 Serial.println(mess); 44 51 } 45 52 46 53 void loop() { 47 Led (0,100000,13); 48 Mess(1,1000000,"bonjour"); 54 Led (0,100000,13); // Led est exécutée toutes les 100ms 55 Mess(1,1000000,"bonjour"); // Mess est exécutée toutes les secondes 49 56 } 50 57 }}} 58 51 59 == Lecture de la luminosité == 60 52 61 53 62 == Communication nRF24L01+ == … … 85 94 de la nouvelle bibliothèque. 86 95 * Vous en choisissez un, vous le chargez, vous le compilez, vous l'uploadez, vous le testez :-) 96 97 === Communication de base Sensor - BaseSensor === 98 99 - **sensor** 100 {{{#!c 101 #include <SPI.h> 102 #include "RF24.h" 103 104 RF24 radio(9,10); // radio(CE,CS) 105 106 byte addresses[][6] = {"0Node"}; 107 108 void setup() { 109 Serial.begin(115200); 110 radio.begin(); 111 radio.setPALevel(RF24_PA_LOW); 112 radio.openWritingPipe(addresses[0]); 113 radio.printDetails(); 114 } 115 116 117 void loop() { 118 Serial.println(F("Now sending")); 119 120 unsigned long start_time = millis(); // Take the time, and send it. This will block until complete 121 if (!radio.write( &start_time, sizeof(unsigned long) )){ 122 Serial.println(F("failed")); 123 } 124 125 delay(1000); 126 } 127 }}} 128 129