PDA

View Full Version : Pic & Assembler: necessito suggerimenti!!!


gpc
31-03-2003, 16:32
Salve a tutti!

Ho bisogno di un suggerimento, anche solo a livello di idea, per fare una cosina con dei pic 16f84.
La mia situazione è la seguente:
Ho bisogno che da tastiera vengano immessi tre numeri, i primi due compresi tra 0 e 1000, il terzo non lo so, diciamo tra 0 e 9999, e questi tre numeri devono essere memorizzati da qualche parte e passati ripettivamente ad altri due pic e ad un contatore.
Nello specifico, anche se non è rilevante, i primi due numeri sono la frequenza di due onde che devono essere generate dai due pic e il terzo è il ritardo in millisecondi tra un'onda e l'altra.
Come posso fare?
Il primo problema che devo affrontare è gestire l'ingresso da tastiera e riportalo sul display.
Per far questo interfaccio la tastiera con un encoder che mi porta le nove cifre 1-9 su quattro bit, e lo 0 lo assegno ad un bit a sè (dannato encoder, hai quattro bit, ma fammi 10 combinazioni almeno! mah...). Avevo pensato quindi di assegnare un interrupt ai cambiamenti di stato sulla linea B (usata per il bus di comunicazione) per rilevare il momento in cui si premeva un tasto. Ricevuto l'interrupt, il PIC registrava la prima cifra e passava alla seconda.
Già a questo punto ho un'altra possibilità: posso creare un circuitino con qualche or che mi dia un segnale alto nel momento in cui premo un qualunque tasto; questo segnale viene mandato sul bus sull'ottavo bit, tanto per dire, e nel momento in cui il pic legge questo segnale accetta il dato. Mi sembra molto più snella questa seconda soluzione...
Ok, diciamo che ho preso dentro la prima cifra. Ora devo tradurla nel giusto codice perchè venga visualizzata sul display a led (sì, non è un lcd, ha 8 pin per i sette segmenti segmenti + il punto... che non mi serve, quindi 7 segnali), ovvero se abbiamo un 1, che arriverà come 00000001, dobbiamo farlo diventare un 00100001, un due che arriva come 00000010 deve diventare 10011011 e così via. Come posso fare questo lavoro? Sinceramente non ho molte idee per questo... un confronto bit a bit? Diventa una roba allucinante... il problema è che sulla tastiera ho 10 cifre: se avessi 10 linee disponibili per far arrivare direttamente i 10 segnali sarebbe una passeggiata, ma così sinceramente non so, perchè le dieci linee proprio non ce le ho.
Altro problema: quando passo alla seconda cifra, devo praticamente fare 1a_cifra + 2a_cifra*10, e così via con la terza e con la quarta. Come posso fare?
Infine, una volta fatto questo, come faccio a mandare il numero binario che ho trovato (che sarà di 10 bit, quindi avrò bisogno di passarlo con due cicli di clock) all'altro PIC?
Insomma, ci sono diversi "dettagli" che dovrei approfondire :p

Ho assolutamente bisogno di una manina... vi pregoooo!!

gpc
01-04-2003, 13:53
Mi dicono dalla regia che faccio troppe domande in una volta e vi intimorisco... :p Preciso quindi che sono ovviamente ben accette anche risposte parziali... :D

ilsensine
02-04-2003, 13:26
Già a questo punto ho un'altra possibilità: posso creare un circuitino con qualche or che mi dia un segnale alto nel momento in cui premo un qualunque tasto; questo segnale viene mandato sul bus sull'ottavo bit, tanto per dire, e nel momento in cui il pic legge questo segnale accetta il dato. Mi sembra molto più snella questa seconda soluzione...
Sì, solo che invece di mandarlo sul bus dati, ci piloti un monostabile che genera una interruzione. Nel frattempo, con logiche a parte, prepari i valori da mandare sul bus dati:
- 2 bit per selezionare il tasto premuto
- 4 (o 5, stando al tuo tastierino) bit per il valore numerico, lasciano al controller il compito di trasformarlo nel valore decimale 0-9.
Nota che, per dare tempo a tutte le logiche di stabilizzarsi, l'interrupt deve essere generato quando il monostabile torna "a riposo" (ovvero sul fronte di discesa).

gpc
02-04-2003, 19:17
Originally posted by "ilsensine"


Sì, solo che invece di mandarlo sul bus dati, ci piloti un monostabile che genera una interruzione. Nel frattempo, con logiche a parte, prepari i valori da mandare sul bus dati:
- 2 bit per selezionare il tasto premuto
- 4 (o 5, stando al tuo tastierino) bit per il valore numerico, lasciano al controller il compito di trasformarlo nel valore decimale 0-9.
Nota che, per dare tempo a tutte le logiche di stabilizzarsi, l'interrupt deve essere generato quando il monostabile torna "a riposo" (ovvero sul fronte di discesa).

Io ho sviluppato il programma e il circuito in questa maniera:
la tastiera è collegata ad un encoder 10-4 che resitutisce un segnale di 4 bit pari alla codifica binaria della cifra premuta;
quando si preme un tasto viene inviato un segnale sull'ottavo bit del bus;
quando il PIC legge un valore alto sull'ottavo bit memorizza il dato presente su primi 4 (sfido qualcuno a premere due tasti in un microsecondo :D ) e resta in attesa finchè non viene rilasciato il tasto;
continua con le istruzioni successive.

Mi pare che possa funzionate.
Adesso sto costruendo il display con i latch e tutto il resto, sono a metà (e mi sono accorto che devo aggiungere una resistenza su ogni led, maremma porcella... quelli funzionano perfettamente anche direttamente sull'alimentazione, non fanno una piega, ma mi sono accorto che ogni segmento così ciuccia 150mA... per otto segmenti, per otto display fanno... :rolleyes: 9.6A :eek: con 100 ohm diventano 24mA, per cui 1.5A nella peggiore delle ipotesi è già più accettabile... :rolleyes: se metto una resistenza più alta non si accendono, sono display strani, ho provato a fargli passare i canonici 5mA ma non si vede 'na cippa...).
Una volta che ho finito questo raccatto un tastierino e inizio a provare il tutto, sul simulatore funziona bene, almeno l'interfaccia col mondo esterno, ma non so se poi all'interno faccia quello che voglio io... non riesco a vedere i registri... :muro:
Non è mica che qualcuno abbia un simulatore/emulatore/debugger per i PIC?

a2000
02-04-2003, 22:34
Per esempio:

per l'input da tastiera:
web.tiscali.it/i2viu/electronic/tastiera.htm

per la visualizzalizzazione su display:
web.tiscali.it/i2viu/esami/display.htm
www.nutchip.com/progetti/counter.htm

comunque dovresti potere fare TUTTO con il microcontrollore.
(senza necessariamente passare al PIC16F87 o ST6265: AD converter, generatore PWM, ...)

ilsensine
03-04-2003, 10:39
Originally posted by "gpc"


