Show Posts
Pages: [1] 2
1  Using Arduino / Installation & Troubleshooting / Re: Problems with arduino IDE using linux mint 17 on: August 11, 2014, 01:37:45 pm
The sketch is for arduino micro and works fine.

At the end I solved the problem using the "hard methode"; I reinstalled linux mint 17 from zero.
I downloaded the last version and I expandend the file in "my docs" folder and is workinkg fine.

It seems as a problem with too many copies for the .h files in diferents folders or something like this,


Thank you for your help (and for your patient reading my english )
2  Using Arduino / Installation & Troubleshooting / Re: Problems with arduino IDE using linux mint 17 on: August 11, 2014, 02:54:59 am
No, arduino micro is selected:
Code:
Arduino: 1.5.7 (Linux), Placa:"Arduino Micro"
"placa" means "board" in spanish.
3  Using Arduino / Installation & Troubleshooting / Re: Problems with arduino IDE using linux mint 17 on: August 10, 2014, 10:04:02 am
I did it. I removed the arduino IDE from the administration, software manager and after that I downloaded the latst IDE 1.5.7.
I expanded the -tar.gz file in my personal folder and I launched the Arduino executable.
It gives the same error:
Code:
Arduino: 1.5.7 (Linux), Placa:"Arduino Micro"

ECU2_012.ino: In function 'void loop()':
ECU2_012.ino:222:3: error: 'TCCR2B' was not declared in this scope
ECU2_012.ino:223:3: error: 'TCNT2' was not declared in this scope
ECU2_012.ino:226:3: error: 'TCCR2A' was not declared in this scope
ECU2_012.ino: In function 'void inductivo()':
ECU2_012.ino:373:3: error: 'TCCR2B' was not declared in this scope
ECU2_012.ino:374:3: error: 'TCNT2' was not declared in this scope
ECU2_012.ino:377:3: error: 'TCCR2A' was not declared in this scope
ECU2_012.ino: In function 'void TIMER2_OVF_vect()':
ECU2_012.ino:404:5: error: 'TCCR2B' was not declared in this scope

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
This is becausa all of touse registers are dfined inside the io.h file.

However if I change the include line for
Code:
    #include <avr/ixxxo.h> 
I get the error message:
Code:
Arduino: 1.5.7 (Linux), Placa:"Arduino Micro"

ECU2_012.ino:8:29: fatal error: avr/ixxxo.h: No such file or directory
compilation terminated.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
At least this is a logic answer because the ixxxo.h file does not exist

It seems like the io.h  is not readed or something like this.


Thanks for your help.
4  Using Arduino / Installation & Troubleshooting / Problems with arduino IDE using linux mint 17 on: August 09, 2014, 04:28:51 pm
I istalled the arduino IDE 1.5 beta on linux mint 17
The working folder is moved to /home/(user)/dropbox/arduino decause I'm developing the program using two computers.

In my sketch some inlude

#Include <avr/interrupt.h>
#Include <avr/io.h>

And seems that this is the problem, when I assing a value to a variable defined in those files .h the system says:
(Variable) was not defined in this scope
If I change the name for the .h file to another it gives no error for this, it gives the same message. It seems that the compiler is not loading the .h fles.

However on windows works ok, semms than the ide can't find the .h files for the include.
Using windows, if I change the name for the .h file fot other it gives the error "xxxx.h: No such file or directory" this is the espected answer because it can't find the file.

I tested using the 1.0 for Arduino and changing the working folder to the default value  with similar results
5  International / Software / Problema con el ide arduino en linux on: August 09, 2014, 04:17:22 pm
He instalado el ide arduino beta 1.5 en linux mint17.
Tengo la carpeta de trabajo movida a /home/(usuario)/dropbox/arduino ya que voy usando dos ordenadores alternadamente.

En mi sketch hay dos include

#include <avr/interrupt.h>
#include <avr/io.h>

Y ahí está el problema, cuando asigno variables que están definidas en estos archivos me da el error :
(Variable) was not defined in this scope
Si cambio el nombre del archivo .h a otro inexistente no da error de que no encuentra el archivo, da el mismo error de que xxx variable no está definida. Es como si no encontrase estos archivos .h ni los carga ni los busca.

En windows va perfectamente, me huele a que simplemente no encuentra los archivos pero no se como solucionarlo.
Si en windows cambio el nombre de un archivo.h por uno inexistente no compila, da el error xxxx.h: No such file or directory cosa lógica ya que lo primero es que no encuentra el archivo.

