Show Posts
Pages: 1 ... 434 435 [436] 437 438 ... 635
6526  International / Generale / Re: Lettura / scrittura digitale con registri on: December 24, 2011, 10:56:53 am
Sei sicuro? Quindi usando PORTC dovrei scrivere: PORTC = B10000000; ?

Per settare Analog 0 usa sbi (PORTC,0), per resettarlo cbi (PORTC,0), ricordati che prima devi impostare A0 come out digitale altrimenti non puoi scriverci sopra.
6527  International / Generale / Re: comoda alternativa ad arduino ISP on: December 24, 2011, 10:41:07 am
Purtroppo però non funziona con la uno perchè avendo l'atmega8u non vi è l'interfaccia del connenttore x3

Anche con la 2009, o altra scheda con l'FTDI, funziona malissimo, riesci a programmare una volta su cinque quando va bene.

6528  International / Generale / Re: Lettura / scrittura digitale con registri on: December 24, 2011, 10:09:41 am
Non riesco davvero a capire come mai!!

Perché non leggi correttamente lo schema, Analag 0 è PORTC 0, cioè il primo bit  smiley-grin
SBI e CBI funzionano perfettamente, le uso normalmente in quasi tutti i miei programmi per AVR.
6529  International / Generale / Re: Buon Natale e Felice Anno Nuovo! on: December 24, 2011, 04:49:54 am
E speriamo sia l'inizio di arduino due smiley-wink

Ma non l'avete letto l'annuncio ufficiale sul blog ?
Arduino DUE non arriverà mai perché esce prima Arduino TRE  smiley-grin smiley-mr-green smiley-grin
6530  International / Generale / Re: Arduino e ESC - invertire senso di rotazione del motore on: December 24, 2011, 01:10:49 am
Ho provato con un motore brushed, portando ovviamente il motore a 0 e poi invertendo e funzionava!

Se inverti tra loro due fili di un BLDC ottieni l'inversione del senso di rotazione, se fatto a motore fermo con ESC disarmato tramite un relè va bene, da non fare assolutamente col motore in marcia pena la distruzione immediate del ESC, è come mettere in corto due fasi.
Gli ESC leggono la posizione del motore tramite la b.e.m.f. nei motori sensorless oppure tramite gli appositi sensori (encoder a 120°) nei sensored, tutti motori per aereo sono sensorless, solo quelli per auto di ultima generazione sono sensored (molto costosi) con i relativi ESC che prevedono anche la retromarcia.
6531  International / Generale / Re: Buon Natale e Felice Anno Nuovo! on: December 24, 2011, 01:04:51 am
Auguri di buon natale e felice anno nuovo (alla faccia dei Maya  smiley ) a tutti.
6532  International / Generale / Re: negozio arduino ??!! on: December 24, 2011, 01:02:22 am
insomma puoi comprare l'arduino in negozio e tutti i componenti direttamente all'RS (serve prima prenotare su internet).
Se sei in zona è la soluzione ottimale!

Da Franchi in via Padova al magazzino della RS sono oltre 10 km di strada, tra andata e ritorno sono più di 20km, più il tempo perso, con il prezzo attuale della benzina a momenti costa meno la consegna a casa dal loro corriere, solo 6.5 Euro e ti arriva tutto il giorno dopo se fai l'ordine prima delle 19:00.

6533  International / Generale / Re: Lettura / scrittura digitale con registri on: December 24, 2011, 12:51:35 am
Il modo più semplice, e veloce, per controllare i singoli bit di un registro è usare la SBI e CBI assembly, puoi farlo da C usando l'assembly inline oppure le definisci come macro define in questo modo:

Code:
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))

Poi da C le usi in questo modo:

Code:

sbi(PORTB,5); // setta il bit 5 PORTB (led acceso)

cbi(PORTB,5); // resetta il bit 5 PORTB (led spento)


Ovviamente devi prima settare come out l'eventuale pin che vuoi controllare, verifica sullo schema la corrispondenza tra pin di Arduino e pin/port reali del AVR.
Le macro vengono compilate utilizzando una singola linea assembly, cioè la SBI o la CBI che richiedono due cicli macchina (125 ns @ 16 MHz) per l'esecuzione e, ovviamente, non hanno alcun effetto sugli altri bit del registro.
CBI e SBI si possono usare su tutti i registri del AVR, quindi non solo per i PORTx, vanno benissimo anche per settare i vari bit dei registri macchina per le varie periferiche e funzioni di sistema.

