• Welcome to LusoRobótica - Robótica em Português.
 

Sanguino

Started by c3dr1c, 27 de March de 2012, 13:26

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

zedlav

só por curiosidade o reset está ligado vcc através duma resistencia  quando tentas correr o blink ou está ligado ao ground??

c3dr1c

O arduino é que continua sem dar...

Mas ja sei gravar ficheiros por avrdude, por isso posso-me desenrascar. eheheh
Muito obrigado pela vossa ajuda.

Ainda bem que nao desisti. Acabei por aprender a mexer no avrdude, fiz o inicio do tutorial do senso, decorei os circuitos e pinos do 644p que me fartei de montar, percebi p que eram fuse e lock bits... mais ou menos :P

Abraços pessoal...
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

c3dr1c

#92
ao vcc
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

senso

Os lock bits são para bloquear a flash para que não possas ler de volta o que lá está, por exemplo para protecção de um producto comercial, não lhe mexas.
Se for preciso alguma coisa, estou disponivel para te ajudar, e se bloqueares o chip manda-me que eu tenho um Dragon e ele faz programação com alta voltagem que permite meter tudo como vem de fábrica.
Avr fanboy

c3dr1c

#94
Muito obrigado senso. Por enquanto acho que ta tudo bem, menos a parte do arduino.

Agora surgem-me é novos problemas, porque queria flashar a interface para o atmega se conectar ao labview, mas so tenho em ficheiros *.pde
Da para converter para *.hex?

Ainda por cima aquilo sao 3 ficheiros dentro de um, nao sei explicar...
Ta em anexo se alguem me poder ajudar.
Se coseguir la meter a interface ta resolvido o problema, que é so disso que preciso pa cnc.

O codigo ate nao é grande...

Nao sei se terei de fazer algumas alterações. Porque no 3º "ficheiro" diz la que sao funções para o arduino uno.
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

senso

Compilas no IDE do Arduino, mas quando carregas no botão de compilar carrega no shuft que ele mostra a pasta onde esta a guardar o .hex, vais lá e copias para outro sitio e depois e avrdude com ele.
Avr fanboy

c3dr1c

Fixe assim é muito mais facil de localizar o ficheiro. Alias ja ca os tenho. Vem é do tipo *.cpp.hex

Isso ha problema?
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

c3dr1c

Bem mas tenho problemas quando compilo para a board sanguino. Se for para Uno ou Mega 2560 funciona, como a NI diz...

Da estes erros:

LVIFA_Base.cpp: In function 'void processCommand(unsigned char*)':
LabVIEWInterface:90: error: 'tone' was not declared in this scope
LabVIEWInterface:94: error: 'noTone' was not declared in this scope


Alguma ideia?
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

senso

Não estou a ver o que é que o NI tem a ver com o código que está no micro-controlador, explica-te melhor.
Avr fanboy

zedlav

Na pasta do sanguino que está no arduino ou seja (arduino-0023/hardware/Sanguino/cores/arduino/) está um ficheiro chamado pins_arduino.h troca por este.

/*
  pins_arduino.h - Pin definition functions for Arduino
  Part of Arduino - http://www.arduino.cc/

  Copyright (c) 2007 David A. Mellis

  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., 59 Temple Place, Suite 330,
  Boston, MA  02111-1307  USA

  $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
*/

#ifndef Pins_Arduino_h
#define Pins_Arduino_h

#include <avr/pgmspace.h>

#define NOT_A_PIN 0
#define NOT_A_PORT 0

#define NOT_ON_TIMER 0
#define TIMER0A 1
#define TIMER0B 2
#define TIMER1A 3
#define TIMER1B 4
#define TIMER2  5
#define TIMER2A 6
#define TIMER2B 7

extern const uint8_t PROGMEM port_to_mode_PGM[];
extern const uint8_t PROGMEM port_to_input_PGM[];
extern const uint8_t PROGMEM port_to_output_PGM[];

extern const uint8_t PROGMEM digital_pin_to_port_PGM[];
extern const uint8_t PROGMEM digital_pin_to_bit_PGM[];
extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[];

extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];


const static uint8_t SS   = 4;
const static uint8_t MOSI = 5;
const static uint8_t MISO = 6;
const static uint8_t SCK  = 7;

// Get the bit location within the hardware port of the given virtual pin.
// This comes from the pins_*.c file for the active board configuration.
//
// These perform slightly better as macros compared to inline functions
//
#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) )
#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) )
#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) )
#define analogInPinToBit(P) (P)
#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_output_PGM + (P))) )
#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_input_PGM + (P))) )
#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_mode_PGM + (P))) )

#endif


e no sketch labVIEWInterface acrescenta


void tone(uint8_t _pin, unsigned int frequency, unsigned long duration);
void noTone(uint8_t _pin);


Aqui deu.

c3dr1c

#100
Eia muito obrigado, vou tentar...

Senso a NI é que programou esta interface. É para programar-mos no atmega, para podermos utilizar o labview com o arduino...
E eles dizem que a testaram no uno e no mega2560 e funcionou e sao as placas que recomendam.

Como gravo um ficheiro *.h ?

"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

zedlav

Quote from: c3dr1c on 29 de March de 2012, 23:53
Como gravo um ficheiro *.h ?
Windows ?  ;D
Boa pergunta.

Em linux basta criar um file com este nome nome_do_ficheiro.h

c3dr1c

#102
Será que se copiar po bloco de notas e gravar com essa extensao ele aceita? :P

EDIT:
Pelos vistos sim :D
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

zedlav

  Não sei. Mas podes abrir com o notepad o ficheiro que vai ser mudado apagas tudo de lá e metes o que está em cima postado para lá.

Mas espera que alguem que use windows te diga ou então vai ao google.
Windows é um campo em que eu não posso dar o meu conhecimento porque não o tenho.

SJD22

Claro que sim! Tens é de especificar a extensão .h quando o vais gravar.

Os ficheiros .H são ficheiros de texto (ascii) normais!