quando il PIC legge un valore alto sull'ottavo bit memorizza il dato presente su primi 4 (sfido qualcuno a premere due tasti in un microsecondo :D ) e resta in attesa finchè non viene rilasciato il tasto;
Non va, se il tastierino non "ripulisce" bene il segnale di "pulsante premuto", puoi avere dei glitch che eviti solo con un monostabile o simili. Se addirittura (non ho capito se è questo il caso) non esiste un segnale di pulsante premuto ma devi ricavartelo tu dai valori in uscita, la situazione si complica un pochino in quanto dovresti usare dei registri sincroni prima e dopo la logica di decodifica, per evitare dei glitch di transizione.

gpc
03-04-2003, 13:30
Originally posted by "a2000"

Per esempio:

per l'input da tastiera:
web.tiscali.it/i2viu/electronic/tastiera.htm

per la visualizzalizzazione su display:
web.tiscali.it/i2viu/esami/display.htm
www.nutchip.com/progetti/counter.htm

comunque dovresti potere fare TUTTO con il microcontrollore.
(senza necessariamente passare al PIC16F87 o ST6265: AD converter, generatore PWM, ...)

Grazie mille per i link!
Ho guardato il codice ma è scritto in assembler per l'ST mentre io devo usare un PIC, comunque vedo come lo fa e prendo spunto! Grazie ;)

gpc
03-04-2003, 13:38
Originally posted by "ilsensine"


Non va, se il tastierino non "ripulisce" bene il segnale di "pulsante premuto", puoi avere dei glitch che eviti solo con un monostabile o simili. Se addirittura (non ho capito se è questo il caso) non esiste un segnale di pulsante premuto ma devi ricavartelo tu dai valori in uscita, la situazione si complica un pochino in quanto dovresti usare dei registri sincroni prima e dopo la logica di decodifica, per evitare dei glitch di transizione.

Sì certo, se il segnale non è pulito posso avere dei problemi.
Visto che la cosa si sta complicando non poco e non posso mettere altri microcontrollori e robette varie... per cui, da quello che mi dici, potrei piazzare una fila di condensatori per filtrare i "disturbi" e tenere il segnale più costante ed evitare il problema dei glitch.
Comunque ho quasi finito di costruire il display, raccatto un tastierino (dovrei averlo da qualche parte...) e provo... ;)

ilsensine
03-04-2003, 13:54
Visto che la cosa si sta complicando non poco e non posso mettere altri microcontrollori e robette varie... per cui, da quello che mi dici, potrei piazzare una fila di condensatori per filtrare i "disturbi" e tenere il segnale più costante ed evitare il problema dei glitch.
Non è una soluzione affidabile. Un miglioramento parziale lo puoi avere pilotando dei trigger di Schmidt con il segnale filtrato dai condensatori, e bufferizzare l'uscita di questi ultimi con dei latch sincroni con il clock di sistema. Dipende tutto da "quanto deve essere robusto" il dispositivo.

a2000
03-04-2003, 15:44
Originally posted by "ilsensine"


Non è una soluzione affidabile. Un miglioramento parziale lo puoi avere pilotando dei trigger di Schmidt con il segnale filtrato dai condensatori, e bufferizzare l'uscita di questi ultimi con dei latch sincroni con il clock di sistema. Dipende tutto da "quanto deve essere robusto" il dispositivo.

Ma i microcontrollori non servono per eliminare componenti esterni, soprattutto logiche digitali ?

ilsensine
03-04-2003, 15:53
Originally posted by "a2000"



Ma i microcontrollori non servono per eliminare componenti esterni, soprattutto logiche digitali ?
Certo, elimina il grosso, ma un pò di "glue logic" potrebbe essere necessaria (in particolare in presenza di segnali non sincroni o con glitch)

a2000
03-04-2003, 17:09
Originally posted by "ilsensine"


Certo, elimina il grosso, ma un pò di "glue logic" potrebbe essere necessaria (in particolare in presenza di segnali non sincroni o con glitch)

purchè sia colla di pesce e non epossidica, sennò i 10 € diventano 50 !

e poi se non deve andare sullo Shuttle (e anche se ci deve andare ...) qualche rischio (almeno sul prototipo) lo prenderei.

gpc
03-04-2003, 17:54
Originally posted by "ilsensine"


Non è una soluzione affidabile. Un miglioramento parziale lo puoi avere pilotando dei trigger di Schmidt con il segnale filtrato dai condensatori, e bufferizzare l'uscita di questi ultimi con dei latch sincroni con il clock di sistema. Dipende tutto da "quanto deve essere robusto" il dispositivo.

Sì, questa è un'altra possibilità... basterebbero un paio di 373... ma sinceramente non credo che valga la pena. Beh, vedrò, tanto questo è in effetti solo un prototipo e il peggio che può succedere è che prenda dentro due volte la cifra invece che una :p
Comunque adesso ho finito il display, devo andare a prendere un paio di cosucce, sistemo la logica del bus indirizzi e direi che posso iniziare a provare il programma ;)

a2000
03-04-2003, 18:43
Originally posted by "gpc"



Sì, questa è un'altra possibilità... basterebbero un paio di 373... ma sinceramente non credo che valga la pena. Beh, vedrò, tanto questo è in effetti solo un prototipo e il peggio che può succedere è che prenda dentro due volte la cifra invece che una :p
Comunque adesso ho finito il display, devo andare a prendere un paio di cosucce, sistemo la logica del bus indirizzi e direi che posso iniziare a provare il programma ;)

Bravo gpc !

Che te frega!
Tanto al peggio rimani attaccato al Triac e la Philips ArenaVision da 1800W si accenderà e spegnerà a causa di qualche glitch di comunicazione tra ipotalamo e muscolo dell'ulna. :D :D

a2000
03-04-2003, 18:52
a proposito: meglio PIC o ST6 ?

gpc
03-04-2003, 20:32
Originally posted by "a2000"

a proposito: meglio PIC o ST6 ?

Boh! Io ho sempre usato solo il PIC... non lo so. Che differenze ci sono?

a2000
03-04-2003, 23:54
Originally posted by "gpc"



Boh! Io ho sempre usato solo il PIC... non lo so. Che differenze ci sono?

appunto.
chiediamolo a ilsensine che mi sembra più glue implied

:p

gpc
04-04-2003, 00:49
Ok, montato tutto.

Primo problema: non funziona una mazza. :muro:
Causa primo problema: o il decoder degli indirizzi dei latch o i latch stessi non sono quello che vogliono sembrare dai datasheet e non ce la fanno a star dietro ai comandi del pic.
Il datasheet parla di 25ns come tempo minimo di permanenza del dato o di decodifica, il pic fa una istruzione ogni microsecondo quindi dovrebbe starci larghissimo... e invece nisba...
Adesso devo fare un po' di prove per mettere un delay tra la scrittura su una periferica e l'istruzione successiva, che scatole...
Mi sa tra l'altro che dovrò snellire qualcosa perchè sono a 850 istruzioni su 1024 disponibili e devo ancora fare alcune cosette... Beh, per adesso, accantonato il programma principale, sono riuscito a fargli scrivere "12345678" sul display (grande soddisfazione :D è il primo "lavoro" che mi "riesce" :p con un pic!!!)... cioè, quasi, non saltano fuori le stanghette orrizontali del 2 e del 3, non so come mai, se le accendo manualmente vanno... bohhhh!!! domani vedrò anche quello, comunque la baracca inizia a prendere forma :D

