Dopo un discreto lavoro di messa a punto sono riuscito a scrivere un tutorial che spiega (spero con sufficente chiarezza) come impostare AVR Studio 5.1 per sviluppare progetti Arduino.
Purtroppo questo IDE non è disponibile per Linux e Mac, ma per questi S.O. credo sia utilizzabile Eclipse (qualche utente del forum mi pare ci abbia provato con successo).
QuercusPetraea:
Dopo un discreto lavoro di messa a punto sono riuscito a scrivere un tutorial che spiega (spero con sufficente chiarezza) come impostare AVR Studio 5.1 per sviluppare progetti Arduino.
Purtroppo questo IDE non è disponibile per Linux e Mac, ma per questi S.O. credo sia utilizzabile Eclipse (qualche utente del forum mi pare ci abbia provato con successo).
Buona lettura
QP
Bellissimo lavoro, ben fatto e chiaro, come sempre..... XD
Complimentissimi!
ho visto che c'era un errore di battitura nella velocità.
Ho notato che prima di scegliere dal menù Tools la voce creata bisogna selezionare il progetto altrimenti non funziona e come $(ItemFileName) viene impostato il nome del file .cpp
Allego il template che ho creato da inserire nella cartella "C:\Users\XXX\Documents\AVRStudio 5.1\Templates\ProjectTemplates"
ho visto che c'era un errore di battitura nella velocità.
Me ne sono accorto anch'io; appena posso sistemo.
Ho notato che prima di scegliere dal menù Tools la voce creata bisogna selezionare il progetto altrimenti non funziona e come $(ItemFileName) viene impostato il nome del file .cpp
Puoi sempre abilitare la spunta Propmt fo arguments e sostituire la stringa "$(ProjectDir)Debug$(ItemFileName).hex" con il percorso al file hex.
Inoltre il Terminal Window con la 5.1 pare non voglia funzionanare, mentre va con la 5.0 e la 6.0 beta. La cosa è ovviabile inserendo un tool esterno che richiami un Terminal seriale a piacere.
Il terminal ho notato che mostra solo i primi bit e poi basta, questo non è un problema però perchè uso altri programmi per questo.
Più che altro con Prompt for arguments dovrei ad ogni progetto scrivere il nome dell'eseguibile il che è un pò una scocciatura.. comunque basta saperlo e si seleziona il progetto prima di fare upload e il gioco è fatto
Più che altro per il simulatore sai come si imposta il clock? Ho notato anche che i delay diventano lunghissimi emulati..
Ho seguito alla lettera il tutorial, tutto bene. Sono riuscito a compilare l'esempio DS18B20 senza errori ma poi facendo ulteriori prove ho pensato di provare l'esempio allegato in arduino webserver. Ho controllato tutti gli include <> e sostituiti con "", le librerie sono tutte incluse come link, ma nella compilazione da una valanga di errori, dove posso aver sbagliato?
Guardando il log della compilazione vedo tanti errori come questo:
Client.o: In function `Client::peek()':
C:\XML\Dropbox\Ardustudio\Progetti\Arduino-00235\Arduino-00235\Debug/../../../../libraries-0023/Ethernet/Client.cpp(90,1): undefined reference to `peek(unsigned char, unsigned char*)'
Trovato l'inghippo
Hai correttamente puntato a C:\XML\Dropbox\Ardustudio\libraries-0023\Ethernet\utility in Directories del Compiler ma ti sei dimenticato di linkare nel progetto i files socket.cpp, socket.h, w5100.cpp e w5100.h.
Fatto questo la compilazione termina con successo.
Done building target "Build" in project "ArduinoWebserver.cppproj".
Done building project "ArduinoWebserver.cppproj".
Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
Ciao a tutti,
dopo aver seguito l'ottimo tutorial per AVRstudio (Mille grazie!!!!) sto tentando di migrare un mio progetto che include un sacco di librerie esterne, ora, sono riuscito a fare il porting di tutto il progetto, tranne per la parte riguardante la lettura/scrittura file su SDcard con la libreria ufficiale inclusa in Arduino1.
Non c'è verso di compilarla, in quanto restituisce un errore sulla classe SD dicendo che il metodo close non è dichiarato (no ho sottomano l'errore corretto).
Ho provato in mille modi ma non ne esco.
Se qualcuno avesse voglia di provare a compilare questo semplice esempio (Arduino ufficiale) con avrstudio e dirmi dove sbaglio (o cosa devo correggere in SD.cpp) mi farebbe un grande favore.
/*
SD card read/write
This example shows how to read and write data to and from an SD card file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
This example code is in the public domain.
*/
#include <SD.h>
File myFile;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("test.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to test.txt...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
// re-open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop()
{
// nothing happens after setup
}