Show Posts
Pages: 1 [2] 3 4 ... 187
16  International / Hardware / Re: Programmare Arduino standalone TQFP senza connettore ISP on: April 10, 2014, 06:17:12 pm
Dal punto di vista professionale si procede come dice icio, con il vantaggio di evitare pure le piste e la composizione simmetrica dei pad. Ma dal punto di vista prototipo non so come conviene fare, non mi sono mai posto il problema.

Ciao.
17  International / Megatopic / Re: [OT] PIC, 8051, MCU e CPU varie on: April 10, 2014, 06:11:07 pm
@pelletta
Il fatto è che l'utente X non ha avuto discussioni con l'utente Y e se la sono risolti in PM. L'utente X manda PM a più utenti, ad alcuni richiede consenso ad altri li offende, sempre in merito alla stessa questione. Anzi mi stupisco di non avere ricevuto PM da lui.

Ciao.
18  International / Generale / Re: Segnalazione di problemi legati al forum on: April 10, 2014, 05:58:27 pm
@hiperformance71
Stessa cosa per me, 10 tab aperte sono il minimo, oltre 20 il massimo, sempre fatto così.
Mi rompe di più perché impegna molto il disco che macina sempre ed è peggio che impegnare la sola CPU, specie per chi ha un dual core (oramai tutti). Non ho certezza che il problema lo crei Arduino site, in qualche rara occasione è capitato con altri siti ma si trattava di frequentazione più unica che rara, mentre Arduino è sempre aperto nel browser con 4-5 tab. Mi sono riproposto di chiudere le tab di arduino quando non le uso, ma finisce sempre che me lo scordo.

Ciao.

19  International / Megatopic / Re: [OT] PIC, 8051, MCU e CPU varie on: April 10, 2014, 05:45:04 pm
Devo  dire il post io lo usavo proprio come bar sport. Al bar c'è sempre quello che usa parole grosse, capita e non si può sempre fare a pugni, specie se è evitabile.

Ho imparato di più da pelletta, che da lock, eppure ho l'impressione che lock possa dare molto di più.
Alle volte appare competente ed altre.... non so. In merito all'ultima critica su linux embedded io l'ho vista
come uno sfogo di uno che per lavoro è costretto ad usare linux ma preferisce usare altro, però poi vedo che per
la cadrega usa linux. Avrei dovuto dirgli; quanto tempo perdi con ste cadreghe, come fa lui quando dice: Quanto
tempo perdete con le cose GNU.

Accade anche a me di esprimermi in modo criptico e poco comprensibile e qualcuno me lo ha fatto notare.
I post di lock per me sono molto criptici e scarsi di contenuto, tuttavia in qualche occasione ricordo un po di codice, ma non ne sono sicurissimo.

Comunque io non ne farei un dramma, prima o poi lock ritorna, a me a dirla tutta non dispiace e come quando
vado al bar e c'è il racconta storie di turno. Tuttavia approvo la decisione presa, era già successo che mandasse PM aggressivi ad altri utenti e la conclusione è stata proprio il ban, per cui andava ridimensionato.

@BaBBuino
BaBBuino non andare via.... smiley-mr-green
Si però basta con ste MCU, o almeno scendi un poco nel dettaglio di tanto in tanto.

Ciao.

20  International / Software / Re: RTC DS3231 lettura registro interno della temperatura on: April 10, 2014, 04:40:49 pm
Si è come dice leo. Inoltre non ha notato *&&* al posto di &.
Code:
if (dato && 0b10000000)

Deve diventare:
Code:
if (dato & 0b10000000)

Che è uguale a:
Code:
if ( dato & _BV(7) )
// stessa cosa, ma esplicita
if (dato & 0x80)

Preferisco esadecimale perché: dal 7 al bit 0, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01

Ciao.