a2000
04-04-2003, 12:49
quante porte usi per i display ?
che driver usi per pilotare i display ?

gpc
05-04-2003, 00:59
Originally posted by "a2000"

quante porte usi per i display ?
che driver usi per pilotare i display ?

Ohhh sta venendo che è una figata! :D
A forza di prova-programma-debugga (santo debugger, perchè non ci sei mai quando mi servi?! :muro: ) sto iniziando a farlo andare benino...

Ah il display è una cosa fatta così: ho quattro bit di indirizzi, le porta A:0-3, che vanno al decoder dei chip select e che mi servono per selezionare il Latch Enable del latch associato ad ogni display a otto segmenti (sette + il punto).
I latch sono collegati sul bus e ognuno al suo display: non faccio altro che mettere fuori l'indirizzo del display, aspettare un attimino che il decoder metta disponibile l'indirizzo, mettere i dati sul bus e rilasciare l'indirizzo. Sto usando un ciclo di wait da 128uS per dare tempo al decoder di funzionare, stando al datasheet è un'eternità rispetto a ai nanosecondi di cui parla, ma tant'è, con un microsecondo non funziona. Potrei sicuramente farlo andare più veloce ma non importa, così va perfettamente.

Poi il chip select è collegato anche al buffer per la tastiera (quasi finita, ah, ho messo i condensatori e ho fatto fare la pic un doppio controllo sul rilascio e pressione del tasto a distanza di un po' di tempo per eliminare i disturbi e funziona utilizzando un filo per chiudere li contatto -quindi glitch a profusione :D ), per il timer e per il secondo pic che dovrà lavorare coi dati forniti da questo su cui sto lavorando adesso... insomma, un po' di cosette ;)

Appena riesco vi posto una foto del prototipo :p

gpc
05-04-2003, 19:11
Ecco le foto! :)
Sono finalmente riuscito a far andare la tastiera... Qualche problemino software e qualche problemino hardware, ma alla fine ce l'ho fatta!
Allora:

Il sistema nel suo insieme: tastiera, display e breadboard con pic e decoder chip select
http://gpaolo79.interfree.it/pic1.jpg

primo piano della tastiera
http://gpaolo79.interfree.it/pic2.jpg

zoom sulla tastiera, con la logica sottostante
http://gpaolo79.interfree.it/pic3.jpg

il display: quelli sotto sono i latch e quelli a lato in verticale sono due not (maledizione anche a chi ha deciso di fare i componenti un po' in logica positiva e un po' in negativa... :mad: )
http://gpaolo79.interfree.it/pic4.jpg

il display acceso con un dato inserito da tastiera (per far vedere che funziona davvero :p )
http://gpaolo79.interfree.it/pic5.jpg

zoom sul PIC e sul decoder...
http://gpaolo79.interfree.it/pic6.jpg

il logo dell'aggeggio (GP 2003 che non è il gran premio ma sta per Gian Paolo, che sarei io :sofico: )
http://gpaolo79.interfree.it/pic7.jpg

a2000
05-04-2003, 20:35
quando si dice la miniaturizzazione !

circuito elettrico ?

gpc
06-04-2003, 02:36
Originally posted by "a2000"

quando si dice la miniaturizzazione !

circuito elettrico ?

Eheh, iniziamo a chiedere troppo :D
E' tutto in testa per ora, purtroppo sono fatto così, mi scoccia perdere tempo a disegnare, lo faccio solo quando mi blocco e mi perdo :p , prima o poi lo butto giù, ma per ora ho praticamente fatto tutto senza disegnare nulla :)

a2000
06-04-2003, 11:13
ah, ho capito, fai come quei muratori che si fanno la casa senza progetto.

gpc
06-04-2003, 11:29
Originally posted by "a2000"

ah, ho capito, fai come quei muratori che si fanno la casa senza progetto.

Ehm... :rolleyes:
HO detto che il progetto ce l'ho in testa, semplicemente non l'ho scritto... completamente, almeno. Qualcosa, ovvio, l'ho buttato giù, ma tieni anche presente che si tratta solamente di collegare pin di un integrato a pin di un altro integrato. Non c'è nessun altro componente (tranne, tanto per dire, i condensatori sui tasti per stabilizzare il segnale) e quindi non è che ci sia bisogno di disegnare chissà quale circuito. Devi solo pensare a come collegare i vari integrati, poi per i collegamenti ci sono i datasheet...

a2000
06-04-2003, 15:55
appunto, come i muratori.

:)


circuito elettrico ?

gpc
06-04-2003, 16:05
Originally posted by "a2000"

appunto, come i muratori.

:)


circuito elettrico ?

Macchè muratore e muratore!
Ho buttato giù qualcosa ma non ha senso riepire fogli di righe quando si fa molto prima a pensare! Che bisogno c'è di scrivere che gli ingressi del latch vanno attaccati al bus e le uscite al display? Lo fai e basta! Guardi sui datasheet quali sono i pin e sei a posto, che devi disegnare a fare? Guarda che un conto sono circuiti analogici come amplificatori etc, dove sfido chiunque a farne mezzo senza disegnarsi tutto, un conto è un circuito digitale dove devi solo collegare delle piste e basta -e per questo ci sono i datasheet con tutte le informazioni-.
Ho preso giù la piedinatura dei display, ho pensato come collegare il pic, ho scritto i collegamenti standard per non sbagliarmi ma poi per il resto non c'è stato bisogno di scrivere proprio niente. Che dovevo scrivere per la tastiera, tanto per dire? Che il tasto 1 andava attaccato all'ingresso 1 dell'encoder, l'uscita 1 dell'encoder andava attaccata all'ingresso 1 del not e che l'uscita del not andava attaccata sia all'ingresso 1 dell'or per il segnale di tasto premuto e al buffer dell'uscita? Ma dai... Non è questione di muratore, è tutto fatto sulla millefori essendo pure il prototipo.
Quando sarà finito, testato, provato e controllato allora farò il mio bel disegnino col PSpice e lo stampato, ma ti assicuro che non c'è proprio niente da disegnare... ti posso fare la schema a blocchi se proprio proprio, ma è puramente concettuale.
Ovviamente sto parlando di un circuito con quattro, cinque integrati, non certamente di una scheda madre da PC...

a2000
06-04-2003, 16:16
scommetti che se avessi scritto qualcosa o meglio , avresti usato la metà dei componenti e un quarto degli eur ?

1 micro
1 tastierino
4 display
1 driver per i display

10 euri di altro

fine.

P.S.
circuito elettrico ?

a2000
06-04-2003, 16:18
no anzi:

elenco componenti ?

gpc
06-04-2003, 16:25
Originally posted by "a2000"

scommetti che se avessi scritto qualcosa o meglio , avresti usato la metà dei componenti e un quarto degli eur ?

1 micro
1 tastierino
4 display
1 driver per i display

10 euri di altro

fine.

P.S.
circuito elettrico ?

Senti, sto iniziando a perdere la pazienza...

Al di là del fatto che su queste cose c'ho fatto un esame qualche mese fa, quindi QUALCOSA HO LETTO, al di là del fatto che ho letto TUTTI I DATASHEET di quello che mi poteva servire, al di là del fatto che ho PENSATO a tutto il circuito prima di mettermi a farlo, al di là del fatto che ho usato praticamente tutto materiale che avevo già in casa non essendo proprio il primo circuito che faccio, al di là del fatto che ho adattato l'idea al materiale che avevo, al di là del fatto che scrivere non vuol dire pensare, non mi pare proprio che sia il caso di sentirmi fare la predica su come lavoro.

Vuoi la lista dei componenti?
2 Pic 16F84
3 7404 (not)
1 7432 (mi pare, sono quattro OR)
8 74373 (latch)
1 Decoder 4-16
1 Encoder 10-4
1 Buffer 8 ingressi, 74244 mi pare.
8 condensatori 0.1uF 16V
10 tasti
64 resistenze da 100 ohm per i segmenti del display
10 resistenze da 470 ohm di pullup per le linee dei tasti
8 display a 7 segmenti a led
zoccoli vari
filo a volontà

Soddisfatto?

/\/\@®¢Ø
06-04-2003, 16:37
Originally posted by "gpc"


Ovviamente sto parlando di un circuito con quattro, cinque integrati, non certamente di una scheda madre da PC...
Non prendertela, a2000 e' abituato al , dove ci vuole pianificazione anche per un "Hllo World" :D ( :p )

gpc
06-04-2003, 16:41
Non prendertela, a2000 e' abituato al , dove ci vuole pianificazione anche per un "Hello World" :D ( :p )

Ohhh, va', un po' di sostegno morale :p
Come minimo è ingegnere... dal tipo di "apertura mentale" nei confronti dei metodi di lavoro degli altri (e soprattutto dai "se tu avessi letto" "se tu avessi fatto" "voglio lo schema", vicina ai 361°, direi che ha anche i voti alti... se mi chiedeva la funzione di trasferimento del circuito ne ero certo!! :D

a2000
06-04-2003, 17:42
scarico qualche foto di mia nipote, vado a casa, e poi vi orzo a tutti.
just a moment !

:p :p :p

MickMacello
06-04-2003, 18:30
gpc, questo aggeggio te lo stai facendo per hobby o x dovere ?

a2000
06-04-2003, 19:47
no, per hobbit.

gpc
06-04-2003, 20:01
Originally posted by "MickMacello"

gpc, questo aggeggio te lo stai facendo per hobby o x dovere ?

Una via di mezzo.
Mi è stato chiesto di realizzare il controllo per un generatore di impulsi utilizzato in medicina per lo studio della reazione ai farmaci dei tessuti nervosi.
La persona che mi ha proposto il lavoro ne ha fatti una trentina d'anni fa e li ha venduti fino in Svezia, tanto per dire. Il fatto è che, se la parte finale di potenza è tutt'ora ottima, la parte di controllo è superata.
Io ho approfittato dell'occasione per fare un po' di pratica con l'elettronica digitale e i microcontrollori... e questo è quello che sta saltando fuori ;)
Adesso non sa se verrà venduto o meno, ma in ogni caso ha detto che il lavoro potrà essere pubblicato su qualche rivista. La questione è il software più che il circuito in sè (cosa che "qualcuno" fatica a capire) che è banale.

(quindi NON è hobby)

gpc
06-04-2003, 20:02
Originally posted by "a2000"

no, per hobbit.

Toh, ho una seconda identità, non lo sapevo... :rolleyes:


PS: stai rompendo...

a2000
06-04-2003, 20:04
Originally posted by "gpc"



PS: stai rompendo...

e non ti ho ancora risposto ... :)

gpc
06-04-2003, 20:07
Originally posted by "a2000"



e non ti ho ancora risposto ... :)



hmmmmm!!! Mi vien da dire, meno male! :D
Mi dai un anticipino? Magari presentandoti un attimo... chi sei, che fai, come mai sei così informato su progettazione e programmazione (perchè rispondi per gli altri, perchè credi di sapere tutto, perchè credi di essere il migliore...)? ;)

a2000
06-04-2003, 20:11
faccio l'animatore. :cool:

a2000
06-04-2003, 20:12
il rianimatore. :eek:

a2000
06-04-2003, 23:33
Originally posted by "gpc"


.....
Vuoi la lista dei componenti?
2 Pic 16F84
3 7404 (not)
1 7432 (mi pare, sono quattro OR)
8 74373 (latch)
1 Decoder 4-16
1 Encoder 10-4
1 Buffer 8 ingressi, 74244 mi pare.
8 condensatori 0.1uF 16V
10 tasti
64 resistenze da 100 ohm per i segmenti del display
10 resistenze da 470 ohm di pullup per le linee dei tasti
8 display a 7 segmenti a led
zoccoli vari
filo a volontà

Soddisfatto?


Mamma mia, c'è più elettronica sul tuo tastierino del C++ che su un drone in Iraq !!! :eek: :eek: :eek:

Ca++o ma sono 108 componenti !!!
Aspetta, aspetta .... ecco ho qui davanti una scheda di una stampante Epson ... aspetta che conto ... 48, 49, 50, 51, 52, 53 ... ecco sono 53 componenti sopra e sotto, compresa la batteria.

Ca++o ma sei un mito !
E se ti chiedono che sò ... un apricancello, un cercapersone, un controllore motore ?


Dal catalogo Distrelec i tuoi 108 componenti costano circa 59 €.

Con una soluzione più scritta:
1 PIC16F873
1 tastierino numerico 4*3
1 rete resistiva da 10k
4 display 7 segmenti
1 driver display tipo M5450

sono solo 30 €, cioè la metà del costo con un decimo dei componenti.

:cool:

Comunque non ti preoccupare, sei in buona compagnia: c'è anche chi per fare x' = b - x fa le chiamate API. :p




P.S.
l'esame l'hai passato, .... sì ?
o ti hanno aperto .... la mente. :D :D :D

gpc
06-04-2003, 23:43
Originally posted by "a2000"




Mamma mia, c'è più elettronica sul tuo tastierino del C++ che su un drone in Iraq !!! :eek: :eek: :eek:

Ca++o ma sono 108 componenti !!!
Aspetta, aspetta .... ecco ho qui davanti una scheda di una stampante Epson ... aspetta che conto ... 48, 49, 50, 51, 52, 53 ... ecco sono 53 componenti sopra e sotto, compresa la batteria.

Ca++o ma sei un mito !
E se ti chiedono che sò ... un apricancello, un cercapersone, un controllore motore ?


Dal catalogo Distrelec i tuoi 108 componenti costano circa 59 €.

Con una soluzione più scritta:
1 PIC16F873
1 tastierino numerico 4*3
1 rete resistiva da 10k
4 display 7 segmenti
1 driver display tipo M5450

sono solo 30 €, cioè la metà del costo con un decimo dei componenti.

:cool:

Comunque non ti preoccupare, sei in buona compagnia: c'è anche chi per fare x' = b - x fa le chiamate API. :p




P.S.
l'esame l'hai passato, .... sì ?
o ti hanno aperto .... la mente. :D :D :D

Maremma che rompipalle, ma non perdi occasione per dimostrare che non sai leggere?
Ho scritto che ho usato roba che avevo già a casa = spesa 0. O non ci arrivi? E poi non sei nemmeno molto attento, altrimenti avresti visto che il display è da otto cifre e non da quattro, come tu continui a ripetere. Forse sei troppo pieno di te per accorgerti dell'evidenza, ma non fa niente.
Fatto sta che nessuno ti ha chiesto "consigli" sul circuito, e le tue "perle di saggezza" sono quindi da considerarsi gratuite, e come ogni cosa gratuita, scadente.
Ti ha mai fatto notare nessuno che sei estremamente saccente e arrogante? No? Mah, forse hai anche problemi di udito oltre che di lettura.
Ah per curiosità, la roba che hai elencato credi che non abbia all'interno le stesse cose che ho usato io? L'integrazione, questa sconosciuta: subito pronti a pensare che la roba sparisca magicamente...
Oltretutto nella roba che hai elencato manca la parte relativa al chip select: visto che le maggior parte delle porte A sono impegnate in altre funzioni, ci vuole. Ops, salta fuori un altro componente.
E poi il tastierino cosa fai? Lo attacchi direttamente? Ha già tutta la logica integrata? Ops! Saltano fuori gli altri componenti.
Va' che roba, avrei risparmiato qualche resistenza. Caspita, proprio intelligente...
Ah l'esame l'ho passato con 27, grazie.

a2000
06-04-2003, 23:45
Non prendertela, a2000 e' abituato al , dove ci vuole pianificazione anche per un "Hello World" :D ( :p )

3 righe (due di costo fisso):

program /\/\@®¢Ø

print *, "Hello World"

end program /\/\@®¢Ø

invece quanti

include minchia1.h
include minchia2.h
.
.
.
include minchia108.h /* uno per ogni componente di hobbit */



ci vogliono in C++ ?

/\/\@®¢Ø
06-04-2003, 23:55
Certo che non ti si puo' fare una battuta che te la prendi :p ;)

#include <iostream>
int main { std::cout << "Hello World" ; }

Siamo piu' o meno li' !
(ed entrambi off-topic :D )

(Volendo col solo C si potrebbero ridurre a 1 :D )

a2000
07-04-2003, 00:07
Originally posted by "gpc"



Maremma che rompipalle, ma non perdi occasione per dimostrare che non sai leggere?
Ho scritto che ho usato roba che avevo già a casa = spesa 0. O non ci arrivi? E poi non sei nemmeno molto attento, altrimenti avresti visto che il display è da otto cifre e non da quattro, come tu continui a ripetere. Forse sei troppo pieno di te per accorgerti dell'evidenza, ma non fa niente.
Fatto sta che nessuno ti ha chiesto "consigli" sul circuito, e le tue "perle di saggezza" sono quindi da considerarsi gratuite, e come ogni cosa gratuita, scadente.
Ti ha mai fatto notare nessuno che sei estremamente saccente e arrogante? No? Mah, forse hai anche problemi di udito oltre che di lettura.
Ah per curiosità, la roba che hai elencato credi che non abbia all'interno le stesse cose che ho usato io? L'integrazione, questa sconosciuta: subito pronti a pensare che la roba sparisca magicamente...
Oltretutto nella roba che hai elencato manca la parte relativa al chip select: visto che le maggior parte delle porte A sono impegnate in altre funzioni, ci vuole. Ops, salta fuori un altro componente.
E poi il tastierino cosa fai? Lo attacchi direttamente? Ha già tutta la logica integrata? Ops! Saltano fuori gli altri componenti.
Va' che roba, avrei risparmiato qualche resistenza. Caspita, proprio intelligente...
Ah l'esame l'ho passato con 27, grazie.

Majal, ma adesso ho visto che sei ad Frara, allora sei uno sborone, allora non c'è cura: la sai la barzelletta del paracadutista ferrarese: "majal na gara" :D :D


1) Il display ti serve solo a quattro cifre e non rompere i C++, devi per forza scrivere GP per fare lo sbooorooone ?
LCD no eh ? non ce l'hai in casa ?
Prova a guardare nel cassettino delle uova dove c'è quel pezzo di grana vecchio che hai messo via per la salama da sugo. :p

2) "arrogante", dai su non fare il permaloso, siamo qui per divertirci no ? :mad:

3) "porte"
il PIC16F87 ha 3 porte I/O complete a 8 bit e 1 a 5 bit. :cool:

4)
"E poi il tastierino cosa fai? Lo attacchi direttamente? Ha già tutta la logica integrata? "
Ma tu vai a far del bene alla gente !
Sì il tastierino, no logic, fatto da 12 semplici interruttori lo attacchi direttamente con solo 7 resistenze (rete resistiva) da 10k.
Come ? Se ti fossi letto i link che ti ho dato ... :(

5) "esame"
esame de che' ? :eek:


:)

a2000
07-04-2003, 00:10
Originally posted by "/\/\@®¢Ø"

Certo che non ti si puo' fare una battuta che te la prendi :p ;)



sono sempre 24 caratteri (Fortran, anzi: fortran) a 39 !
:)

a2000
07-04-2003, 00:18
gpc,
lo sai che, majal, vendono 14 kg di Nuova Elettronica a 15 euri !
non so, potrebbe essere d'aiuto ....
poi magari gli mandi il tuo tastierino nei Progetti in sintonia !

:pig:


P.S.
certo che ho una certa nostalgia della salama, ... e la schiacciatina di ceci di ....... la fanno ancora ? :confused:

Ma dove stai ? Io ero in Via delle Volte.
Magari ti vengo a trovare.
Porto pure lo "stagnatore" e tutti i mie cassettini portacomponenti :D

gpc
07-04-2003, 00:33
Dai, ho capito che non sai leggere (o non sai capire, come ti viene meglio), adesso cerca di impegnarti.

Originally posted by "a2000"


1) Il display ti serve solo a quattro cifre e non rompere i C++, devi per forza scrivere GP per fare lo sbooorooone ?
LCD no eh ? non ce l'hai in casa ?
Prova a guardare nel cassettino delle uova dove c'è quel pezzo di grana vecchio che hai messo via per la salama da sugo. :p


No, il display a 8 cifre mi serve per scrivere a cosa si riferiscono i parametri da inserire: periodo della prima onda, della seconda, sfasamento, ritardo, tipo di configurazione ovvero solo onda positiva, solo negativa, entrambe, cosa sta facendo, e via andare. Quattro caratteri sono strettini. Allora?


2) "arrogante", dai su non fare il permaloso, siamo qui per divertirci no ? :mad:


Allora, io non sono qui per divertirmi ma per avere qualche consiglio, non sparate da persone arroganti che si ostinano a non capire nemmeno di cosa stanno parlando. Se vuoi questo, vai da un'altra parte. Altrimenti collega la testa e cerca di capire quello che scrivo, perchè non lo stai facendo.


