Show Posts
Pages: 1 ... 98 99 [100] 101 102 ... 220
1486  International / Hardware / Re: Arduino Mega2560R3 non riconosciuto! on: January 05, 2013, 08:39:35 am
Quote
l'Atmel16U2 si sia deprogrammato.  E' possibile che si sia bruciato?
Mi sembra un po' strano, mai sentito che un chip si sprogrammi senza adeguata intenzione con appositi collegamenti e compilatori
Può essere che la USB del tuo pc sia andata in protezione e quindi temporaneamente disabilitata, magari hai chiesto troppa corrente, non so dici molto poco.

Hai riavviato? hai provato su un altro pc?
Hai provato a infilare l'usb in un altro buco  smiley-grin smiley-grin
come alimenti la scheda, solo da USB?
Hai provato a reinstallare i driver? Li trovi nell'IDE nella cartella driver.
che IDE usi?

ciao
1487  International / Megatopic / Re: leOS - un semplice OS per schedulare piccoli task on: January 05, 2013, 08:17:12 am
Niente non va più, ho provato mettendo i define, togliendoli, usando 0x0000 opp 0x000000, lo stacca attacca resetta, incrocia le braccia mouse-reset mi ha sfinito  smiley-grin

ma __asm__ __volatile__ ("jmp 0x0000"); non dovrebbe resettare anche la tua scheda se nel tuo sketch metti define ....MEGA?  potresti provare se l'instradamento è corretto e le definizioni pure

Comunque la spiegazione che avevi dato
Quote
E' una caratteristica secondo me molto interessante, che si può anche utilizzare in altri ambiti, ossia anche come semplice funzione anti-freeze (se uno non ha nessun task da far eseguire in background).
l'avevo capita.
In qualche posto avevi spiegato che esiste un timer autonomo indipendente dai timer che controllano l'esecuzione dello sketch (se uso qualche termine scorretto chiedo venia), quindi se questo timer non viene azzerato in tempo va in overflow inviando un reset alla baracca.

Ora quello che non mi è chiaro è: se il controllo lo fai via software tramite librerie e si inchioda il software come può essere eseguito un reset. Da qualche parte attivi il controllo del timer "se TIMER WTD va in overflow" fammi un reset?

Quindi quello che ti ho chiesto prima è : "questo salto glielo fa fare il programma sulla flash tramite jump o lo fa il sistema autonomo?"
se usiamo un jump 0x0000 che è un comando software (soggetto a schianto e quindi non eseguito in caso di crash) perchè lo usiamo?

Non so se mi sono capito  smiley-eek

Inoltre visto che io non posso provarlo, tu hai mai provato a prendere un buffer e riempirlo di byte fino a quando l'MCU non è più in grado di gestirlo saturando la memoria, si dovrebbe inchiodare tutto, lo fa il reset?

Hai provato a simulare un problema di comunicazione sull ICSP di solito si inchioda, lo fa il reset?
 
1488  International / Megatopic / Re: leOS - un semplice OS per schedulare piccoli task on: January 05, 2013, 05:28:08 am
Quote
@pablos:
la soluzione che hai messo tu è abbastanza semplice. Si tratta di creare un puntatore ad una funzione con indirizzo $0000. Chiamandola altro non fa il compilatore che creare un jump alla prima locazione di memoria. Devo ora capire perché $0000 non funziona e $000000 sì.

EIND è l'Extended Indirect Register, un registro usato in combinazione con altri 2 per i salti indiretti.

Io ho anche specificato che a prescindere dal jump questa riga nella tua lib
//wdt_reset(); //<<<<<<<<<<<<<<<<<<<<QUESTA lo fa schiantare ancora prima di arrivare al ("jmp 0x000000"); e non è nemmo una questione di tempi secondi o ms, si blocca prima di arrivarci.