No se si el ide 1.0 irá, pero me interesaba el 1.5 porque tengo un DUE que a veces uso.

6  Using Arduino / Programming Questions / Problems emulating a mouse. All buttons are the left. on: September 06, 2013, 10:47:41 am
I have some problems emulating a mouse using my leonardo board.
All works well but seems that all Mouse.click(X), Mouse.press(X), and Mouse.release(X) functions act only as the left button.
It has no sense if I set X as nothing,  MOUSE_LEFT,   MOUSE_RIGHT or MOUSE_MIDDLE in all cases actas like the mouse left button.

All the code works well even the test conditions to do a Mose.click or Mouse.xxx but in all cases I get a left click.


Any suggestions?

(Sorry my English is not very good as you can see)
7  International / Software / Mouse. no funcionan los botones central y derecho on: September 05, 2013, 05:29:33 pm
He hecho un programa para emular un ratón con un joystick y va bien pero no consigo emular la tecla derecha ni la central del ratón; haga lo que haga se "pulsa" el botón izquierdo.

He probado con Mouse.press (MOUSE_RIGHT) y después Mouse.release y con Mouse.click directamente.

En todos los casos obtengo el resultado de (MOUSE_LEFT) o de ()

El código va bien porque he probado a imprimir mensajes para saber si pasa por ahí o no y si que pasa cuando debe.

También he probado a dar valores para no usar las constantes y pasa lo mismo; todos son el botón izquierdo
8  International / Software / Re: Tiempos mínimos. on: January 06, 2013, 05:37:29 pm
Pues después de un rato de estudiar el caso, parece ser que al escribir el registro del timer la primera vez no hace caso de la interrupción.
El manual de AVR dice que puede pasar si se hace con el timer en marcha, pero con los tres arduinos que tengo pasa si o si tengas o no el timer en marcha.
9  International / Software / Tiempos mínimos. on: January 05, 2013, 06:28:59 am
Un par de notas previas:
De programar en C estoy pez; pese a haberlo intentado en las últimas décadas nunca lo he "interiorizado" osea que es probable que tenga cagadas muy muy básicas.
Programar en código máquina si que se, lo he hecho durante años en varias plataformas.


El problema:
Mediante interrupciones para cargar lo mínimo la CPU hago lo siguiente. Un sensor hall manda un pulso que activa una salida y un tiempo después se apaga. Ambas señales van por interrupciones; una externa para inicio y una por el timer2 para el final. Parece funcionar correctamente, pero al haber añadido unas instrucciones para contar el tiempo de la amplitud del pulso salen tiempos muy grandes.
No he podido medir la amplitud real del pulso y puede que sea correcta y el "medidor" con lafunción millis() o con micros() da mas o menos lo mismo no mida bien porque las funciones del sistema sean muy lentas.
El caso es que el tiempo mínimo son 16mS y debería de ser menos.

El código:
Code:
   #include <avr/interrupt.h>
    #include <avr/io.h>
    int Inyector = 3;    //
    int LED = 13;        //Pin del led
    int PotOn=A0;
    int recarga=100;
    int RPM;
    unsigned long tOn=0;
    unsigned long tOnOld;
    unsigned long apertura;
    volatile int state = LOW;
    //
    
    ISR(TIMER2_OVF_vect) {
    digitalWrite( Inyector, LOW);
//Parar el timer 2
    TCCR2B &= ((0<<CS22) | (0<<CS21) | (0<<CS20));
    //TIMSK2 |= (0<<TOIE2) ;  //InHabilita interrupción por desbordamiento del Timer2
    apertura=millis()-tOn;
    state = !state;
    Serial.print("R=");
    Serial.print(recarga);
    Serial.print("  Ap=");
    Serial.print(apertura);
    Serial.print("mS ");
    Serial.print(RPM);
    Serial.println("rpm");
    };
    void setup() {
    //Parar el timer 2
    TCCR2B &= ((0<<CS22) | (0<<CS21) | (0<<CS20));      
    // Use normal mode
    TCCR2A |= (0<<WGM21) | (0<<WGM20);
    // Usar reloj interno. No se usa el reloj externo en arduino
    ASSR |= (0<<AS2);
    TIMSK2 |= (1<<TOIE2) | (0<<OCIE2A);  //Habilita interrupción por desbordamiento del Timer2
    //Initialize serial and wait for port to open:
    Serial.begin(9600);
    // prints title with ending line break
    Serial.println("ECU 004 (c) Felix Diaz");

      // initialize the digital pin as an output.
  pinMode(Inyector, OUTPUT);  
  pinMode (LED  , OUTPUT);
   attachInterrupt(0, inicio, FALLING); //Puede ser LOW, CHANGE, RISING Y FALLING
    }

    void loop() {
        recarga=255-analogRead(PotOn)/4;    //El potenciometro va al revés que el timer
          digitalWrite(LED, state);
        delay(100);
    }