3) "porte"
il PIC16F87 ha 3 porte I/O complete a 8 bit e 1 a 5 bit. :cool:


Ma che scoperta! Poi se ci metto un PC ho anche 5 slot PCI! Ma va! Cambiare pic... ma proprio non ce la fai a mettertelo in testa eh...
Ho usato quello che avevo in casa!!!! Qui terra! C'è nessuno in ascolto lì fuori?


4)
"E poi il tastierino cosa fai? Lo attacchi direttamente? Ha già tutta la logica integrata? "
Ma tu vai a far del bene alla gente !
Sì il tastierino, no logic, fatto da 12 semplici interruttori lo attacchi direttamente con solo 7 resistenze (rete resistiva) da 10k.
Come ? Se ti fossi letto i link che ti ho dato ... :(


Uhm, 10 tasti diventano 12 interruttori che magicamente diventano 7 linee... e tutto senza logiche... accidenti, devi essere proprio bravo.



5) "esame"
esame de che' ? :eek:


Ahia... non solo non leggi quello che scrivo, non sai nemmeno cosa scrivi tu. Mi hai chiesto tu se l'esame l'avevo passato. Sistemi di elaborazione. Ovvero questa roba.

Comunque vedo che dai spettacolo anche in altri thread e molti si interrogano sulla tua età (non anagrafica, quella non conta: si parla di quella mentale). Personalmente non conosco ragazzini di 15 anni arroganti come te, chissà...

a2000
07-04-2003, 01:57
"No, il display a 8 cifre mi serve per scrivere a cosa si riferiscono i parametri da inserire: periodo della prima onda, della seconda, sfasamento, ritardo, tipo di configurazione ovvero solo onda positiva, solo negativa, entrambe, cosa sta facendo, e via andare. Quattro caratteri sono strettini. Allora?"

Visualizzazione seriale. O sennò un bel LCD con relativo driverino.


"Allora, io non sono qui per divertirmi ma per avere qualche consiglio, non sparate da persone arroganti che si ostinano a non capire nemmeno di cosa stanno parlando. Se vuoi questo, vai da un'altra parte. Altrimenti collega la testa e cerca di capire quello che scrivo, perchè non lo stai facendo."

Non fare il cafone.
Vuoi consigli: studia.


"Ma che scoperta! Poi se ci metto un PC ho anche 5 slot PCI! Ma va! Cambiare pic... ma proprio non ce la fai a mettertelo in testa eh...
Ho usato quello che avevo in casa!!!! Qui terra! C'è nessuno in ascolto lì fuori?"

PIC16F84 -> 8.4 €
PIC16F87 -> 10.6 €


"Uhm, 10 tasti diventano 12 interruttori che magicamente diventano 7 linee... e tutto senza logiche... accidenti, devi essere proprio bravo."

Tastierino numerico 4*3 (12 tasti-interruttori), 7 linee (4 righe + 3 colonne: ti suggerisce niente ?), 7 resistenze 10 k, 7 porte.
Confermo tutto.
Il bello è che è pure una soluzione standard: ripetuta su decine di schemi. gnurent.


"Ahia... non solo non leggi quello che scrivo, non sai nemmeno cosa scrivi tu. Mi hai chiesto tu se l'esame l'avevo passato. Sistemi di elaborazione. Ovvero questa roba."

Però non ci hai capito un C++ !


"Comunque vedo che dai spettacolo anche in altri thread e molti si interrogano sulla tua età (non anagrafica, quella non conta: si parla di quella mentale). Personalmente non conosco ragazzini di 15 anni arroganti come te, chissà..."

Mai dire ai bu++urri che sono bu++urri !
Ma sei di Frara o di Bondeno ?

a2000
07-04-2003, 02:00
Per i 14 kg di Nuova Elettronica ?

ilsensine
07-04-2003, 11:56
a2000, se vuoi dare dei consigli per aiutare gpc ok, se vuoi dare consigli per far vedere quanto sei bravo e quanto sono incapaci gli altri è meglio che cambi aria.

a2000
07-04-2003, 14:03
Per esempio, da:
http://members.xoom.virgilio.it/i2viu/mypag.htm

LETTURA TASTIERA 3X4 CON ST62 (e PIC)

"Lo schema rappresenta un modo di collegare una tastiera 3x4 per leggere il valore numerico dei suoi tasti quando vengono premuti. Mediante pb4 é possibile comandare un "buzzer" per segnalare con un "bip" la premuta dei tasti. Lo schema raffigura un micro ST6265 ma può essere usato qualsiasi ST6 purché si faccia uso di una porta completa a 8 bit."



http://web.tiscali.it/no-redirect-tiscali/i2viu/electronic/tastsch.gif

a2000
07-04-2003, 14:16
Originally posted by "ilsensine"

a2000, se vuoi dare dei consigli per aiutare gpc ok, se vuoi dare consigli per far vedere quanto sei bravo e quanto sono incapaci gli altri è meglio che cambi aria.

Voglio dare consigli, e possibilmente (se gpc legge) ridurre la quantità di materia (componenti) e informazioni (righe di codice) inutili che l'ammorbano l'aria. ;)

Confronto corretto ma duro e senza compromessi, per evitare lo stile lecchino che è così connaturato al Bel Paese dei Cachi. :eek:

A parte l'epoxidic logic, che quella ci vuole sempre, of course ! :o

gpc
07-04-2003, 14:17
Perfetto.
Solamente che:
1) sul bus ci vanno altre periferiche, quindi il buffer mi vuole comunque;
2) ho bisogno di un segnale immediato di tasto premuto, quindi una logica ci andava comunque, e in ogni caso quel sistema occupa tutte otto le porte B e quindi non avrei avuto spazio per questo segnale (le A sono già impegnate tutte in altre cose)
3) col mio sistema (un encoder in più) ho già il numero in binario senza bisogno di trasformarlo dopo all'interno del programma, rendendo tutto molto più semplice ed agile da gestire.

gpc
07-04-2003, 14:23
Originally posted by "a2000"



Voglio dare consigli, e possibilmente (se gpc legge) ridurre la quantità di materia (componenti) e informazioni (righe di codice) inutili che l'ammorbano l'aria. ;)

Confronto corretto ma duro e senza compromessi, per evitare lo stile lecchino che è così connaturato al Bel Paese dei Cachi. :eek:

A parte l'epoxidic logic, che quella ci vuole sempre, of course ! :o

a2000, se fosse come dici tu non ci sarebbe problema.
Il fatto è che, anche volendo tralasciare che dai del muratore, dell'ignorante, che sei capace solo di dire "leggi" e "studia" come se tu fossi la saggezza scesa in terra, a parte tutti questi dettagli, tu continui a dire di fare cose che non sono quello che devo fare io e non te ne rendi conto!!
Se tu leggessi quello che scrivo, vedresti che mi servono OTTO cifre nel display (puoi farlo seriale anche con una sola cifra se è per questo, sai che comodo...), che mi servono i componenti che ho elencato perchè nella tua lista hai saltato metà del progetto, che riguardo al codice tu non hai detto proprio nulla, che non hai tenuto minimamente conto le esigenze che ho descritto. Per cui è inutile continuare così, tu mi stai dicendo cose che non mi servono perchè sono riferite a qualcos'altro: se dovrò fare un PIC che controlla un tastierino e mostra un numero su un display di quattro cifre, ben vengano i tuoi circuiti.
Ma finchè devo fare un sistema con due pic, varie periferiche, otto cifre di display, una tastiera che genera anche un altro segnale etc, non me ne faccio proprio niente!

a2000
07-04-2003, 14:54
sei sempre attaccato, eh.
come i radioamatori di 20 anni fà .... beh, questo va bene.

Comunque, va beh, gpc ... che ti devo dire ...
potrei risponderti come dicono a Milano (ma non lo farò): "a certa gente è più facile metterglielo in C+++, che in testa"
oppure come dicono a Rimini: "ho ragione ... e i fatti mi cosano"
o come dicono nella tua (?) Ferrara: "Majal na gara"
Ma preferisco dirtelo come a Napoli: "sciamene a curca' !": andiamocene a dormire !

Andiamocene a dormire tutti e due o tre o mille quanti ne siamo, magari più che un sonno, una bella ibernazione (controllata con uno dei tuoi "circuitini" da 10^7 componenti ?) così da saltare di botto che nevica il 7 di marzo, che gli americani hanno "liberato" l'Iraq, che c'ho la tosse e il mal di stomaco.

gpc
13-04-2003, 14:23
Torniamo alla questione programmazione...
Il problema è trasferire un dato di 8 bit da un pic all'altro.
Per farlo ho dovuto fare due trasferimenti di 4 bit avendo bisogno di segnali di sincronismo per il trasferimento e avendo tutte le altre uscite impegnate...

Questa è la funzione sul primo pic per trasferire il dato caricato nel registro W:

TXData
movwf temp
bcf PORTB,0
bcf PORTB,1
bcf PORTB,2
bcf PORTB,3
btfsc temp,0
bsf PORTB,0
btfsc temp,1
bsf PORTB,1
btfsc temp,2
bsf PORTB,2
btfsc temp,3
bsf PORTB,3
bsf PORTB,4
waitForRX1
btfss PORTB,7
goto waitForRX1
bcf PORTB,4
waitForRX1Down
btfsc PORTB,7
goto waitForRX1Down


bcf PORTB,0
bcf PORTB,1
bcf PORTB,2
bcf PORTB,3
btfsc temp,4
bsf PORTB,0
btfsc temp,5
bsf PORTB,1
btfsc temp,6
bsf PORTB,2
btfsc temp,7
bsf PORTB,3
bsf PORTB,4



waitForRX3
btfss PORTB,6
goto waitForRX3
; call delayWR
bcf PORTB,4
return

Riassumendo, azzera i 4 bit, scrive i primi 4, alza il quinto bit per avvisare che il dato è pronto, aspetta un impulso sull'ottavo bit per sapere quando la lettura è finita e ripete l'operazione per gli altri quattro bit, ricevendo alla fine di tutto un segnale sul settimo bit.
La procedura per la ricezione è questa:

RXData
bcf PORTB,REQ_OK
wait4data
btfss PORTB,4
goto wait4data
call delayWR
clrf temp
btfsc PORTB,0
bsf temp,0
btfsc PORTB,1
bsf temp,1
btfsc PORTB,2
bsf temp,2
btfsc PORTB,3
bsf temp,3
; call Delay2Sec
bsf PORTB,REQ_OK
call delayWR
bcf PORTB,REQ_OK
wait1
btfss PORTB,4
goto wait1
call delayWR
btfsc PORTB,0
bsf temp,4
btfsc PORTB,1
bsf temp,5
btfsc PORTB,2
bsf temp,6
btfsc PORTB,3
bsf temp,7
; call Delay2Sec
bsf PORTB,RCV_OK
call delayWR
return

Aspetta il segnale sul quinto bit per sapere che i dati sono pronti, li legge, manda l'impulso sull'ottavo bit, legge i quattro successivi e alza il settimo bit.

Problema: non funziona 'na mazza...

Probabilmente c'è della roba ridondante, anche perchè ho fatto varie prove... la sincronizzazione mi pare che funzioni, ma non ne sono pienamente sicuro.
Qualche suggerimento?

a2000
13-04-2003, 14:34
Originally posted by "gpc"



....
Problema: non funziona 'na mazza...

Probabilmente c'è della roba ridondante, anche perchè ho fatto varie prove... la sincronizzazione mi pare che funzioni, ma non ne sono pienamente sicuro.
Qualche suggerimento?

eh, probabilmente ... :D

facciamo una cosa caro tdc, te lo faccio io con un decimo dell'hardware e un ventesimo del software. :cool:
il prezzo fallo tu :pig:

:)

gpc
13-04-2003, 15:42
Originally posted by "a2000"



eh, probabilmente ... :D

facciamo una cosa caro tdc, te lo faccio io con un decimo dell'hardware e un ventesimo del software. :cool:
il prezzo fallo tu :pig:

:)

Ma che palle... tu sei proprio uno di quelli a cui si chiede una cosa e ti dà tutt'altro... senti, se non sai fare quello che ti chiedo, non rispondere! Ti ho chiesto come sistemare questo, non come fare un'altra cosa che non fa quello che devo fare io e con cose che non posso/voglio usare. Capito?!
Che due palle, ragazzi...

cionci
13-04-2003, 18:34
Originally posted by "/\/\@®¢Ø"

(Volendo col solo C si potrebbero ridurre a 1 :D )

main(char*a){(a-1)?(*a)?main(a+1),putchar(*a):0:main("\ndlrow olleH");}
M'è venuta così, ma è lunghina ;)

