Se sei già registrato           oppure    

Orario: 28/04/2024 13:24:03  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA

VISUALIZZA L'ALBUM

Pagine: (114)  < ...  9   10   11   12   13   14   15   16   17   18   [19]   20   21   22   23   24   25   26   27   28   29  ...>    (Ultimo Msg)


PPTEA- Processore Per Tutti
FinePagina

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 1/8/2011,22:51

CITAZIONE (mixtrb @ 1/8/2011, 23:30)
grazie per il prezioso lavoro che stai facendo

lavoro? io mi diverto!!! faccine/biggrin.gif
grazie a voi due che si riparte...ora che ti muovi agilmente nel mondo eab...riesci ad intravedere le potenzialità del PPTEA? faccine/smile.gif
Domani provo la tua risoluzione...ma non vorrei che il problema sia un'altro...forse serve il setup...cioè istallazione con setup.exe del compilatore...non vorrei che hai qualche ocx o dll 'sputtanata'. Questo problema ha le ore contate... faccine/crutch.gif
Bolle



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 2/8/2011,10:58

CONTATORE BCD

Allego il codice (dove si utilizza la gestione dei vettori) e lo schema per la realizzazione. Poche linee di codice occorrono per gestire un contatore bcd. Quanto prima allego il video.

CODICE
10 REM CONTATORE DIGITALE BCD
20 DIM DIGIT(10) AS WORD ' Vettore di 10 elementi che definisce i bit relativi ai led da accendere dentro la struttura BCD
30 REM NECESSITA FIRMWARE PPTEA V1.0.2 O SUPERIORE
40 REM NECESSITA DI RESISTENZE DI CONNESSIONE CON I LED BCD DI 470 OHM
50 SETIO=0 ' Setta l'I/O tutte in uscita.
60 CADS=0 ' Elimina i convertitori analogico/digitali cioè setta tutte le uscite in digitale
70 DIGIT(1) = 63  ' Bit che definiscono il digit  0
80 DIGIT(2) =6 ' Bit che definiscono il digit  1
90 DIGIT(3) = 91 ' Bit che definiscono il digit  2
100 DIGIT(4) = 79 ' Bit che definiscono il digit  3
110 DIGIT(5) = 102 ' Bit che definiscono il digit  4
120 DIGIT(6) = 109 ' Bit che definiscono il digit  5
130 DIGIT(7) = 125 ' Bit che definiscono il digit  6
140 DIGIT(8) = 7 ' Bit che definiscono il digit  7
150 DIGIT(9)= 127 ' Bit che definiscono il digit 8
160 DIGIT(10) = 111 ' Bit che definiscono il digit  9
170 ATTESA=100 ' Questo valore indica il tempo di velocità incremento cifra
180 C=0
190 IF C=10 then 180
200 GOSUB  260
210 C++
220 WAITMS ATTESA
230 goto  190
240 '-------------------------------------------------------------------------------------------
250 'ROUTINE CHE VISUALIZZA LA CIFRA C MANDATA IN USCITA
260 V= DIGIT(C+1)
270 OUT=V
280 RETURN
290 '-------------------------------------------------------------------------------------------


ForumEA/us/img9/2183/contatoredigitalebcd.jpg



Bolle




---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 2/8/2011,13:13

CONTATORE A DUE BCD...CONTEGGIO DA ZERO A 99

Allego il codice (dove si utilizza la gestione dei vettori) e lo schema per la realizzazione. Poche linee di codice occorrono per gestire una coppia display a led. Quanto è il video:




CODICE
10 REM CONTATORE DIGITALE A DUE CIFRE
20 DIM DIGIT(10) AS WORD ' Vettore di 10 elementi che definisce i bit relativi ai led da accendere il numero sul display
30 REM NECESSITA FIRMWARE PPTEA V1.0.2 O SUPERIORE
40 REM NECESSITA DI RESISTENZE DI CONNESSIONE CON I LED DI 470 OHM
50 SETIO=0 ' Setta l'I/O tutte in uscita.
60 CADS=0 ' Elimina i convertitori analogico/digitali cioè setta tutte le uscite in digitale
70 DIGIT(1) = 63  ' Bit che definiscono il digit  0
80 DIGIT(2) =6 ' Bit che definiscono il digit  1
90 DIGIT(3) = 91 ' Bit che definiscono il digit  2
100 DIGIT(4) = 79 ' Bit che definiscono il digit  3
110 DIGIT(5) = 102 ' Bit che definiscono il digit  4
120 DIGIT(6) = 109 ' Bit che definiscono il digit  5
130 DIGIT(7) = 125 ' Bit che definiscono il digit  6
140 DIGIT(8) = 7 ' Bit che definiscono il digit  7
150 DIGIT(9)= 127 ' Bit che definiscono il digit 8
160 DIGIT(10) = 111 ' Bit che definiscono il digit  9
165 ATTESA=100 ' Questo valore indica il tempo di velocità incremento cifra
170 'INIZIO CODICE CONTATORE
171 C=0
172 D=0
173 GOSUB 260
174 C++
175 WAITMS ATTESA
176 if C=10 then 180
177 if D=10 then 171
178 GOTO 173
180 D++
181 C=0
182 GOTO 176
240 '-------------------------------------------------------------------------------------------
250 'ROUTINE CHE VISUALIZZA LA CIFRA C MANDATA IN USCITA SU DUE
260 V= DIGIT(C+1)
265 F=DIGIT(D+1)
270 OUT=F*128  OR V
280 RETURN
290 '-------------------------------------------------------------------------------------------


ForumEA/us/img560/5417/contatoreaduecifre.jpg


Bolle





---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

mixtrb

Avatar
GigaWatt


Gruppo:Utente
Messaggi:835

Stato:



Inviato il: 2/8/2011,15:40

in termini più esatti il componente che hai usato è un display a led a 7 segmenti

il display BCD è un 7 segmenti con la decodifica integrata del codice:
ha solo 4 ingressi dove entra il codice BCD del numero (lettera) da visualizzare
visualizza oltre alle 10 cifre anche le lettere AbCdEF

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 2/8/2011,15:47

CITAZIONE (mixtrb @ 2/8/2011, 16:40)
in termini più esatti il componente che hai usato è un display a led a 7 segmenti

il display BCD è un 7 segmenti con la decodifica integrata del codice:
ha solo 4 ingressi dove entra il codice BCD del numero (lettera) da visualizzare
visualizza oltre alle 10 cifre anche le lettere AbCdEF

Hai ragione...la vecchiaia e la lontananza dai progettini che facevo qualche decennio fa...i display che ho utilizzato avranno 25 anni faccine/smile.gif come passa il tempo....lo correggo stasera quando inserisco i video!
Ciao
Bolle



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3509

Stato:



Inviato il: 2/8/2011,16:10

Mi è arrivato il pickit2!
Stasera conto di collaudarlo... faccine/ph34r.gif

CITAZIONE
Hai ragione...la vecchiaia e la lontananza dai progettini che facevo qualche decennio fa...i display che ho utilizzato avranno 25 anni faccine/smile.gif come passa il tempo....lo correggo stasera quando inserisco i video!

Quando si usava il cd 4511..



---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3509

Stato:



Inviato il: 2/8/2011,20:51

Il programmatore programma!!
Adesso cominciamo a scaldare il ferro...



---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

mixtrb

Avatar
GigaWatt


Gruppo:Utente
Messaggi:835

Stato:



Inviato il: 3/8/2011,16:42

oggi installato compilatore EABASIC (v 0.35) su un altro mio portatile:

la finestra si vede bene sia a 1280x800 che a 1024x768

sono molto sorpreso che su quello mio principale ci siano problemi di visualizzazione;
è sempre andato benissimo, nei 2 anni di vita, mai dato problemi di nessun tipo
ma adesso comincio anch'io a pensare che abbia qualcosa nel sistema operativo fuori posto

installare i driver più recenti (se ci sono) della scheda video potrebbe avere qualche effetto positivo?
proverò

@ Bolle: spero che questo problema della visualizzazione non ti abbia fatto perdere troppo tempo;
purtroppo questo mio ritardo nel fare un test con il secondo portatile non era evitabile;
ci ho potuto rimettere sopra le mani solo oggi, le 2 settimane precedenti a questa ero in ferie e questo PC è rimasto al lavoro; al ritorno ho avuto altre cose da fare con massima priorità e così .....

sono veramente dispiaciuto di averti fatto tribolare inutilmente

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 3/8/2011,17:15

CITAZIONE (mixtrb @ 3/8/2011, 17:42)
@ Bolle: spero che questo problema della visualizzazione non ti abbia fatto perdere troppo tempo;

Spero tu stia scherzando...metterò un setup.exe a dire il vero già ce l'ho ...ma nel forum non entra perchè è troppo grande la dimensione. Vediamo se si tratta di ocx o dll sputannate oppure se continua a non fungere allora è un problema di drivere della scheda grafica.Cerco di trovare mettere il setup nel sito del forum.
faccine/biggrin.gif
Ciao



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

