Marpad65
| Inviato il: 18/10/2014 23:43:50
|
Ciao a tutti,
vorrei pilotare un HEF4094 cercando di usare meno token possibili. pensavo di usare la funzione FOR/NEXT per codificare convertire il numero in Binario e per pilotare il 4094.
'PPTEA fmr 4.2.4
PRAGMA EXTENDED4K_EEPROM
PRAGMA ADVANCED
SETIO=&H3002F
CONSTANT rs_ck=6'clok
CONSTANT rs_d=7'data
CONSTANT stRobe_=8'strobe
:inizio
CCC++
BIT_TEST=CCC
VALORE=""
BIT_NUMERICO=128
FOR DIGIT=8 TO 1 STEP -1
BIT_PWM="0"
IF BIT_TEST>=BIT_NUMERICO THEN
BIT_PWM="1"
BIT_TEST=BIT_TEST-BIT_NUMERICO
ENDIF
VALORE=BIT_PWM&VALORE
BIT_NUMERICO=BIT_NUMERICO/2
NEXT DIGIT
IF CCC=128 THEN
CLR CCC
WAITS 5
ENDIF
USBOUT=CCC&" "&valore&CR_LF
FOR L=8 TO 1 STEP -1
BIT_COLONNA=MID(VALORE,L,1)
OUTBIT(RS_D)=BIT_COLONNA
OUTBIT(RS_CK)=1
OUTBIT(RS_CK)=0
NEXT L
OUTBIT(RS_D)=0
OUTBIT(STROBE_)=1
OUTBIT(STROBE_)=0
GOTO :inizio
qualcuno ha una idea migliore?
Modificato da MarKoZaKKa - 20/10/2014, 17:52:29
| |
| | MarKoZaKKa
| Inviato il: 20/10/2014 17:23:10
|
abbi pazienza, vedo ora il post... fammi pensare...
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | MarKoZaKKa
| Inviato il: 22/10/2014 10:49:18
|
IMHO, lo farei così:
PRAGMA ADVANCED
SETIO=&H3002F
CONSTANT RS_CK=6'clok
CONSTANT RS_D=7'data
CONSTANT STROBE=8'strobe
:MAIN_LOOP
DECIMAL=15
WHILE DECIMAL<256
CALL HEF4094_OUT(DECIMAL)
USBOUT=DECIMAL &" "&HEF4094_OUT & CR_LF 'ELIMINABILE
DECIMAL++
LOOP
GOTO :MAIN_LOOP
SUB HEF4094_OUT(DEC_VAL)
HEF4094_OUT="" 'ELIMINABILE
COUNT=0
WHILE DEC_VAL>=1
COUNT++
BIN_VAL=DEC_VAL MOD 2
OUTBIT(RS_D)=BIN_VAL
OUTBIT(RS_CK)=1
OUTBIT(RS_CK)=0
IF BIN_VAL=1 THEN 'ELIMINABILE
HEF4094_OUT=TRUE & HEF4094_OUT 'ELIMINABILE
ELSE 'ELIMINABILE
HEF4094_OUT=FALSE & HEF4094_OUT 'ELIMINABILE
ENDIF 'ELIMINABILE
DEC_VAL-=BIN_VAL
DEC_VAL/=2
LOOP
OUTBIT(RS_D)=0
FOR DEC_VAL=7 TO COUNT STEP -1
OUTBIT(RS_CK)=1
OUTBIT(RS_CK)=0
HEF4094_OUT=FALSE & HEF4094_OUT 'ELIMINABILE
NEXT DEC_VAL
OUTBIT(STROBE)=1
WAITMS=1
OUTBIT(STROBE)=0
SUBEND
Le righe col commento "ELIMINABILE" servono solo ad avere un feedback sull'usb della conversione. La sub pilota direttamente le linee del 4094 man mano che esegue la conversione, eliminando la necessità di una variabile stringa; la conversione parte dall'LSB che quindi viene caricato per primo nello shift register...
Ci vorrebbe Alessio287... lancio la #ppteabinaryconversionchallange
Modificato da MarKoZaKKa - 22/10/2014, 11:14:02
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | Marpad65
| Inviato il: 22/10/2014 21:08:20
|
MarkoZaKKA, grazie
marpad | | | | MarKoZaKKa
| Inviato il: 22/10/2014 23:32:32
|
E di cosa?... è tutto da provare in hardware, vedi se funziona e facci sapere la teoria e la pratica sono cose diverse...
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| |
| | |
|
Versione Mobile!
|
|
|
|