Changes between Version 5 and Version 6 of SujetTP6-2016


Ignore:
Timestamp:
Mar 18, 2016, 11:25:06 AM (9 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SujetTP6-2016

    v5 v6  
    1616
    1717{{{#!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
     27unsigned int waitFor(int timer, unsigned long period){
     28  static unsigned long waitForTimer[MAX_WAIT_FOR_TIMER];
     29  unsigned long newTime = micros() / period;
    2230  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;
    2633  return delta;
    2734}
     
    3441void Led(int timer, long period, int led) {
    3542  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
    3744  digitalWrite(13,val);
    3845  val = 1 - val;
     
    4047
    4148void Mess(int timer, long period, const char * mess) {
    42   if (!waitFor(timer,period)) return;
     49  if (!(waitFor(timer,period))) return;
    4350  Serial.println(mess);
    4451}
    4552
    4653void 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
    4956}
    5057}}}
     58
    5159== Lecture de la luminosité ==
     60
    5261
    5362== Communication nRF24L01+ ==
     
    8594     de la nouvelle bibliothèque.
    8695   * 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
     104RF24 radio(9,10); // radio(CE,CS)
     105
     106byte addresses[][6] = {"0Node"};
     107
     108void 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
     117void 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