El compilador se queja de la declaración de tipo en la función prototipo

0

Esta es una biblioteca para el control de motores que escribo para usar con el Sparkfun Monster Moto Shield.

He mirado este código durante horas, buscando un punto y coma perdido o lo que pueda estar mal, pero todavía tengo los mismos errores de compilación, y no tiene sentido para mí.

Específicamente, el compilador dice que está esperando un paréntesis de cierre antes de la variable en las funciones "ir * ()" a continuación:

/**
 * motor_control.h
 */

#ifndef MonsterMotoShield_h
#define MonsterMotoShield_h

// Motor variables
#define LEFT_MOTOR                  0
#define RIGHT_MOTOR                 1
#define MOTOR_DDR                   DDRD
#define MOTOR_PORT                  PORTD
#define MOTOR_PWM_DDR               DDRB
#define MOTOR_PWM_PORT              PORTB
#define MOTOR_CURRENT_SENSE_DDR     DDRB
#define MOTOR_CURRENT_SENSE_PORT    PORTB
#define BRAKEVCC                    0
#define CW                          1
#define CCW                         2
#define BRAKEGND                    3
#define CS_THRESHOLD                17

/** Initialization functions **/
void initializePWM(void);
void initializeMotors(void);

/** High-level motor control **/
    void goForward(uint8_t speed);
    void goReverse(uint8_t speed);
    void goHardLeft(uint8_t speed);
    void goSoftLeft(uint8_t speed);
    void goHardRight(uint8_t speed);
    void goSoftRight(uint8_t speed);
    void goReverseHardLeft(uint8_t speed);
    void goReverseSoftLeft(uint8_t speed);
    void goReverseHardRight(uint8_t speed);
    void goReverseSoftRight(uint8_t speed);
    void pivotLeft(uint8_t speed);
    void pivotRight(uint8_t speed);

¿Alguien puede ver lo que estoy haciendo mal? ¡Gracias! Soy bastante nuevo en la programación de C, por lo que puede haber otros errores que no conozco.

    
pregunta tommytwoeyes

2 respuestas

2

No sabe qué es uint8_t, porque no lo has dicho.

Tienes que añadir:

#include <stdint.h>

en la parte superior de tu programa para obtener esos símbolos definidos.

    
respondido por el Majenko
1

Como ha mencionado Majenko, necesitas tener uint8_t definido.

En caso de que stdint.h no esté disponible en su biblioteca, puede definir uint8_t usted mismo utilizando typedef:

typedef unsigned char uint8_t;
    
respondido por el nav

Lea otras preguntas en las etiquetas