void inicio()
{
  digitalWrite( Inyector, HIGH);
  tOnOld=tOn;
  tOn=millis();
  sei();
  //Recargar el timer:
    TCNT2=recarga;
    //Configuración del timer 2: Preescaler /1024,
    TCCR2B |= ((1<<CS22) | (1<<CS21) | (1<<CS20));
    //Resetear el preescaler
    GTCCR |= (1<<PSRASY);
  RPM=60000/(tOn-tOnOld);
}

Dado lo taruguín que soy programando en C, a ver si veis algún error gordo o algo. Es probable que tenga alguna orejada tonta.
10  International / Software / Re: ¿Se puede poner un array o tabla look-up en la rom? on: January 05, 2013, 06:21:52 am
Al final lo solucioné de otra forma pero no me convence mucho el funcionamiento.
Como no tiene nada que ver lo voy a preguntar en otro hilo.
11  International / Software / Re: ¿Se puede poner un array o tabla look-up en la rom? on: December 08, 2012, 01:38:52 pm
Veo que me has reconocido por el avatar, porque el nikname estaba ocupado.  smiley-grin
Estoy usando un arduino nano V3 con un 328 osea que tengo 2k de ram y 1k de eeprom.
Estoy empezando con este proyecto así que quizás sea racanería prematura de ram, cpu y de todo pero es que estoy acostumbrado a funcionar así; ahorra desde el principio que luego no te queda de X.

El animalito se supone que será una ECU para etanol para un prototipo la shell ecomaratón. Ya veremos que sale del engendro.
Es una operación repetitiva, que siempre será la misma, se supone que no hay que tocarla nunca, aunque quizás venga bien después como un "mapa de motor", una posibilidad sería tener varios al gusto.
12  International / Software / Re: ¿Se puede poner un array o tabla look-up en la rom? on: December 08, 2012, 11:11:41 am
Si, me refería a la flash, a la memoria de programa, vamos.

Gracias le echo un vistazo pero creo que si que es eso lo que estaba buscando.
13  International / Software / ¿Se puede poner un array o tabla look-up en la rom? on: December 06, 2012, 05:57:32 pm
A ver si me explico: Estoy usando el timer 2 para generar interrupciones periódicas pero quiero liberar la cpu todo lo que se pueda y al mismo tiempo ser lo mas preciso posible.
El tiempo de recarga del timer y el preescaler dependen del inverso de una lectura analógica; ya que con unl potenciómetro selecciono frecuencias pero al final en el timer lo que se programa es el periodo f=1/T.
Lo mas rápido es leer una tabla o un array y recargar el timer para el próximo, si me pierdo haciendo cálculos pierdo precisión pero como es relativamente grande para que sea precisa no la quiero cargar en la ram para no llenarla entera o en la eeprom, además al arrancar se perdería mucho tiempo declarando y llenando el array.

Resumiendo la pregunta es si puedo declarar un array de algún modo para que esté en la rom y no en la ram, evidentemente no se modificaría en tiempo de ejecución; de hecho me interesa que no se pueda modificar.

Serían dos tablas tipo char, un byte por posición, como mínimo de 65 entradas cada una, claro que según lo complicado que sea lo ideal sería llegar a dos tablas de 1k ya que la resolución de la entrada analógica es 1k
14  International / Software / Re: Ayuda por favor ¿Como puedo cambiar los pines de comunicacion spi, es posible? on: December 06, 2012, 05:44:59 pm
El protocolo SPI es relativamente sencillo de implementar "a pedales".

Por otro lado me suena que hay alguna función que lo hace en el sistema del arduino, no se si es "serialize" o algo así. Busca a ver si la encuentras, pero claro, perderás velocidad y tiempo de máquina.

El algoritmo es algo así:

Pon el bit 7 en el pin data
haz un pulso en el pin clock
Pon bit 6 en pin data
haz pulso de clock
...
(ahora no recuerdo si se gira de derecha a izquierda o al revés)
15  International / Español / Re: Duda con limentacion desde automotor on: December 30, 2011, 07:11:45 am
Sinceramente para lo que va a consumir yo ponía un 7805. Si fuese para 1A o mas ya no.
Pages: [1] 2