p.s.
Buttate il C++ alle ortiche e imparate ad usare il C vero, cioè quello descritto sul K&R poi standardizzato come C ANSI smiley-mr-green


6534  International / Generale / Re: Accelerometro BMA180 on: December 23, 2011, 01:16:47 pm
SDA e SCL sono collegati correttamente.

Sullo schema non ci sono le indispensabili resistenze di pull up su SDA e SCL, se non le hai messe è normale che non funzioni, Arduino si pianta perché le routine della I2C sono sono bloccanti in caso di errore.

6535  International / Generale / Re: Finalmente Arduino Open Source on: December 21, 2011, 11:32:06 pm
Se guardate bene, hanno clonato anche la Luigino328, quella che loro chiamano YourDUINO328 mi pare proprio la replica della scheda progettata da astro.

Allora sono proprio bravo se i Cinesi ritengono sia il caso di clonare un mio progetto   smiley-mr-green
6536  International / Generale / Re: Timer Interrupt on: December 21, 2011, 10:21:33 am
tu non npuoi modificare direttamente un bit, ma solo il registro intero.

Mica è vero, in assembly c'è sbi e cbi che permettono di settare/azzerare a piacere i singoli bit di un qualunque registro, le puoi usare direttamente anche in C.
6537  International / Generale / Re: [ot] help creazione componente eagle on: December 21, 2011, 10:05:39 am
GRAZIE! il pad blu è un normale pad SMD, ma i rettangoli rossi sono normali poligoni. Essi verranno metalizzati e scoperti come i PAD? o devo usare qualche altro trucco?

Non devi fare altro che tracciare le piste, magari tramite poligoni, come serve e fare delle forature del giusto diametro, nulla di più e nulla di meno, se le piste/pad sono dei thermals (dissipazione termica) dovrai mascherarli per il solder in modo che rimangono a vista.

6538  International / Generale / Re: [ot] help creazione componente eagle on: December 21, 2011, 09:45:39 am
il problema non è nel disegno del componente, ma nel fatto che questo componente, nella PCB, vuole dei buchi, alcuni dei quali DEVONO essere ramati.

Tutti i fori sono metallizzati, fa parte del processo produttivo del pcb e non può essere diversamente perché la prima operazione che viene fatta è la foratura e subito dopo la metallizzazione.
6539  International / Generale / Re: Imparare Assembly AVR on: December 21, 2011, 05:37:42 am
Astro mi puoi lincare il reference manual ? Non lo trovo, grazie

Per Atmel lo trovi sul dvd, liberamente scaricabile, "Technical Library" , purtroppo l'accesso è lentissimo e ci vogliono molte ore per scaricarlo, però dovresti trovarlo facilmente sotto forma di torrent.


6540  International / Generale / Re: Imparare Assembly AVR on: December 21, 2011, 12:33:44 am
Hai colto nel segno, in genere libri che descrivono i registri e l'architettura di una determiata piattaforma sono proprio libri sull'assembly perchè permette di avere un accesso totale alla piattaforma.

Per i micro/mcu devi sempre fare riferimento al data sheet del modello specifico e al reference manual della famiglia, tutti e due li trovi sul sito del produttore, idem per l'assembly specifico.
Non è assolutamente vero che solo con l'assembly hai il totale accesso al micro, lo ottieni anche col C visto che puoi manipolare i singoli registri macchina con la stessa efficienza dell'assembly.
Un programma in C viene tradotto in assembly in modo molto efficiente, un bravo programmatore C ottiene gli stessi risultati di un bravo programmatore assembly in un decimo del tempo, un ottimo programmatore C ottieni risultati eccellenti senza alcuna necessità di ricorrere all'assembly salvo l'inserzione di brevi routine per ottimizzare al massimo alcune funzionalità e nessun programmatore assembly può fare meglio.
Pages: 1 ... 434 435 [436] 437 438 ... 635