Però non hai risposto alla mia domanda, questo salto glielo fa fare il programma sulla flash o no? l'interrupt che viene sollevato centra ancora qualcosa?
1489  International / Hardware / Re: Errori e simboli strani sul monitor on: January 04, 2013, 09:05:15 pm
Ancora?
Ma perchè hai aperto un altro treadh è la fotocopia di questo http://arduino.cc/forum/index.php/topic,139118.0.html sulla sezione Software che hai aperto tu la settimana scorsa

bho

La linea 220 dell'alimentatore è sullo stesso nodo derivato dell'utenza 220 che comandi, è normale che arduino ne risenta.

Leggi questo che tra l'altro è un problema molto vicino al tuo  scritto 3 giorni fa da un altro utente e vedi il Reply #9 on: January 03, 2013, 12:45:38 PM
pag http://arduino.cc/forum/index.php/topic,140280.msg1055216.html#msg1055216, puoi sempre tentare e ti costa poco quasi nulla


PS Non vorrei polemizzare, ma è il secondo titolo poco chiaro, è un display non è un monitor, che puoi lo usi per monitorare è un altra faccenda  smiley-grin

ciao
1490  International / Megatopic / Re: leOS - un semplice OS per schedulare piccoli task on: January 04, 2013, 07:12:03 pm
Fatto, mi spiace, non va neanche questo. Meno male che la manovra di emergenza va quasi sempre alla prima.  smiley-confuse

Lascia stare Leo anche se ormai mi sa che per te è diventata una questione personale e di completezza smiley. Purtroppo non so come aiutarti non conosco i micro così nel dettaglio.

ciao


PS.

Ho cercato un po' qua e la "mega 2560 WDTO reset" e sono capiato qui http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=7318&start=0

in fondo c'e' un pezzetto di sketch

e ho messo su questo velocemente che funziona ... fa il reset della Mega 2560 quando chiamo la reset(), non credo proprio faccia il controllo del blocco tramite watchdog.
non è la stessa cosa di quella che hai fatto tu, ma potrebbero esserci dati che possono indirizzarti o adattarlo alla tua lib, ad esempio perchè usa  0x000000 invece di 0x0000 non so se cambia molto

oppure cos'è quell EIND=0  (che ho provato a levarlo e resetta lo stesso smiley )

Code:
//#include <io.h>
const byte LED = 40;

void setup() {
    delay(1000);
    Serial.begin(9600);
    Serial.println("Sono nel void setup");
    pinMode(LED, OUTPUT); //pin as output  
    blink3times();  
}

void blink3times() {
    for (byte i=0; i<3; i++)
    {
        digitalWrite(LED, HIGH);
        delay(250);
        digitalWrite(LED, LOW);
        delay(250);
        Serial.println((String)i);
    }
      reset();
}

void loop() {
}

void reset( void )
{
  Serial.println("Sono nel void reset");
  delay(500);
  //EIND = 0;
  ((void (*)())0x000000)();
  Serial.println("Non dovrebbe stampare niente"); //infatti di qui non ci passa .. non stampa
}


wow FUNZIONA!!
Ho pasticciato un po' la tua lib cercando quale riga dava noia, nostante abbia messo #define ARDUINO_MEGA nello sketch ho come l'impressione che passasse lo stesso da quel #else che è messo per gli altri arduini, mi si inchiodava sempre. Però e tardino, ci ripasso domani.

Code:
//reset the MCU
void leOS2::reset(void) {

SREG &= ~(1<<SREG_I);
//wdt_reset(); //<<<<<<<<<<<<<<<<<<<<QUESTA lo fa schiantare
    wdt_disable();
    
    //for the Arduino MEGA 2560 we must use a software reset
    //because its bootloader leads to a board freeze!
//#ifdef ARDUINO_MEGA
__asm__ __volatile__ ("jmp 0x000000"); //<<<<<<<<<<<<<<< ho aggiunto 2 zeri
  
//#else
    //wdt_enable(WDTO_1S);
    //SREG |= (1<<SREG_I);
    //while(1){}; //wait for reset
//#endif
}