mixtrb

Avatar
GigaWatt


Gruppo:Utente
Messaggi:835

Stato:



Inviato il: 3/8/2011,19:37

nelle note per l'uso dell'EABASIC necessita puntualizzare che per le istruzioni dopo il THEN (nell'istruzione IF)
si intende il numero di riga dell'istruzione, non l'istruzione stessa.

123 IF A THEN 234
......
......
234 A=0
......
questo è il modo corretto di farlo


questo invece non va bene:
......
345 IF A THEN A=0
......

abituato con altri linguaggi di programmazione, dove è possibile dopo il THEN eseguire un'operazione sulle / con le variabili, questa particolarità mi ha fatto perdere un po' di tempo.


se vuoi, il setup.exe mandalo per posta elettronica




Modificato da mixtrb - 5/8/2011, 01:17
 

mixtrb

Avatar
GigaWatt


Gruppo:Utente
Messaggi:835

Stato:



Inviato il: 5/8/2011,17:31

facendo altri test con il PPTEA ho potuto notare che l'ingresso non connesso viene rilevato come un 1 logico dal PIC (controintuitivamente per il profano)

quindi se l'1 logico è associato ad una tensione alta proveniente dalla periferia è necessario tenere basso l'ingresso (pull down) quando la periferia è in stato di alta impedenza, o comunque la periferia non porta espressamente una tensione di massa, come 0 logico;
io l'ho fatto mettendo una resistenza da 10Kohm tra ingresso e massa: va bene
quando in input pongo un +5V (con una resistenza da 1Kohm in serie) l'ingresso va regolarmente ad 1 logico.

mi sono spiegato comprensibilmente?
se NO: chiedete chiarimenti; cercherò parole più chiare o farò uno schema esplicativo.

è una questione prettamente tecnica: negli schemi di esempio il problema non si porrà perchè saranno già stati progettati in modo da funzionare, con le resistenze di pull down presenti se necessarie;

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 5/8/2011,20:07

CITAZIONE (mixtrb @ 3/8/2011, 20:37)
nelle note per l'uso dell'EABASIC necessita puntualizzare che per le istruzioni dopo il THEN (nell'istruzione IF)
si intende il numero di riga dell'istruzione, non l'istruzione stessa.

123 IF A THEN 234
......
......
234 A=0
......
questo è il modo corretto di farlo


questo invece non va bene:
......
345 IF A THEN A=0
......

Si, è esattamente come dici...nel manuale dovrebbe essere specificato:
IF expr THEN NLINEA [else NLINEA]
poi verifico.

CITAZIONE (mixtrb @ 3/8/2011, 20:37)
se vuoi, il setup.exe mandalo per posta elettronica

Si, lo mando sia a te che a Pino che provvederà a metterlo in linea.


CITAZIONE (mixtrb @ 5/8/2011, 18:31)
facendo altri test con il PPTEA ho potuto notare che l'ingresso non connesso viene rilevato come un 1 logico dal PIC (controintuitivamente per il profano)

quindi se l'1 logico è associato ad una tensione alta proveniente dalla periferia è necessario tenere basso l'ingresso (pull down) quando la periferia è in stato di alta impedenza, o comunque la periferia non porta espressamente una tensione di massa, come 0 logico;
io l'ho fatto mettendo una resistenza da 10Kohm tra ingresso e massa: va bene
quando in input pongo un +5V (con una resistenza da 1Kohm in serie) l'ingresso va regolarmente ad 1 logico.

mi sono spiegato comprensibilmente?
se NO: chiedete chiarimenti; cercherò parole più chiare o farò uno schema esplicativo.

è una questione prettamente tecnica: negli schemi di esempio il problema non si porrà perchè saranno già stati progettati in modo da funzionare, con le resistenze di pull down presenti se necessarie;

Vediamo se ricordo bene, poi ti confermo...gli ingressi dal bit 8 al bit 15 sono in pull up mentre gli ingressi dal bit0 al bit7 sono ingressi che devono essere forzati altrimenti il valore non è definito.
Ad esempio nell'elimina code non ho messo nessuna resistenza ( ingresso bit 15 settato come ingresso)
e il pulsante quando viene premuto forza a massa...in questo modo si risparmia la resistenza come componente.
Spero di essere stato chiaro...
Bolle



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

mixtrb

Avatar
GigaWatt


Gruppo:Utente
Messaggi:835

Stato:



Inviato il: 6/8/2011,00:39

i test li ho fatti con un paio di ingressi di numero basso (bit 1 o 2)

modificato: forse anche potrebbero essere stati bit 3 o 4




Modificato da mixtrb - 7/8/2011, 10:38
 

mixtrb

Avatar
GigaWatt


Gruppo:Utente
Messaggi:835

Stato:



Inviato il: 7/8/2011,09:34

altri test sulla falsariga di quelli precedenti, fatti per testare le caratteristiche degli ingressi, mi stanno dando indicazioni contraddittorie

(ammesso che il mio PIC da "battaglia" funzioni ancora perfettamente; cosa di cui comincio a non essere troppo sicuro).

cmq, stanotte, se tutto va bene, farò ulteriori test e saprò essere più preciso;

nel frattempo ho riprogrammato il PIC sempre con il PPTEA ver 1.0.2 ed i test sono adesso risultati corretti
lascio quello che segue per riferimento futuro



usando una procedura del tipo:

CODICE
........
........
Nriga TEST=INP AND 8 ______'acquisizione stato del 4° ingresso del PIC/PPTEA
N+10 IF TEST THEN NrigaX __ 'elaborazione condizionata, se 4° ingresso è = 1, da NrigaX
N+20 fai qualcosa __________ 'elaborazione se invece 4° input = 0
........
........
NrigaX OUT=&HF00 _________ ' attivo uscite selezionate, per 500ms, poi le spengo
NX+10 WAITMS 500
NX+20 OUT=0
........
........


il problema che rilevo è una mancata corrispondenza tra l'ingresso teorico che mi sarei aspettato (pin PIC n°5 / bit PPTEA n°4)
e quello reale: il PIC/PPTEA hardware funziona correttamente con quel programma ma con l'ingresso pin n°4 / bit PPTEA n°3

invece modificando la procedura così:
CODICE
Nriga TEST=INP AND 16 ______'acquisizione stato del 5° ingresso del PIC/PPTEA

il pin del PIC che lavora è il n°6 (bit PPTEA n°4) come mi aspetterei

quando scrivo che lavora un pin significa: ho fatto la verifica leggendo la tensione sul pin fisico del PIC: non ci sono errori di cablaggio.

nel resto del programma utilizzo il CADS1 pin2 / bit0 e funziona come deve;
nel programma non ho fatto modifiche di configurazione dell'uso dei pin (SETIO) o del numero CADS
compilatore EABASIC ver 0.35
firmware (.hex) PPTEA ver 1.0.2

l'ultimo test si è concluso con il mancato funzionamento totale del PPTEA, nessun segno di vita sul bus USB
era tardi ed ero stanco, così ho piantato lì; vedrò stanotte.




Modificato da mixtrb - 8/8/2011, 03:26
 

mixtrb

Avatar
GigaWatt


Gruppo:Utente
Messaggi:835

Stato:



Inviato il: 7/8/2011,09:53

CITAZIONE (NonSoloBolleDiAcqua @ 5/8/2011, 21:07)
Si, è esattamente come dici...nel manuale dovrebbe essere specificato:
IF expr THEN NLINEA [else NLINEA]
poi verifico.

sono un po' scettico sull'uso dell' ELSE , a questo punto
se mandi l'esecuzione del programma ad una riga (THEN) oppure ad un'altra (ELSE),
e se la riga ELSE non è quella successiva al THEN (in questo caso: istruzione inutile)
quando mai potrà essere elaborata l'istruzione successiva al THEN?

solo se indirizzata esternamente (GOTO o GOSUB)

se è così mi appare una struttura del programma un po' "contorta"

sarebbe andato bene l' ELSE se fosse stato usato per eseguire elaborazioni sulle variabili,
ma se è solo di indirizzamento, potrebbe essere fonte di complicazioni;

a mio modestissimo parere meglio proseguire sempre con la riga dopo l' IF , in caso di mancata corrispondenza della condizione

cosa che si può ottenere anche così com'è adesso,
indicando nell' IF (verificato) la riga successiva come destinazione (un salto nullo)
e mettendo, in questo caso obbligatoriamente, l' ELSE ad una riga diversa

ma forse sono solo dettagli estetici




Modificato da mixtrb - 8/8/2011, 03:23
 
 InizioPagina
 

Pagine: (114)  < ...  9   10   11   12   13   14   15   16   17   18   [19]   20   21   22   23   24   25   26   27   28   29  ...>    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum