Problemas Libreria time

Hola gente como andan? espero que bien !!

Bueno les paso a comentar que hace poco volvi al entorno arduino.Estoy trabajando en un proyecto de RDS.

La idea es utilizar un NodeMCU para dicho desarrollo.Estoy teniendo algun problema con la funcion time.h

In file included from C:\Users\Teresa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,

                from C:\Users\Teresa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:27,

                from sketch\sketch_dec04a.ino.cpp:1:

C:\Users\Teresa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/libc/xtensa-lx106-elf/include/time.h: In function 'void setup()':

C:\Users\Teresa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:34:29: error: expected unqualified-id before string constant

#define _BEGIN_STD_C extern "C" {

                            ^

C:\Users\Teresa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/libc/xtensa-lx106-elf/include/time.h:29:1: note: in expansion of macro '_BEGIN_STD_C'

_BEGIN_STD_C

^

sketch_dec04a:301:1: error: expected '}' at end of input

}

^

exit status 1
expected '}' at end of input

Desde ya muchas gracias por cualquier observacion,consulta,aporte

sketch_dec04a.ino (9.15 KB)

waveforms.c (9.97 KB)

waveforms.h (107 Bytes)

Estoy como mínimo sorprendido.

No has visto lo básico de Arduino.
Un void setup() no puede contener librerías, y definición de variables, objetos y constantes.

Eso va primero, luego el setup que se ejecuta una vez y por ultimo el loop().

Y luego repites otra vez el mismo error con loop()

Pones las definiciones de tus rutinas dentro del loop().

Bueno, un buen libro o mira otros códigos aqui, tambien la sección Documentación tiene tutoriales que te aconsejen

Esta es una corrección parcial de lo que contiene setup()

#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include "waveforms.h"
#define GROUP_LENGTH 4

struct {
    uint16_t pi;
    int ta;
    int pty;
    int tp;
    int ms;
    int ab;
    char ps[8];
    char rt[64];
    int af[100];
} rds_params = { 0 };
/* Here, the first member of the struct must be a scalar to avoid a
   warning on -Wmissing-braces with GCC < 4.8.3
   (bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119)
*/

/* The RDS error-detection code generator polynomial is
   x^10 + x^8 + x^7 + x^5 + x^4 + x^3 + x^0
*/
#define POLY 0x1B9 
#define POLY_DEG 10       //10 bits de CRC Y "ALINEACION DE TRAMA"
#define MSB_BIT 0x8000    //Solamente utilizado para el CRC
#define BLOCK_SIZE 16     //16 bits de datos

#define BITS_PER_GROUP (GROUP_LENGTH * (BLOCK_SIZE+POLY_DEG))     //Bits por grupo = 4*(16+10)= 104 bits= 4 grupos de 24bits
#define SAMPLES_PER_BIT 192
#define FILTER_SIZE (sizeof(waveform_biphase)/sizeof(float))
#define SAMPLE_BUFFER_SIZE (SAMPLES_PER_BIT + FILTER_SIZE)

uint16_t offset_words[] = {0x0FC, 0x198, 0x168, 0x1B4};  //in dec (252,408,360,436)
// We don't handle offset word C' here for the sake of simplicity
void setup() {

Lo mismo debes hacer con lo que contiene loop() o sea que va fuera de loop()

Y con las rutinas debes hacer algo porque solo leo definición de rutinas pero no hay procedimiento ni inicialización de nada.

Hola,

Perfecto,verè la documentacion y algunos ejemplos

Desde ya muchas gracias por tu ayuda !!!

Lo mas importante es que con las rutinas debes hacer algo y solo las has presentado.
No interactuan.

Finalmente en Arduino no suele hacer falta esto

#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

porque ya estan definidas o incluidas de modo que coméntalas y ve agregándolas si el compilador las pide.