fa 3 lampeggi, attende 10 secondi e si resetta!!!! E' quello che volevi no?
Ma questo reset lo dovrebbe fare anche se si inchioda l'MCU per i fatti suoi usando l'interrupt del watchdog ?

Riciao
1491  International / Megatopic / Re: leOS - un semplice OS per schedulare piccoli task on: January 04, 2013, 01:33:14 pm
Ho cambiato la CPP e aggiunto la riga #define ARDUINO_MEGA, compila, tutto ok ma mi addolora dirtelo si inchioda ancora dopo il 3 lampeggio.  smiley-sweat

ho visto che hai aggiunto questo

#ifdef ARDUINO_MEGA
   __asm__ __volatile__ ("jmp 0x0000");

ma con il jump a 0x0000 dici al micro di ricaricare il boot dalla posiz di memoria 0?

ciao
1492  International / Megatopic / Re: leOS - un semplice OS per schedulare piccoli task on: January 03, 2013, 05:31:20 pm
Che il wdt_enable(WDTO_4S); non funzionasse sulla mega già lo avevi affrontato ti ricordi di questa discussione?
http://arduino.cc/forum/index.php?topic=108620.0, magari c'e' qualche link che può servirti, sembrerebbe che bisogna caricare un altro bootloader
Comunque da quando leggo in giro, nessuno è riuscito a fare sto benedetto reset usando WDT sul 2560, senza toccare il bootloader

ciao
1493  International / Megatopic / Re: leOS - un semplice OS per schedulare piccoli task on: January 03, 2013, 05:24:34 pm
No niente nemmeno con quei 2 valori  wdt_enable(WDTO_4S) oppure WDTO_8S, si inchioda esattamente dopo 10 secondi penso a causa  questa linea

myOS.addTask(reset, myOS.convertMs(10000)); //add a task to be executed after 10 seconds

1494  International / Megatopic / Re: leOS - un semplice OS per schedulare piccoli task on: January 03, 2013, 04:10:36 pm
Questo non lo inchioda subito, il pin 13 lampeggia per un po' 5-6 secondi poi si ferma rimane fisso e da li in poi si blocca, entro quei secondi però riesco a riscrivere lo sketch, immagino che poi faccia il reset e non si rianima più smiley

Se non hai la scheda capisco che sia difficile ... bhe ci hai provato, grazie lo stesso


PS Ma per fare un reset ci vogliono tutte quelle istruzioni?  ....  smiley-mr-green

ciao 
1495  International / Hardware / Re: disturbi alimentazione esterna arduino mega ADK on: January 03, 2013, 08:51:15 am
E allora ti serve un condensatore antidisturbo

mi indicheresti il modello cosi' me ne procuro un paio.

nel mio progetto ho anche due prese alimentate a 12 v... non ho avuto modo di provarle, pensi sia il caso di mettere un antidisturbo anche su quelle?

invece condensatori sui rele e sull'alimentazione di arduino?

Te lo avevo scritto al
Reply #9 on: Today at 12:45:38 PM »
1496  International / Hardware / Re: disturbi alimentazione esterna arduino mega ADK on: January 03, 2013, 08:27:52 am
E allora ti serve un condensatore antidisturbo
1497  International / Generale / Re: Arduino per gestire una pompa di calore autocostruita on: January 03, 2013, 08:05:39 am
Per quanto riguarda la scheda custom potresti darmi delle indicazioni sui giusti componenti , che dovrebbero azionarmi il compressore , i circolatori e le elettrovalvole e che potrebbero essere gestiti dalle uscite dell'arduino ? considera che la pompa che ha maggior assorbimento arriva a circa 150 W , le elettrovalvole non lo so di preciso ma credo nell'ordine di pochissimi watt e il compressore (che è la parte di maggior consumo) lo potrei comunque far gestire tramite un teleruttore esterno... se puoi fammi qualche esempio schematico... Grazie ancora.

Normalmente quando si progetta un quadro di automazione si fa una lista delle tensioni necessarie su tutti gli apparati da controllare e si cerca nei limiti del possibile di ottenere tutti apparati con la stessa tensione. Poi si procede col dimensionare le varie potenze delle utenze controllate, poi il dimensionamento dei conduttori di cablaggio, protezioni, morsettiere, gli spazi occupati, ecc

Ad esempio
Elettrovalvole, valvole motorizzate 3 vie, teleruttori .... tutte a 24 o 48vac, in questo modo ho un solo trasformatore e 3 tensioni
ingresso 380v RST-N, 220v con R-N   S-N   T-N, 24v o 48v che comandano sia le utenze che i teleruttori, i motori immagino siano 220-380v. Con gli stessi 24 o 48 puoi farci l'alimentatore per arduino e i pre-relays.

Bisogna aggiungere sui motori i "salvamotori" che sono teleruttori con modulo termico regolabile autoriarmante o non + ausiliari che potrai fare entrare in arduino per verificarne le varie anomalie e controlli.

Tutti questi dati li hai in mano tu, la logica la conosci tu, se vuoi una marca per i teleruttori che uso e mi trovo molto bene da anni è Telemecanique della Schneider usati fino a 100kW oltre ho usato ABB ma non è il tuo caso.

ciao  
1498  International / Hardware / Re: disturbi alimentazione esterna arduino mega ADK on: January 03, 2013, 07:18:53 am
Bhe ma non è così complicato da capire qual'è la causa, qualcuno dice che può essere un insufficienza di alimentazione....
Allora svita le lampadine e/o scollega le utenze 220v, fai scattare i relè anche tutti insieme e testi se la causa è l'alimentatore o no, poi ricolleghi gli apparati e rifai la prova .... o è zuppa o pan bagnato smiley
1499  International / Hardware / Re: disturbi alimentazione esterna arduino mega ADK on: January 03, 2013, 06:45:38 am
Anche a me arduino si inchiodava quando comandavo per test alcune cose. Metti questo sull'utenza 220v che comandi, io ho risolto.
Sulle casse del computer sentivo uno schiocco mica da ridere smiley
Su tu provassi (come test) ad alimentare arduino con un alimentatore per computer con i 12v o 5v secondo me non lo fa più, quelli stecchiscono tutto,  ma il condensatore aiuta molto.

ciao
1500  International / Generale / Re: problema arduino mega 2560 + mp3+ ir remote on: January 03, 2013, 06:26:42 am
Perchè hai messo il ricevitore sul 48? mmmm non è che mi piace molto smiley

Quando finisce una canzone, hai un segnale?
se si in quel punto metti  irrecv.enableIRIn(); // Start the receiver è un ripiego, se funziona dovresti trovare qual'è il problema

o ancora nella libreria IR prova a cambiare l'impostazione del timer IRremoteInt.h
non avendo la tua lib  SFEMP3Shield.h e non conoscendo lo shield potresti usare gli stessi TIMER creando conflitti

però prima proverei a cambiare pin del ricevitore IR

// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  //#define IR_USE_TIMER1   // tx = pin 11
  //#define IR_USE_TIMER2     // tx = pin 9
  #define IR_USE_TIMER3   // tx = pin 5
  //#define IR_USE_TIMER4   // tx = pin 6
  //#define IR_USE_TIMER5   // tx = pin 46


togli questi int
int receiver = 48; //PIN ARDUINO MEGA
int musica=0;
short fine_canzone=true;
int audio=60;

e mettici
byte receiver = 48; //PIN ARDUINO MEGA
byte musica=0;
short fine_canzone=true;
byte audio=60;
Pages: 1 ... 98 99 [100] 101 102 ... 220