Se sei già registrato           oppure    

Orario: 02/05/2024 14:13:22  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA


Consiglio per pilotaggio HEF 4094
FinePagina

Marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



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

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



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

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



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
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 22/10/2014 21:08:20

MarkoZaKKA, grazie

marpad

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



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

 
 InizioPagina
 

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum