PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HEX Wert aus EEprom BINär umwandeln PICBASIC



Robbersoft
18.08.2007, 21:14
Hallo,
bei meinem neuen Projekt, habe ich EEprom Werte, welche mit READ eingelesen werden.
Diese Werte sollen in BIN umgewandelt werden, d.h. 8-stellig mit vorangehenden Nullen.
z.B.
@$0 $23 = 00100011
@$1 $01 = 00000001
Dann sollte der Ausgabestring so aussehen : 0010001100000001 usw.
Habe vorher mit LOOKUP gearbeitet nur die Strings sind lang und Speicherfresser.
Aus READ wird der Wert in eine Variable gespeichert, die dann auch zur Auswertung dienen soll. Der Binärwert soll dann an einem Ausgangspin gesendet werden. Hat jemand eine Idee ?
PS: Ist eine zeitkritische Anwendung d.h. im 500µS Bereich und wenn möglich nur PICBASIC kein ASM oder C.
vorher :

FOR lp = 0 TO 23 ' 24 BIT
LOOKUP lp,[1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0],PORTB.5
pauseus 660
next lp
return

evtl. könnte es auch mit LOOKUP gehen ohne Eeprom. Mir ist nur der Weg der Variablenformatierung wichtig.

FOR lp = 0 TO 2
LOOKUP lp,[$23,$01,$AE],PORTB.5 ' aber als 8-Bit binäre Ausgangsignale
pauseus 660
next lp
return
aber wie realisieren ?

Gruß RobberSoft

Robbersoft
19.08.2007, 00:59
Ok hat sich erledigt.
Habe es rausbekommen (Tipp aus anderem Forum).
Funktioniert wunderbar. Manchmal sieht man den Baum vor lauter Wälder nicht mehr ... oder war´s andersrum? ;-)

Maxigraf
19.08.2007, 01:09
Ok, und wie funzt das jetz? ^^

Robbersoft
19.08.2007, 01:34
Ok, und wie funzt das jetz? ^^
Also das ist des Rätsels Lösung:


FOR lp = 0 TO 3 ' 4 Byte lesen
LOOKUP lp,[$DE,$AD,$CA,$FE],TempB
FOR BitLoop = 7 to 0 step -1
PORTB.5 = TempB.0[BitLoop]
PAUSE 500
NEXT BitLoop
NEXT lp
END


Denke daß einige was damit anfangen können.

Gruß RobberSoft