Autor Tema: digital toggle error o es la libreria?  (Leído 2121 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
digital toggle error o es la libreria?
« en: 06 de Junio de 2018, 04:54:19 »
Hola chicos!

Tengo ya varios meses haciendo ejercicio con Arduino y hasta ahora bien, y ahora mismo estoy haciendome un control de conmutacion para un modulo que controla un motor de una Locomotora que ya vendre por aqui hacer preguntas,

Y aqui viene la primera, me he decidido de Toggle en algunos Pines que necesitos para ese projectos, aunque no se si me va a funcionar bien usando el Puerto Serial para un Bluetooth HC-05 , pero lo estoy intentando.

el problema que se me presenta ahora es, con DigitalToggle que me baje la libreria y segun lei en varios Foros hay que hacerle  cambio en algunos #include  y es ahi donde no me aclaro ya haciendo los cambios.


El Codigo que estoy usando para probar es este-

Código: [Seleccionar]
#include <digitalToggle.h>



/*
 * Description:
 * Blink an LED using the DigitalToggle library.
 *
 */
 


int ledPin1 = 13;

void setup() {
  pinMode(ledPin1, OUTPUT);
}

void loop(){
  delay(500);
  digitalToggle(ledPin1);
}


el include aqui le hice los cambios

Código: [Seleccionar]
/*
 * DigitalToggle.h - A simple lightweight pin toggle utility library
 * v0.1 - 2009-July-6
 * Copyright (c) 2009 David Knaack.  All right reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

#ifndef DigitalToggle_h
#define DigitalToggle_h
#include <arduino.h>

#define digitalToggleFast(P) *portInputRegister(digitalPinToPort(P)) = digitalPinToBitMask(P)
void digitalToggle(uint8_t P);
#endif


el original es este
Código: [Seleccionar]
/*
 * DigitalToggle.h - A simple lightweight pin toggle utility library
 * v0.1 - 2009-July-6
 * Copyright (c) 2009 David Knaack.  All right reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

#ifndef DigitalToggle_h
#define DigitalToggle_h
#include <pins_arduino.h>

#define digitalToggleFast(P) *portInputRegister(digitalPinToPort(P)) = digitalPinToBitMask(P)
void digitalToggle(uint8_t P);
#endif

Alguien me podria decir que hago yo falso?
 Google no me ha ayudado para nada, en otros foros no encuentros soluccion al error..

Un Saludos




Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:digital toggle error o es la libreria?
« Respuesta #1 en: 06 de Junio de 2018, 10:19:59 »
Por lo que lei.

pins_arduino.h era lo viejo

y

arduino.h es lo mas nuevo

arduino.h es donde estan definidas las funciones que usa el DigitalToggle

Código: C
  1. #define digitalPinToPort(pin)       (0)
  2. #define digitalPinToBitMask(pin)    (1UL << (pin))
  3. #define digitalPinToTimer(pin)      (0)
  4. #define portOutputRegister(port)    ((volatile uint32_t*) &GPO)
  5. #define portInputRegister(port)     ((volatile uint32_t*) &GPI)
  6. #define portModeRegister(port)      ((volatile uint32_t*) &GPE)

el mismo arduino.h incluye el pins_arduino.h

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re:digital toggle error o es la libreria?
« Respuesta #2 en: 06 de Junio de 2018, 14:53:36 »
Yo ya no se donde hacer mas cambios y ademas buscando librerias , killerJC , en todos los foros que he leido nadie ha sido capaz
de mostrar o explicar como resolver el problema,
el #arduino.h lo he buscado y lo encuentro en libreria llamada Morse, la he instalado y ahora me da otros errro
 
Código: [Seleccionar]
Arduino:1.8.5 (Windows 7), Tarjeta:"Arduino Duemilanove or Diecimila, ATmega328P"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware
C:\Program Files (x86)\Arduino\hardware -hardware
C:\Users\domino\AppData\Local\Arduino15\packages -tools
C:\Program Files (x86)\Arduino\tools-builder -tools
C:\Program Files (x86)\Arduino\hardware\tools\avr -tools
C:\Users\domino\AppData\Local\Arduino15\packages -built-in-libraries
C:\Program Files (x86)\Arduino\libraries -libraries
C:\Users\domino\Downloads\Bluetooth project\mis projectos\libraries -fqbn=arduino:avr:diecimila:cpu=atmega328 -ide-version=10805 -build-path

C:\users\domino\AppData\arduino15\Hex projectos -warnings=more -build-cache
C:\Users\domino\AppData\Local\Temp\arduino_cache_518680 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -prefs=runtime.tools.arduinoOTA.path=
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.1.1 -prefs=runtime.tools.avr-gcc.path=
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2 -verbose C:\Users\domino\Downloads\Bluetooth project\mis projectos\pinToggle\pinToggle.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware
C:\Program Files (x86)\Arduino\hardware -hardware
 C:\Users\domino\AppData\Local\Arduino15\packages -tools
 C:\Program Files (x86)\Arduino\tools-builder -tools
C:\Program Files (x86)\Arduino\hardware\tools\avr -tools
C:\Users\domino\AppData\Local\Arduino15\packages -built-in-libraries
C:\Program Files (x86)\Arduino\libraries -libraries

C:\Users\domino\Downloads\Bluetooth project\mis projectos\libraries -fqbn=arduino:avr:diecimila:cpu=atmega328 -ide-version=10805 -build-path C:\users\domino\AppData\arduino15\Hex projectos -warnings=more -build-cache

C:\Users\domino\AppData\Local\Temp\arduino_cache_518680 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -prefs=runtime.tools.arduinoOTA.path=
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.1.1 -prefs=runtime.tools.avr-gcc.path=
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2 -verbose
C:\Users\domino\Downloads\Bluetooth project\mis projectos\pinToggle\pinToggle.ino
Using board 'diecimila' from platform in folder:
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21
Using core 'arduino' from platform in folder:
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21
Detecting libraries used...
"C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_DUEMILANOVE -DARDUINO_ARCH_AVR   "-I
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\cores\arduino" "-I
C:\Users\domino\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\variants\standard" "C:\users\domino\AppData\arduino15\Hex projectos\sketch\pinToggle.ino.cpp" -o "nul"
"C:\Users\domino\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_DUEMILANOVE -DARDUINO_ARCH_AVR   "-IC:\Users\domino\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\cores\arduino" "-IC:\Users\domino\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\variants\standard" "
C:\users\domino\AppData\arduino15\Hex projectos\sketch\pinToggle.ino.cpp" -o "
C:\users\domino\AppData\arduino15\Hex projectos\preproc\ctags_target_for_gcc_minus_e.cpp"
C:\Users\domino\Downloads\Bluetooth project\mis projectos\pinToggle\pinToggle.ino:1:27: fatal error: digitalToggle.h: No such file or directory

 #include <digitalToggle.h>

                           ^

compilation terminated.

exit status 1
Error compilando para la tarjeta Arduino Duemilanove or Diecimila.

me sale un Warnung!!    warnings=more -build-cache

Seguire buscando otras alternativas..

Saludos