21  International / Software / Re: Interrupt contemporanei on: April 07, 2014, 04:39:14 pm
Se anziché PD2, PD4 e PD7 potessi usare PB0(smiley-cool, PB1(9) e PB2(10) potresti semplificare molto
il codice, cioè si semplifica per il micro, ma si complica per il programmatore.
Se carichi 100110010011001101 e shifti di 3 a destra nei bit LSB ti ritrovi il codice della sequenza da imporre
direttamente alla porta B. Dopo sei volte shift a destra di tre devi ricaricare il valore 100110010011001101.

Più complicato a spiegarlo che a farlo.

Ciao.
22  International / Software / Re: Interrupt contemporanei on: April 07, 2014, 08:48:20 am
@icio
Sintesi ottima.
In molti casi ci viene in aiuto il buffer presente nel convertitore seriale, e il meccanismo busy della seriale, sempre
se presenti in HardwareSerial.

Credo anche io che non sia il caso di approfondire principalmente perché ci sono molte possibili soluzione.

Ciao.
23  International / Megatopic / Re: [OT] PIC, 8051, MCU e CPU varie on: April 07, 2014, 08:35:33 am
Apropos di Banane, lo sanno anche le scimmie che lo sviluppo su linux costa di più, l'obbiettivo
è proprio questo, si fanno lavorare i programmatori che guadagnano e si evita di fare arricchire una
sola azienda, che poi sai si monta la testa.

Per certi lavori non è possibile fare un preventivo da subito, per cui, prima paghi xxx, facciamo
una stima, mostriamo qualcosa e evidenziamo i problemi che sorgono e poi il cliente decide se passare
alla seconda fase.

Se va a finire così allora linux è controproducente, come pure GNU ecc.

Ciao.
24  International / Software / Re: Problema conversione variabile di tipo FLOAT in STRING (utilizzo dtostrf() ) on: April 07, 2014, 08:28:07 am
Se hai una collezione di dati allora conviene scrivere e leggere in binario.
Code:
struct {
   
    float ffield;
    uint8_t ufield;
    // ecc ...
} frecord;

Ogni volta che vuoi scrivere un record sul file, carichi i dati dentro i campi della struttura e poi chiedi alla
libreria sdfat di scrivere byte dopo byte a partire dall'indirizzo di &frecord.
Il secondo record nel file si trova nrecord * sizeof(frecord).

Per leggere fai la stessa cosa.

Però il file non sarà in codifica ASCII e non potrai visionarlo con l'editor, al massimo con un editor
esadecimale. La soluzione potrebbe allora essere un programmino in C sul pc che legge il file
e lo trasforma in una rappresentazione comprensibile agli umani, e perché no anche nel formato
foglio di calcolo o altro.

Ciao.

25  International / Megatopic / Re: [OT] PIC, 8051, MCU e CPU varie on: April 07, 2014, 08:17:12 am
@lock
Chi ti obbliga ad usare linux e chi ti impedisce di usare WxWorks?
Si sa che si risparmia sulla licenza linux ma si paga di più lo sviluppo.
Se ti fai pagare allo stesso modo sia per linux che per WxWorks certo che ti girano.

Ciao.
26  International / Software / Re: Interrupt contemporanei on: April 07, 2014, 07:58:13 am
@psoftware
I dettagli li puoi cogliere studiando il datasheet del microcontroller, tutti gli ATmega di base si comportano allo stesso modo.
Quote
- considerando che l'esecuzione di una ISR disabilita durante l'esecuzione altri interrupt... questi altri vengono accodati in qualche modo oppure l'esecuzione della ISR a cui sono legati viene inibita temporaneamente?
Anche se ci fosse un buffer che tiene conto di IRQ non soddisfatte, il problema rimane. Prima che la ISR del timer venga eseguita deve terminare la ISR corrente e se questa monopolizza il micro per 100ms, la ISR del timer sarebbe eseguita con un ritardo di almeno 100ms.
Si pensa che un IRQ non possa essere persa e che comunque sarà eseguita prima o poi, invece ciò può accadere più spesso di quanto non si pensi.

Se ci illustri per cosa usi il timer e come forse si può trovare una soluzione.
Ricorda che il PWM una volta impostato viene generato dal timer in modo indipendente dalle altre operazioni
eseguite. La tua applicazione potrebbe rientrare tra quelle dette mission-critical o soft-realtime o altro, riuscire a categorizzare la tua applicazione ti permette di decidere se ti serve un RTOS e il tipo di scheduler ecc.

Esempio, cosa accade se c'è uno slittamento dei tempi occasionale, se dei vincoli temporali occasionalmente
non vengono rispettati?
lo puoi accettare o e un disastro di proporzioni bibliche? smiley-grin

Ciao.
27  International / Software / Re: Interrupt contemporanei on: April 06, 2014, 08:07:55 pm
1) L'esecuzione di codice interno a una ISR avviene per default con gli interrupt globali disabilitati.
Terminata la ISR vengono riabilitati gli interrupt.
In sostanza e come eseguire cli() all'ingresso e sei() alla fine della ISR.

2) Si

3) No

Per la (3) se scrivessi del codice per gestire la seriale senza interrupt dovresti anche verificare se gli interrupt della seriale sono disabilitati e se non lo sono provare a vedere cosa succede disabilitandoli.
Temo però che si incasinino un bel poco di cose, ma per saperlo con certezza bisognerebbe analizzare il codice
di Arduino core oppure provare e vedere cosa accade.

Ciao.


28  International / Software / Re: Problema con struttura dati on: April 06, 2014, 07:57:38 pm
Ti ho suggerito una inizializzazione non supportata dallo standard usato da Arduino, ciò è solo possibile con C++11.
Quindi inizializza Matrix nel modo convensionale da dentro la funzione.
Code:
Matrix[0][0] = LOW;
    Matrix[0][1] = LOW;
    Matrix[0][2] = LOW;
    // ecc


Se anche così non va cerca altri problemi, perché ho provato e funziona.

PS: l'inizializzazione che hai usato è valida per inizializzare array e strutture a compile-time
e non a run-time. A partire da C++11 è valida in entrambe i casi.

Ciao.
29  International / Software / Re: Problema con struttura dati on: April 06, 2014, 08:05:26 am
Ora che sono più sveglio, capisco di che si tratta.
Il problema è nella inizializzazione della array Matrix che non viene accettata.
Risolvi inizializzando la matrice sul posto in cui la dichiari.

Code:
struct Zone_t {
  int AnalogPin;
  int pinMatrix[3];
  int firstRead[8];
  int AnalogRead[8];

  int Matrix[8][3] = {
                          {LOW,LOW,LOW}
                        , {LOW,LOW,HIGH}
                        , {LOW,HIGH,LOW}
                        , {LOW,HIGH,HIGH}
                        , {HIGH,LOW,LOW}
                        , {HIGH,LOW,HIGH}
                        , {HIGH,HIGH,LOW}
                        , {HIGH,HIGH,HIGH}
                    };



In merito a _t non è che funziona se c'è o meno il _t, si tratta di una convenzione adottata dai programmatori,
per leggere e comprendere facilmente il codice. Il rischio è per me che continuando a visionare codice
che non adatta le convenzione mi imbastardisco, cioè come si dice praticando lo zoppo...

Ciao.
30  International / Software / Re: Problema con struttura dati on: April 05, 2014, 08:05:13 pm
Stavo per andare a dormire quando ho visto il tuo post, quindi.... smiley-sleep
Non è che si capisce molto quello che vuoi fare, cioè ci sono altri errori che spunteranno fuori
anche sistemando la struct.

Comunque:
struct newtypename {
       type membername;
       type membername;
       type membername;
       ecc...
};

La parentesi { apre un  blocco di codice che devi chiudere con } e struct in particolare richiede il punto e virgola
alla fine.

Crei variabile di tipo Zone_t con
Code:
Zone_t zone0;

Accedi ai membri di zone0 così:
Code:
zone0.AnalogPin = 2;
zone0.AnalogRead[0] = -10;

Poi si tratta di C++ non di C, quindi: Zone anziché Zone_t.
I membri della struct sono variabili e li chiami con la iniziale minuscola ecc, insomma in camelCase, analogPin ecc

Spero di averti illuminato.
Ciao.
Pages: 1 [2] 3 4 ... 187