a2000
13-04-2003, 19:06
ma schiusa cionci, allora ti ci metti anche tu ! :(

ma non hai capito che il nostro tdc non deve scrivere "Hello world" ma leggere 0123456789 con 10 interruttori e qualche altra ca++atella ? :cry:


P.S.
sì in effetti è un pò lunghina come fare uno stuzzicadenti con un pino :D

a2000
13-04-2003, 19:12
gpc ultima offerta !

TUTTO il tuo sistema hardware e software (con tutti i diritti) a 100 euri + spese vive hardware (30 euri) !!!!!

:cool:

gpc
13-04-2003, 19:48
Originally posted by "a2000"

gpc ultima offerta !

TUTTO il tuo sistema hardware e software (con tutti i diritti) a 100 euri + spese vive hardware (30 euri) !!!!!

:cool:

Ho capito, non sei capace di fare quello che chiedo. Allora smetti di postare.
Se in tre pagine non hai ancora capito di cosa ho bisogno, come continui a dimostrare con i tuoi interventi, è inutile che continui ancora a parlare (oltretutto anche il moderatore ti ha fatto notare qualche piccolo dettaglio sui tuoi post...).

Cionci, mi pareva che tu fossi pratico di assembler per PIC, non mi dici nulla? :p O era qualcun'altro... :confused:

a2000
13-04-2003, 20:43
Originally posted by "gpc"

Salve a tutt!

Ho bisogno di un suggerimento, anche solo a livello di idea, per fare una cosina con dei pic 16f84.
La mia situazione è la seguente:
Ho bisogno che da tastiera vengano immessi tre numeri, i primi due compresi tra 0 e 1000, il terzo non lo so, diciamo tra 0 e 9999, e questi tre numeri devono essere memorizzati da qualche parte e passati ripettivamente ad altri due pic e ad un contatore.
Nello specifico, anche se non è rilevante, i primi due numeri sono la frequenza di due onde che devono essere generate dai due pic e il terzo è il ritardo in millisecondi tra un'onda e l'altra.
Come posso fare?
Il primo problema che devo affrontare è gestire l'ingresso da tastiera e riportalo sul display.
Per far questo interfaccio la tastiera con un encoder che mi porta le nove cifre 1-9 su quattro bit, e lo 0 lo assegno ad un bit a sè (dannato encoder, hai quattro bit, ma fammi 10 combinazioni almeno! mah...). Avevo pensato quindi di assegnare un interrupt ai cambiamenti di stato sulla linea B (usata per il bus di comunicazione) per rilevare il momento in cui si premeva un tasto. Ricevuto l'interrupt, il PIC registrava la prima cifra e passava alla seconda.
Già a questo punto ho un'altra possibilità: posso creare un circuitino con qualche or che mi dia un segnale alto nel momento in cui premo un qualunque tasto; questo segnale viene mandato sul bus sull'ottavo bit, tanto per dire, e nel momento in cui il pic legge questo segnale accetta il dato. Mi sembra molto più snella questa seconda soluzione...
Ok, diciamo che ho preso dentro la prima cifra. Ora devo tradurla nel giusto codice perchè venga visualizzata sul display a led (sì, non è un lcd, ha 8 pin per i sette segmenti segmenti + il punto... che non mi serve, quindi 7 segnali), ovvero se abbiamo un 1, che arriverà come 00000001, dobbiamo farlo diventare un 00100001, un due che arriva come 00000010 deve diventare 10011011 e così via. Come posso fare questo lavoro? Sinceramente non ho molte idee per questo... un confronto bit a bit? Diventa una roba allucinante... il problema è che sulla tastiera ho 10 cifre: se avessi 10 linee disponibili per far arrivare direttamente i 10 segnali sarebbe una passeggiata, ma così sinceramente non so, perchè le dieci linee proprio non ce le ho.
Altro problema: quando passo alla seconda cifra, devo praticamente fare 1a_cifra + 2a_cifra*10, e così via con la terza e con la quarta. Come posso fare?
Infine, una volta fatto questo, come faccio a mandare il numero binario che ho trovato (che sarà di 10 bit, quindi avrò bisogno di passarlo con due cicli di clock) all'altro PIC?
Insomma, ci sono diversi "dettagli" che dovrei approfondire :p

Ho assolutamente bisogno di una manina... vi pregoooo!![/size]

ti faccio tutto o !

meglio di così !!!![/size]
:cool:

gpc
13-04-2003, 20:46
Originally posted by "a2000"



ti faccio tutto io !

meglio di così !!!!

:cool:

Sì ma non sai cosa devo fare.
E poi ti ostini a voler usare cose che non voglio/posso usare.
Inoltre nelle tue "soluzioni" perdi pezzi per strada.
Infine forse non hai capito, tra le tante cose, che io NON voglio che qualcuno me lo faccia, ho chiesto un CONSIGLIO su una funzione del software. Se vuoi trovare lavoro come progettista, impara a capire cosa vuole il committente e apriti un thread tuo. Qui non hai proprio più nulla da dire, evidentemente...

a2000
13-04-2003, 20:52
quali pezzi mi perdo ?

allora facciamo così, ti mando solo la carta e poi puoi dire che l'hai fatto tu ! :D

gpc
13-04-2003, 20:55
Originally posted by "a2000"

quali pezzi mi perdo ?

allora facciamo così, ti mando solo la carta e poi puoi dire che l'hai fatto tu ! :D

Ti perdi la metà delle funzioni di cui ho parlato e tutto il resto che non ho detto o che hai saltato (tipo il fatto della generazione degli impulsi, la configurazione dei treni, delle varie uscite, etc). Ti perdi alcune funzioni della tastiera che non hai capito, come la logica per il segnale di tasto premuto, metà display perchè vuoi farlo a quattro cifre invece che ad otto, etc etc.
Ripeto: non è questione del mandare su carta o su dischetto, è che evidentemente non sai fare quello che chiedo, perchè continui a farmi perdere tempo parlando di altre cose.

a2000
13-04-2003, 20:59
se non ti sai esprimere in modo chiaro, evidentemente è una lacuna che ti porti dal liceo (?) ... mi dispiace ! :p

onde quadre, sinusoidali o denti di sega ? :D

gpc
13-04-2003, 21:03
Originally posted by "a2000"

se non ti sai esprimere in modo chiaro, evidentemente è una lacuna che ti porti dal liceo (?) ... mi dispiace ? :p

onde quadre, sinusoidali o denti di sega ? :D

No no, è che tu hai problemi di lettura o ancora più a monte.
Impulsi (vedi? ho detto impulsi e tu hai capito onde) di durata variabile sia per quello che riguarda la parte alta che quella bassa, uscita doppia sincronizzata alternata, possibilità di programmazione di treni d'onde di durata variabile con una pausa tra uno e l'altro.
Ma se non sai fare e non riesci a capire quelle cose semplici su cui ho chiesto un consiglio che vuoi andare a fare con quelle più difficili? :rolleyes:

a2000
13-04-2003, 21:09
Originally posted by "gpc"

Salve a tutti!

Ho bisogno di un suggerimento, anche solo a livello di idea, per fare una cosina con dei pic 16f84.
La mia situazione è la seguente:
Ho bisogno che da tastiera vengano immessi tre numeri, i primi due compresi tra 0 e 1000, il terzo non lo so, diciamo tra 0 e 9999, e questi tre numeri devono essere memorizzati da qualche parte e passati ripettivamente ad altri due pic e ad un contatore.
Nello specifico, anche se non è rilevante, che devono essere generate dai due pic e il terzo è il ritardo in millisecondi tra un'onda e l'altra. [/siz]
....



lo vedi che sei proprio un tdc !

:D :D

gpc
13-04-2003, 21:15
Originally posted by "a2000"



lo vedi che sei proprio un tdc !

:D :D

Perfetto, segnalato. :rolleyes:

a2000
13-04-2003, 21:17
Perfetto, confermato. :p

ilsensine
14-04-2003, 08:09
Ti avevo avvertito.
Per ora sei sospeso solo per 5 gg (sperando che serva a qualcosa).

a2000
19-04-2003, 14:02
allora, grandissimo gpc,
funziona il tuo accrocchio a duty cycle variabile ?
o no ?

P.S.
ma ad analisi matematica come stai ?

:p

a2000
19-04-2003, 16:42
ma un triciclo ... cioè ... un NE555 no eh ?